Алгоритм анализа правил ассоциации

У меня есть такой набор данных:

id|kurs|grade
1|c1|a
1|c2|b
2|c3|a

Я хочу использовать правила ассоциации таким образом. Если кто-то получает оценку «a» в «c1», он получит «b» в c2. Это всего лишь пример, но я хочу, чтобы правила ассоциации были определены таким образом. . Я пробовал следующий код:

dataset=list(df.values)
te = TransactionEncoder()
te_ary = te.fit(dataset).transform(dataset)
df_encoded = pd.DataFrame(te_ary, columns=te.columns_)
df_encoded
from mlxtend.frequent_patterns import apriori

apriori(df_encoded, min_support=0.1,use_colnames=True)

Я не получил ожидаемого результата. Не могли бы вы пролить свет на это?


person Sri Test    schedule 20.01.2020    source источник


Ответы (1)


Вы должны предварительно обработать данные, чтобы они соответствовали ожидаемому формату. Пытаться

#create example dataframe
import pandas as pd
ids = [1,1,2,2,3]
kurs= [1,2,3,1,1]
grade=[1,1,2,2,1]
df=pd.DataFrame.from_dict({'id':ids, 'kurs':kurs, 'grade':grade})
# make it in into the expected format 
df_properly = pd.crosstab(df['id'],[df['kurs'],df['grade']])
person Feelx234    schedule 22.01.2020