如何在scikit-fuzzy中使用多个模糊输入集/关系?

时间:2015-06-23 20:02:42

标签: python logic fuzzy-logic scikits

我正在制作一个带有scikit-fuzzy的模糊代理,它根据长度和动机决定篮球运动员的表现。显然这是一个学习项目,而不是一个现实的实施。

在一个只有长度和质量之间关系的简单例子中,我有以下模糊规则:

R1 = fuzz.relation_product(l_tall, q_good)
R2 = fuzz.relation_product(l_moderate, q_moderate)
R3 = fuzz.relation_product(l_short, q_bad)
R_combined = np.fmax(R1, np.fmax(R2, R3))
fuzz.defuzz(quality, R_combined[length == 180], 'centroid')

这会像预期的那样返回一个清晰的值。

然而,当我处理两种关系时:

#Relationships between motivation and quality of player
R1 = fuzz.relation_product(m_very, q_good)
R2 = fuzz.relation_product(m_barely, q_bad)

#Relationships between length and quality of player

R3 = fuzz.relation_product(l_tall, q_good)
R4 = fuzz.relation_product(l_short, q_bad)

我不知道接下来要做什么才能让它发挥作用。我是否将所有规则或类似规则组合在一起,以后如何使用defuzzify功能?我需要能够有两个参数(长度和动机),所以我上面使用的方法不起作用。

1 个答案:

答案 0 :(得分:1)

scikit fuzzy没有太多文档,但是我找到了一个你可能会觉得有用的经典小费示例的实现

http://nbviewer.ipython.org/gist/kickapoo/2cec262723390d6f386a