数据分析机器学习实战项目一:关联规则

1、知识点介绍

明确几个概念:
事务、项、项集合
X==>Y
**支持度:**一个项集或者规则在所有事务中出现的频率,σ(X):表示项集X的支持度计数
**置信度:**确定Y在包含X的事务中出现的频繁程度。c(X → Y) = σ(X∪Y)/σ(X)

举个例子:
(X , Y)==>Z :
支持度:交易中包含{X 、 Y 、 Z}的可能性
置信度:包含{X 、 Y}的交易中也包含Z的条件概率

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

**提升度:**物品集A的出现对物品集B的出现概率发生了多大的变化
lift(A==>B)=confidence(A==>B)/support(B)=p(B|A)/p(B)
由此可见,lift正是弥补了confidence的这一缺陷,if lift=1,X与Y独立,X对Y出现的可能性没有提升作用,其值越大(lift>1),则表明X对Y的提升程度越大,也表明关联性越强。

Leverage 与 Conviction的作用和lift类似,都是值越大代表越关联
Leverage 😛(A,B)-P(A)P(B)
Conviction:P(A)P(!B)/P(A,!B)

2、代码方面知识

1)使用mlxtend工具包得出频繁项集与规则
pip install mlxtend

2)设置支持度 (support) 来选择频繁项集.
选择最小支持度为50%
apriori(df, min_support=0.5, use_colnames=True)

3)计算规则
association_rules(df, metric=‘lift’, min_threshold=1)
可以指定不同的衡量标准与最小阈值

设置显示的最大行数

pd.options.display.max_colwidth = 100

显示所有列

pd.set_option(‘display.max_columns’, None)
pd.set_option(‘display.max_columns’, 5) #最多显示五列

显示所有行

pd.set_option(‘display.max_rows’, None)

5)分割字符串并返回各个字符的复杂矩阵
Series.str.get_dummies(sep=’|’)
参数:
sep : 字符串, 默认为“|”
返回值:
数据框(DataFrame)

3、实验

实验一:

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值