Python中的Apriori关联算法-市场购物篮分析

数据科学Apriori算法是一种数据挖掘技术,用于挖掘频繁项集和相关的关联规则。

由Kaizong Ye,Liao Bao撰写

本模块重点介绍什么是关联规则挖掘和Apriori算法,以及Apriori算法的用法。此外,在小型企业场景中,我们将借助Python编程语言构建一个Apriori模型。

什么是关联规则挖掘?

如前所述,Apriori算法用于关联规则挖掘。现在,什么是关联规则挖掘?关联规则挖掘是一种用于识别一组项目之间的频繁模式和关联的技术。

例如,了解客户的购买习惯。通过查找顾客放置在其“购物篮”中的不同商品之间的关联和关联,可以得出重复的模式.

×
支持度(support):support(A=>B) = P(A∪B),表示A和B同时出现的概率。
置信度(confidence):confidence(A=>B)=support(A∪B) / support(A),表示A和B同时出现的概率占A出现概率的比值。
频繁项集:频繁项集挖掘是数据挖掘研究课题中一个很重要的研究基础,它可以告诉我们在数据集中经常一起出现的变量,为可能的决策提供一些支持。频繁项集挖掘是关联规则、相关性分析、因果关系、序列项集、局部周期性、情节片段等许多重要数据挖掘任务的基础。因此,频繁项集有着很广泛的应用,例如:购物篮数据分析、网页预取、交叉购物、个性化网站、网络入侵检测等。,对频繁项集挖掘算法进行研究的方向大概可归纳为以下四个方面:一、在遍历方向上采取自底向上、自顶向下以及混合遍历的方式;二、在搜索策略上采取深度优先和宽度优先策略;三、在项集的产生上着眼于是否会产生候选项集;四、在数据库的布局上,从垂直和水平两个方向上考虑数据库的布局。对于不同的遍历方式,数据库的搜索策略和布局方式将会产生不同的方法,研究表明,没有什么挖掘算法能同时对所有的定义域和数据类型都优于其他的挖掘算法,也就是说,对于每一种相对较为优秀的算法,它都有它具体的适用场景和环境。
强关联规则:满足最小支持度和最小置信度的关联规则。



识别产品/商品之间的关联的过程称为关联规则挖掘。为了实现关联规则挖掘,已经开发了许多算法。Apriori算法是其中最受欢迎的算法,而且可以说是最有效的算法。让我们讨论什么是Apriori算法。

什么是先验算法?

Apriori算法假定频繁项集的任何子集都必须是频繁的。

假设包含{葡萄酒,薯条,面包}的交易也包含{葡萄酒,面包}。因此,根据Apriori原理,如果{酒,薯条,面包}很频繁,那么{酒,面包}也必须很频繁。

Apriori算法如何工作?

Apriori算法中的关键概念是,它假定一个频繁项集的所有子集都是频繁的。同样,对于任何不频繁的项目集,其所有超集也必须不频繁。

让我们在一个非常著名的业务场景市场篮分析的帮助下,尝试并理解Apriori算法的工作原理。

这是一个小时内包含六个事务的数据集。每个事务都是0和1的组合,其中0表示不存在某项,而1表示其存在。

交易编号葡萄酒薯片面包牛奶
11111
21011
30011
40100
51111
61101

我们可以从这种情况下找到多个规则。例如,在葡萄酒,薯条和面包的交易中,如果购买了葡萄酒和薯条,那么客户也会购买面包。

{葡萄酒,薯条} => {面包}

现在我们知道了找出有趣规则的方法,让我们回到示例中。在开始之前,让我们将支持阈值固定为50%。

步骤1:创建所有交易中出现的所有项目的频率表

项目频率
葡萄酒4
薯片4
面包4
牛奶5

步骤2根据支持阈值查找重要项目

步骤4根据支持阈值找到重要项目

项目频率
葡萄酒,牛奶4
面包,牛奶4

第5步:根据第4步中的重要商品,三件一起购买的商品

项目频率
葡萄酒,面包,牛奶3

{酒,面包,牛奶}是从给定数据中获得的唯一重要项目集。但是在实际场景中,我们将有数十个项目可用来构建规则。然后,我们可能必须制作四对/五对项集。



R语言关联挖掘实例(购物篮分析)

阅读文章


Python中的Apriori算法-市场篮子分析

问题陈述

一家零售商店的经理正在尝试找出六个商品之间的关联规则,以找出哪些商品更经常一起购买,以便他可以将这些商品放在一起以增加销量。

数据集

以下是第一天的交易数据。此数据集包含6个项目和22个交易记录。

使用Python进行市场购物篮分析

我们将实现Apriori算法,以帮助经理进行市场分析。

步骤1:导入库 

步骤2:载入资料集

步骤3:浏览记录 

步骤4:查看 

步骤5: 将Pandas DataFrame转换为列表列表

步骤6:建立Apriori模型

步骤7:输出规则数量 

步骤8:浏览规则


随时关注您喜欢的主题


第一条规则的支持值为0.5。该数字是通过将包含“牛奶”,“面包”和“黄油”的交易数量除以交易总数而得出的。

该规则的置信度为0.846,这表明在同时包含“牛奶”和“面包”的所有交易中,也有84.6%的交易包含“黄油”。

提升1.241告诉我们,同时购买“牛奶”和“黄油”的顾客购买“黄油”的可能性是“黄油”的默认可能性的1.241倍。


可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498