【问题标题】:How to map a value to a fuzzy term in python如何将值映射到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 做到这一点?

【问题讨论】:

    标签: python fuzzy-logic


    【解决方案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)
    

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

    【讨论】:

      猜你喜欢
      • 2021-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-02
      • 1970-01-01
      • 2017-10-12
      • 2021-03-01
      • 1970-01-01
      相关资源
      最近更新 更多