数据科学Apriori算法是一种数据挖掘技术,用于挖掘频繁项集和相关的关联规则。本模块重点介绍什么是关联规则挖掘和Apriori算法,以及Apriori算法的用法。
去年,我们为一家公司进行了短暂的咨询工作,该公司正在构建一个主要基于Apriori关联算法的分析应用程序。此外,在小型企业场景中,我们将借助Python编程语言构建一个Apriori模型。
视频:R语言关联规则模型(Apriori算法)挖掘杂货店的交易数据与交互可视化
关联规则模型、Apriori算法及R语言挖掘杂货店交易数据与交互可视化
,时长07:03
什么是关联规则挖掘?
如前所述,Apriori算法用于关联规则挖掘。现在,什么是关联规则挖掘?关联规则挖掘是一种用于识别一组项目之间的频繁模式和关联的技术。
例如,了解客户的购买习惯。通过查找顾客放置在其“购物篮”中的不同商品之间的关联和关联,可以得出重复的模式.
识别产品/商品之间的关联的过程称为关联规则挖掘。为了实现关联规则挖掘,已经开发了许多算法。Apriori算法是其中最受欢迎的算法,而且可以说是最有效的算法。让我们讨论什么是Apriori算法。
什么是先验算法?
Apriori算法假定频繁项集的任何子集都必须是频繁的。
假设包含{葡萄酒,薯条,面包}的交易也包含{葡萄酒,面包}。因此,根据Apriori原理,如果{酒,薯条,面包}很频繁,那么{酒,面包}也必须很频繁。
Apriori算法如何工作?
Apriori算法中的关键概念是,它假定一个频繁项集的所有子集都是频繁的。同样,对于任何不频繁的项目集,其所有超集也必须不频繁。
让我们在一个非常著名的业务场景市场篮分析的帮助下,尝试并理解Apriori算法的工作原理。
这是一个小时内包含六个事务的数据集。每个事务都是0和1的组合,其中0表示不存在某项,而1表示其存在。
交易编号 | 葡萄酒 | 薯片 | 面包 | 牛奶 |
1 | 1个 | 1个 | 1个 | 1个 |
2 | 1个 | 0 | 1个 | 1个 |
3 | 0 | 0 | 1个 | 1个 |
4 | 0 | 1个 | 0 | 0 |
5 | 1个 | 1个 | 1个 | 1个 |
6 | 1个 | 1个 | 0 | 1个 |
我们可以从这种情况下找到多个规则。例如,在葡萄酒,薯条和面包的交易中,如果购买了葡萄酒和薯条,那么客户也会购买面包。
{葡萄酒,薯条} => {面包}
现在我们知道了找出有趣规则的方法,让我们回到示例中。在开始之前,让我们将支持阈值固定为50%。
步骤1:创建所有交易中出现的所有项目的频率表
项目 | 频率 |
葡萄酒 | 4 |
薯片 | 4 |
面包 | 4 |
牛奶 | 5 |
步骤2:根据支持阈值查找重要项目
支持阈值= 3
项目 | 频率 |
葡萄酒 | 4 |
薯片 | 4 |
面包 | 4 |
牛奶 | 5 |
步骤3:从重要的项目开始,使成对的商品与订单无关
项目 | 频率 |
葡萄酒,薯条 | 3 |
葡萄酒,面包 | 3 |
葡萄酒,牛奶 | 4 |
薯条,面包 | 2 |
薯片,牛奶 | 3 |
面包,牛奶 | 4 |
步骤4:根据支持阈值找到重要项目
项目 | 频率 |
葡萄酒,牛奶 | 4 |
面包,牛奶 | 4 |
第5步:根据第4步中的重要商品,三件一起购买的商品
项目 | 频率 |
葡萄酒,面包,牛奶 | 3 |
{酒,面包,牛奶}是从给定数据中获得的唯一重要项目集。但是在实际场景中,我们将有数十个项目可用来构建规则。然后,我们可能必须制作四对/五对项集。
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倍。