关联规则挖掘算法

时间:2020-01-20 20:15:51

标签: python python-3.x machine-learning apriori mlxtend

我有一个像这样的数据集:

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

我想以这种方式挖掘关联规则。如果一个人在'c1'中获得'a'等级,他将在c2中获得'b'。这只是一个例子,但是我想在这样的方式。 我尝试了以下代码:

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)

我没有得到预期的输出。您能对此有所了解吗?

1 个答案:

答案 0 :(得分:0)

您应该对数据进行预处理,使其适合预期的格式。试试

#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']])