如何将值映射到python中的模糊项

Posted

技术标签:

【中文标题】如何将值映射到python中的模糊项【英文标题】:How to map a value to a fuzzy term in python 【发布时间】:2018-10-10 06:14:20 【问题描述】:

按照scikit-fuzzy 中的tip example,我使用以下代码来创建模糊控制系统的输入/输出:

quality = ctrl.Antecedent(np.arange(0, 11, 1), 'quality')
service = ctrl.Antecedent(np.arange(0, 11, 1), 'service')
tip = ctrl.Consequent(np.arange(0, 26, 1), 'tip')
quality.automf(3)
service.automf(3)
tip.automf(3)

在示例的“模糊规则”部分,规则是手动编写的。我想从训练示例中生成它们。

假设我有一组 (quality, service, tip) 元组,其中 quality 和 service 范围从 0 到 10,tip 范围从 0 到 25。我希望能够从每个训练元组中自动生成规则。为此,我需要将 qualityservice(分别为 tip)的值映射到一个术语(又名语言值): “差”、“平均”或“好”(分别为“低”、“中”或“高”)。

如何使用scikit-fuzzy 做到这一点?

【问题讨论】:

【参考方案1】:

我需要的函数是skfuzzy.interp_membership:如果我想获得清晰值 4.0 的模糊术语/语言值,我会在 4.0 评估每个隶属函数:

skfuzzy.interp_membership(np.arange(0, 11, 1), quality['poor'].mf, 4.0)
skfuzzy.interp_membership(np.arange(0, 11, 1), quality['average'].mf, 4.0)
skfuzzy.interp_membership(np.arange(0, 11, 1), quality['good'].mf, 4.0)

然后模糊值将是隶属函数具有最大值的那个

【讨论】:

以上是关于如何将值映射到python中的模糊项的主要内容,如果未能解决你的问题,请参考以下文章

如何将值插入到python中的嵌套表中?

如何将值从一列映射到另一列数据框? [复制]

基于两个数据帧中的多列将值从一个映射到另一个df

根据 postgresQL 中的时间戳将值从一个表映射到另一个表

查找映射是不是包含列表/可迭代项中的任何键的有效方法

如何将字典中的值映射到 Pyspark 中的新列