关联规则算法Apriori的Python实现


首先导入包含apriori算法的mlxtend库,

pip install mlxtend

调用apriori进行关联规则分析,具体代码如下,其中数据集选取本博客  “机器学习算法——关联规则” 中的例子,可进行参考,设置最小支持度(min_support)为0.4,最小置信度(min_threshold)为0.1,

最小提升度(lift)为1.0,对数据集进行关联规则分析,

from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules
import pandas as pd

df_arr = [['苹果','香蕉','鸭梨'],
        ['橘子','葡萄','苹果','哈密瓜','火龙果'],
        ['香蕉','哈密瓜','火龙果','葡萄'],
        ['橘子','橡胶'],
        ['哈密瓜','鸭梨','葡萄']
        ]

#转换为算法可接受模型(布尔值)
te = TransactionEncoder()
df_tf = te.fit_transform(df_arr)
df = pd.DataFrame(df_tf,columns=te.columns_)

#设置支持度求频繁项集
frequent_itemsets = apriori(df,min_support=0.4,use_colnames= True)
#求关联规则,设置最小置信度为0.15
rules = association_rules(frequent_itemsets,metric = 'confidence',min_threshold = 0.15)
#设置最小提升度
rules = rules.drop(rules[rules.lift <1.0].index)
#设置标题索引并打印结果
rules.rename(columns = {'antecedents':'from','consequents':'to','support':'sup','confidence':'conf'},inplace = True)
rules = rules[['from','to','sup','conf','lift']]
print(rules)
#rules为Dataframe格式,可根据自身需求存入文件

输出结果如下:

          from          to  sup      conf      lift
0        (哈密瓜)       (火龙果)  0.4  0.666667  1.666667
1        (火龙果)       (哈密瓜)  0.4  1.000000  1.666667
2        (哈密瓜)        (葡萄)  0.6  1.000000  1.666667
3         (葡萄)       (哈密瓜)  0.6  1.000000  1.666667
4         (葡萄)       (火龙果)  0.4  0.666667  1.666667
5        (火龙果)        (葡萄)  0.4  1.000000  1.666667
6    (哈密瓜, 葡萄)       (火龙果)  0.4  0.666667  1.666667
7   (哈密瓜, 火龙果)        (葡萄)  0.4  1.000000  1.666667
8    (葡萄, 火龙果)       (哈密瓜)  0.4  1.000000  1.666667
9        (哈密瓜)   (葡萄, 火龙果)  0.4  0.666667  1.666667
10        (葡萄)  (哈密瓜, 火龙果)  0.4  0.666667  1.666667
11       (火龙果)   (哈密瓜, 葡萄)  0.4  1.000000  1.666667

Process finished with exit code 0

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM