数据分析-关联规则-Apriori

目录

关联规则

衡量标准

支持度

置信度

杠杆率(leverage)

确信度(conviction)

提升度

 实现


美国沃尔玛超市对一年多的原始交易数据进行了详细的分析,得到一个意外发现:与尿布一起被购买最多的商品竟然是啤酒。

--关联规则在客户关系管理系统中的经典案例

关联规则

形如"如果X那么Y(If…Then…)",前者为条件,后者为结果。例如一个顾客,如果买了X,那么他也会购Y。

衡量标准

如何来度量一个规则是否够好?主要有两个量,置信度(Confidence)和支持度(Support)。

支持度

对于关联规则R:X=>Y,其中X \subset IY \subset I,并且X \cap Y =\phi

 规则R的的支持度(Support)是交易集中同时包含X和Y的交易数与所有交易数之比。

关联规则的最小支持度也就是衡量频繁集的最小支持度(Minimum Support),记为supmin,它用于衡量规则需要满足的最低重要性。

置信度

表示了这条规则有多大程度上值得可信。

设条件的项的集合为X,结果的集合为Y。置信度计算在X中,同时也含有Y的概率(即:if X ,then Y的概率)。即 Confidence(X=>Y)=P(Y|X)

关联规则的最小置信度(Minimum Confidence)记为confmin,它表示关联规则需要满足的最低可靠性。

如果规则R:X=>Y满足support(X=>Y)>supminconfidence(X=>Y)>confmin,称关联规则X=>Y强关联规则,否则称关联规则X=>Y为弱关联规则

在挖掘关联规则时,产生的关联规则要经过supminconfmin的衡量,筛选出来的强关联规则才能用于指导商家的决策。

杠杆率(leverage)

0X和Y独立,越大X和Y的关系越密切。

确信度(conviction)

也是用来衡量X和Y的独立性。

提升度

引入提升度Lift,以度量此规则是否可用。它描述的是:相对于不用规则,使用规则可以提高多少。

Lift(X->Y)=Confidence(X->Y)/Support(Y)=p(XY)/p(X)p(Y)

算法:

  • 找出满足支持度的单个商品
  • 将以上商品两两组合,找出满足支持度的两两组合
  • 依次在以上商品中找到三个,四个....满足条件的组合
  • 在满足条件的组合中找置信度满足条件的规则

 实现

#定义函数读取购物篮数据
def read_file_apriori(filename):
    k=[]
    with open(filename) as f:
        for i in f:
            k.append(i.split())
    return k 
data=read_file_apriori("d:/datasets/basket.txt")
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori
import pandas as pd
te = TransactionEncoder()
#编码
te_ary = te.fit(data).transform(data)   #类似onehot编码,所有的商品都是特征,购物篮中有的样本对应的特征为True,没买的样本对应的特征值为False
df = pd.DataFrame(te_ary, columns=te.columns_)
freq=apriori(df,min_support=0.05, use_colnames=True)  #找出满足最小支持度的商品

  TransactionEncoder编码的结果

 满足支持度条件的商品及组合

 找出满足条件的规则

#导入关联规则包
from mlxtend.frequent_patterns import association_rules
#计算关联规则
result = association_rules(freq, metric="confidence", min_threshold=0.4) #找出满足置信度大于0.4的规则

'''
supported metrics are 'support', 'confidence', 'lift',
  'leverage', and 'conviction'
'''

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ITLiu_JH

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

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

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

打赏作者

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

抵扣说明:

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

余额充值