Apriori算法(Python)

浏览: 2349

关联规则挖掘是数据挖掘中最活跃的研究方法之一,最早是针对购物篮分析问题提出的,其目的是为了发现交易数据库中不同商品之间的联系规则,这些规则刻画了顾客购买行为模式,可以用来指导商家科学地安排进货,库存以及货架设计等。而Apriori算法是第一个关联规则挖掘算法,也是最经典的算法。

以如下的场景为例,使用Python快速实现Apriori算法:

1.场景与需求

一家超市的业务数据库中有销售订单表如下:

id为订单号,name为商品名称

image.png

由此我们展开关联规则的挖掘分析

2.环境准备

安装包:

pip install apyori

测试一下:

from apyori import apriori

3.数据准备与处理

由于目前数据库中以行列的形式存放数据,即:订单号-商品名称,若要使用apriori算法,无论使用SPSS还是Python都需要将数据处理成如下的数据结构:

[[订单1商品集],[订单2商品集],[订单3商品集],[订单4商品集]]。

由此展开如下处理步骤:

(1)数据准备

image.png

(2)数据处理

image.png


4.关联规则挖掘与说明

代码如下:

image.png

image.png

结果表如下:

image.png

在这里使用apriori算法库时,要了解它到一些参数如下:

Support(支持度):表示同时包含 A 和 B 的事务占所有事务的比例。如果用 P(A) 表示包含 A 的事务的比例,那么 Support = P(A & B);

 Confidence(可信度):表示包含 A 的事务中同时包含 B 的事务的比例,即同时包含 A 和 B 的事务占包含 A 的事务的比例。公式表达:Confidence = P(A & B)/ P(A);

 Lift(提升度):表示“包含 A 的事务中同时包含 B 的事务的比例”与“包含 B 的事务的比例”的比值。公式表达:Lift = ( P(A & B)/ P(A) ) / P(B) = P(A & B)/ P(A) / P(B)。提升度反映了关联规则中的 A 与 B 的相关性,提升度 > 1 且越高表明正相关性越高,提升度 < 1 且越低表明负相关性越高,提升度 = 1 表明没有相关性。

因此,在apriori算法中我们可以传入如下参数,来筛选项集

min_support -- The minimum support of relations (float).最小支持度

min_confidence -- The minimum confidence of relations (float).最小可信度

min_lift -- The minimum lift of relations (float).最小提升度

max_length -- The maximum length of the relation (integer).序列最小长度

传入如下参数:

image.png



/*原创,转载请联系!*/


推荐 0
本文由 Max_Leo 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册