【星海出品】关联规则(一) python基础原理

关联规则

常用到的方法
将两个商品放在一起,进行售卖。和将两个商品单独售卖。他们的区别,和区别参数。

一个商品,可以叫做一个事务。
一个事务可以由多个属性组成。属性可以叫做一个项。
多个项可以组成一个集合,项集。

X和Y是项集
X为前项
Y为后项

支持度 一个项集 或者 规则在所有事务中出现的频率,⊙(X) :表示项集 X 的支持度的计数。

项集X的支持度:s(X) = ⊙(X) / N
规则 X ==> Y 表示物品集(X)对物品集 Y 的支持度,也就是物品集 X 和 Y 同时出现的概率。
某天共有 100 个顾客到商场购买物品,其中 30 个人同时购买了啤酒和尿布,那么上述的关系规则的支持度就是 30 %。

置信度 确定 Y 在 包含 X 的事务中出现的频率程度。 c(X -> Y) = ⊙(X ∪ Y)/⊙(X)
p (Y|X) = p(XY) / p(X)
置信度反应了关联规则的可信度,购买了项目集 X 中的商品的顾客同时也购买了 Y 中商品的可能性有多大
购买薯片的顾客中有 50% 的人购买了可乐,则置信度为 50%

交易ID | 购买的商品
——————
1 | A,B,C
2 | A,C
3 | A,D
4 | B,E,F
——————
(X , Y) ⇒ Z:
支持度:交易中包含(X、Y、Z)的可能性。
分母是所有商品。
置信度:包含(X、Y)的交易中也包含 Z 的条件概率。
分母是有条件的过滤项为分母。

若 支持度 和 置信度 分别大于或等于用户指定的最小支持率 minsupport 和最小 置信度 minconfidence, 则称关联规则 X -> Y 为强关联规则,否则称关联规则 X -> Y 为弱关联规则。

提升度
物品集 A 的出现对物品集 B 的出现概率发生了多大的变化。
如果没变化,说明 物品集 A 的出现对 B 没有影响。这是对支持度和可信度的一个补充度。

公式: lift (A==>B) =confidence (A==>B) / support(B) = p(B|A) / p(B)
p是概率,结果越接近 1 ,则关联性越低。

要用到一个pip包

pip install mlxtend

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

自定义一个购物集

data = {'ID':[1,2,3,4,5,6],
       'Onion':[1,0,0,1,1,1],
       'Potato':[1,1,0,1,1,1],
       'Burger':[1,1,0,0,1,1],
       'Milk':[0,1,1,1,0,1],
       'Beer':[0,0,1,0,1,0]}
df = pd.DataFrame(data)

进行关联计算,最小支持度为 50% ,低于这个数字则不显示。
支持度就是总的出现的频率,元组表示为几项的支持度。

frequent_itemsets = apriori(df[['Onion', 'Potato', 'Burger', 'Milk', 'Beer' ]], min_support=0.50, use_colnames=True)

计算规则,可以指定不同的衡量标准。
指定一个评估的指标,lift,不指定则打印的标准太多。

rules = association_rules(frequent_itemsets, metric='lift', min_threshold=1)

还可以对规则,进行一个判断打印。比如提升值,要大于1.125,并且置信度要大于 80%

rules [ (rules['lift'] >1.125)  & (rules['confidence']> 0.8)  ]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值