龙空技术网

关联规则挖掘-Apriori算法

编程小寶 374

前言:

如今同学们对“apriori算法的改进”都比较关切,你们都想要学习一些“apriori算法的改进”的相关资讯。那么小编同时在网络上搜集了一些对于“apriori算法的改进””的相关资讯,希望大家能喜欢,兄弟们快快来学习一下吧!

关联规则是用于市场购物车分析的机器学习的一个非常重要的概念。

Market Basket Analysis是对客户交易数据库的研究,用于确定他们在不同时间购买的各种商品之间的依赖关系。

关联规则 学习是一种基于规则的机器学习方法,用于发现大型数据库中变量之间的有趣关系。它识别频繁的if-then关联,称为关联规则。

例如:“If tea and milk, then sugar”(“如果购买茶和牛奶,那么糖也会被顾客购买”)

- 前因:茶和牛奶

- 结果:糖。

衡量关联的常用指标有三种:

支持度(Support)表示项目在数据中出现的频率。从数学上讲,支持是项目发生的事务总数的百分比。

置信度(Confidence)表示if-then语句被发现为真的次数。置信度是在给定前提下,结果发生的条件概率。

提升度(Lift)可用于比较置信度和预期置信度。这表示购买商品X时购买商品Y的可能性,同时控制Y的受欢迎程度。在数学上,

由于事务数据库中可以存在数百万(甚至更多)的行和列,因此很难手动使用这些数学公式来查找项集之间的关系。在这篇文章中,我将使用mlxtend库中的apriori算法。apriori算法是一种用于提取频繁项集的流行算法。

下面我们导入要使用的库。Numpy用于计算大型多维数组和矩阵,Pandas提供数据结构和操作来操作数值表,Matplotlib用于绘制线条,条形图,图表,直方图等。

从mlxtend 库导入apriori算法。

用于此分析的数据是药房的5月份POS交易数据。您可以在Kaggle上找到数据() 。

我们首先导入数据集。我们只需要“Article”和“Ref”列。使用pandas drop函数从表中删除其他列。

从机器学习数据集中,我们观察到具有相等“Ref”值的项目来自相同的事务。那是他们是在同一个购物车里一起买的。因此需要将同一购物车/交易中的项目组合成列表

在下面的屏幕截图中,借助pandas groupby 函数,我们能够将同一事务/购物车中的项目组合在一起。这些数据也是用apriori算法可以接受的方式准备的。

One-hot编码:这是将项目合并为每行一个事务的过程。这可以像下面一样手动完成。列表示输入数组中存在的唯一项,行表示各个事务。

apriori算法只接受整数。这里创建了一个函数来完成。

查看数据集的形状,药房中大约有1198个唯一商品。还有700个不同的交易。

由于数据只是一个月的销售数据,不足以在itemset中显示出很高的支持度。因此,我们决定查看至少支持0.1%的频繁项集。

Apriori选择最重要的项集

现在,由于我们已经确定了关键项集,因此我们应用关联规则来了解购买行为。

因此,我们观察到:

Abidec Drops和Emvit C. Drop一起购买Aboniki Balm和Robb Bottle也是一起购买的Ibuprofen Syrup 和 Allergin Syrup也是一起购买的。

根据市场购物车分析的见解,药剂师可以组织他的商店,使得彼此相邻的物品彼此靠近放置,以帮助客户轻松找到它们,从而减少顾客的等待时间。

标签: #apriori算法的改进 #关联规则aprior算法