关联规则mlxtend的应用

#购物篮例子,找出关联规则
item_list1 = [['西红柿','排骨','鸡蛋'], 
             ['西红柿','茄子'],  
             ['鸡蛋','袜子'],  
             ['西红柿','排骨','茄子'],  
             ['西红柿','排骨','袜子','酸奶'],
             ['鸡蛋','茄子','酸奶'],
             ['排骨','鸡蛋','茄子'],
             ['土豆','鸡蛋','袜子'],
             ['西红柿','排骨','鞋子','土豆']]  
import pandas as pd
item_df1 = pd.DataFrame(item_list1) 
print(item_df1)
     0   1     2     3
0  西红柿  排骨    鸡蛋  None
1  西红柿  茄子  None  None
2   鸡蛋  袜子  None  None
3  西红柿  排骨    茄子  None
4  西红柿  排骨    袜子    酸奶
5   鸡蛋  茄子    酸奶  None
6   排骨  鸡蛋    茄子  None
7   土豆  鸡蛋    袜子  None
8  西红柿  排骨    鞋子    土豆
from mlxtend.preprocessing import TransactionEncoder
te = TransactionEncoder()  
df_tf1 = te.fit_transform(item_list1)  
df1 = pd.DataFrame(df_tf1,columns=te.columns_)     
print(df1)
      土豆     排骨     茄子     袜子    西红柿     酸奶     鞋子     鸡蛋
0  False   True  False  False   True  False  False   True
1  False  False   True  False   True  False  False  False
2  False  False  False   True  False  False  False   True
3  False   True   True  False   True  False  False  False
4  False   True  False   True   True   True  False  False
5  False  False   True  False  False   True  False   True
6  False   True   True  False  False  False  False   True
7   True  False  False   True  False  False  False   True
8   True   True  False  False   True  False   True  False
from mlxtend.frequent_patterns import apriori
frequent_itemsets = apriori(df1, min_support=0.2, use_colnames=True) 
frequent_itemsets.sort_values(by='support', ascending=False, inplace=True)
print(frequent_itemsets[frequent_itemsets.itemsets.apply(lambda x: len(x)) == 2])   
     support   itemsets
8   0.444444  (西红柿, 排骨)
7   0.222222   (排骨, 茄子)
9   0.222222   (鸡蛋, 排骨)
10  0.222222  (西红柿, 茄子)
11  0.222222   (鸡蛋, 茄子)
12  0.222222   (鸡蛋, 袜子)
from mlxtend.frequent_patterns import association_rules  
association_rule = association_rules(frequent_itemsets,metric='confidence',min_threshold=0.4)
association_rule.sort_values(by='lift',ascending=False,inplace=True) 
association_rule 
antecedentsconsequentsantecedent supportconsequent supportsupportconfidenceliftleverageconviction
0(西红柿)(排骨)0.5555560.5555560.4444440.8000001.440.1358022.222222
1(排骨)(西红柿)0.5555560.5555560.4444440.8000001.440.1358022.222222
5(袜子)(鸡蛋)0.3333330.5555560.2222220.6666671.200.0370371.333333
2(茄子)(排骨)0.4444440.5555560.2222220.5000000.90-0.0246910.888889
3(茄子)(西红柿)0.4444440.5555560.2222220.5000000.90-0.0246910.888889
4(茄子)(鸡蛋)0.4444440.5555560.2222220.5000000.90-0.0246910.888889

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哈伦2019

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值