如何将值映射到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。我希望能够从每个训练元组中自动生成规则。为此,我需要将 quality 和 service(分别为 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中的模糊项的主要内容,如果未能解决你的问题,请参考以下文章