0

我有一个这样的数据集:

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)

我没有得到预期的输出。你能说明一下吗?

4

1 回答 1

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']])
于 2020-01-22T10:37:10.863 回答