首先导入包含apriori算法的mlxtend库,
1
|
pip install mlxtend |
调用apriori进行关联规则分析,具体代码如下,其中数据集选取本博客 “机器学习算法——关联规则” 中的例子,可进行参考,设置最小支持度(min_support)为0.4,最小置信度(min_threshold)为0.1,
最小提升度(lift)为1.0,对数据集进行关联规则分析,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
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格式,可根据自身需求存入文件 |
输出结果如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
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的资料请关注服务器之家其它相关文章!
原文链接:https://www.cnblogs.com/1998wj/p/13738328.html