Python使用mlxtend库实现Apriori关联规则算法详解
本文介绍如何在Python中利用mlxtend库实现Apriori关联规则算法。通过导入TransactionEncoder和apriori模块,演示数据预处理、频繁项集挖掘及关联规则生成的完整流程。重点讲解min_support、min_threshold及lift参数的配置方法,并结合具体水果数据集展示代码实现与结果分析。
环境准备与库导入
首先,需要导入包含Apriori算法相关功能的mlxtend库。
pip install mlxtend
接下来调用apriori函数进行关联规则分析。具体代码实现如下,数据集参考本博客“机器学习算法——关联规则”中的示例。在配置中,设置最小支持度(min_support)为0.4,最小置信度(min_threshold)为0.1。
同时设置最小提升度(lift)为1.0,对数据集执行关联规则分析。
Apriori算法代码实现
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
以上即为Python实现Apriori关联规则算法的完整示例。如需了解更多关于Python实现Apriori算法的资料,请查阅本站其他相关文章。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













