Python中关联的规则有哪些

发布时间:2021-03-18 15:06:10 作者:Leah
来源:亿速云 阅读:260

今天就跟大家聊聊有关Python中关联的规则有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

1. 关联规则

大家可能听说过用于宣传数据挖掘的一个案例:啤酒和尿布;据说是沃尔玛超市在分析顾客的购买记录时,发现许多客户购买啤酒的同时也会购买婴儿尿布,于是超市调整了啤酒和尿布的货架摆放,让这两个品类摆放在一起;结果这两个品类的销量都有明显的增长;分析原因是很多刚生小孩的男士在购买的啤酒时,会顺手带一些婴幼儿用品。

不论这个案例是否是真实的,案例中分析顾客购买记录的方式就是关联规则分析法Association Rules。

关联规则分析也被称为购物篮分析,用于分析数据集各项之间的关联关系。

1.1 基本概念

Python中关联的规则有哪些

Python中关联的规则有哪些

提升度:为了判断产生规则的实际价值,即使用规则后商品出现的次数是否高于商品单独出现的评率,提升度和衡量购买X对购买Y的概率的提升作用。如下公式可见,如果X和Y相互独立那么提升度为1,提升度越大,说明X->Y的关联性越强

Python中关联的规则有哪些

1.2 关联规则Apriori算法

关联规则方法的步骤如下:

Apriori算法是经典的关联规则算法。Apriori算法的目标是找到最大的K项频繁集。Apriori算法从寻找1项集开始,通过最小支持度阈值进行剪枝,依次寻找2项集,3项集直到没有更过项集为止。

下面是一个案例图解:

Python中关联的规则有哪些

2. mlxtend实战关联规则

关联规则目前在scikit-learn中并没有实现。这里介绍另一个python库mlxtend。

2.1 安装

pip install mlxtend

2.2 简单的例子

来看下数据集:

import pandas as pd

item_list = [['牛奶','面包'],
    ['面包','尿布','啤酒','土豆'],
    ['牛奶','尿布','啤酒','可乐'],
    ['面包','牛奶','尿布','啤酒'],
    ['面包','牛奶','尿布','可乐']]

item_df = pd.DataFrame(item_list)

数据格式处理,传入模型的数据需要满足bool值的格式

from mlxtend.preprocessing import TransactionEncode

te = TransactionEncoder()
df_tf = te.fit_transform(item_list)
df = pd.DataFrame(df_tf,columns=te.columns_)

Python中关联的规则有哪些

from mlxtend.frequent_patterns import apriori

# use_colnames=True表示使用元素名字,默认的False使用列名代表元素, 设置最小支持度min_support
frequent_itemsets = apriori(df, min_support=0.05, use_colnames=True)

frequent_itemsets.sort_values(by='support', ascending=False, inplace=True)

# 选择2频繁项集
print(frequent_itemsets[frequent_itemsets.itemsets.apply(lambda x: len(x)) == 2])

Python中关联的规则有哪些

from mlxtend.frequent_patterns import association_rules

# metric可以有很多的度量选项,返回的表列名都可以作为参数
association_rule = association_rules(frequent_itemsets,metric='confidence',min_threshold=0.9)

#关联规则可以提升度排序
association_rule.sort_values(by='lift',ascending=False,inplace=True)    
association_rule
# 规则是:antecedents->consequents

Python中关联的规则有哪些

选择出来关联规则之后,根据提升度排序后,可能最高提升度的规则是在我们常识范围内,那这个规则的价值就不高。所以我们要在产生的规则中根据业务特点进行筛选,像开篇提到(啤酒->尿布)完全不同的品类之间的关联。


看完上述内容,你们对Python中关联的规则有哪些有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

推荐阅读:
  1. LR中的关联
  2. Mysql中基本语句优化的原则有哪些

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:如何利用css3实现进度条效果及动态添加百分比

下一篇:CSS3如何为背景图设置遮罩并解决遮罩样式继承问题

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》