Как использовать несколько нечетких входных наборов/отношений в scikit-fuzzy?

Я делаю нечеткого агента с 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)

Я не знаю, что делать дальше, чтобы все заработало. Объединить ли все правила или только похожие правила, и как потом использовать функцию дефаззификации? Мне нужно иметь возможность иметь два параметра (длина и мотивация), поэтому подход, который я использовал выше, не работает.


person Ben    schedule 23.06.2015    source источник


Ответы (1)


Документации по scikit fuzzy не так много, однако я нашел реализацию классического примера опрокидывания, которая может оказаться полезной.

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

person Carlos Garcia Serna    schedule 13.07.2015
comment
Отличный ресурс. Благодарю вас! - person Ben; 13.07.2015