python 如何实现关联规则算法Apriori?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
首先导入包含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
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。