首页 理论教育 云计算应用开发实践-利用Apriori小试牛刀

云计算应用开发实践-利用Apriori小试牛刀

时间:2023-11-20 理论教育 版权反馈
【摘要】:下面继续使用宠物商店为例来介绍Apriori算法的实际应用,假设目前宠物商店的交易系统中只有表6-1中的几张顾客购物清单。下面就模拟Apriori算法完成这项工作。根据频繁项集L[2]生成候选频繁项集C[3]本步和第二步中C[2]的生成规则是一样的,这里强调一点,在Apriori算法中只允许差异为1的不同项集进行组合。

云计算应用开发实践-利用Apriori小试牛刀

下面继续使用宠物商店为例来介绍Apriori算法的实际应用,假设目前宠物商店的交易系统中只有表6-1中的几张顾客购物清单。

表6-1 顾客购物清单

978-7-111-36687-4-Chapter06-3.jpg

由于本次版面布局修改的一个重要目标就是利用过去顾客已购买商品的历史信息作为参考,推荐他们可能感兴趣的其他商品。因此在这里,宠物商店的管理者经过仔细考虑和讨论,确定只要一个商品组合的购买比例占到订单交易笔数的40%(即支持度),即可认为该商品组合中的商品集合是具有较强的购买关联性。因此,如果顾客在购物篮中加入了组合其中的一种商品,则系统就会立刻将组合中的其他商品推荐给顾客。

通过表6-1的数据就可以看出支持度大于40%的商品组合结果。可是,在面对数以百万计的交易数据时我们又如何能够得到期望的结果呢?下面就模拟Apriori算法完成这项工作。

(1)计算单项商品的频繁项集L[1]

首先要找到单项商品的候选商品频繁项集C[1],然后过滤掉其中支持度小于40%的商品频繁项集从而得到L[1],如表6-2所示。

表6-2 计算频繁项集L[1]

978-7-111-36687-4-Chapter06-4.jpg

得到频繁项集L[1]={{鸟},{鸟笼},{鸟食},{猫粮},{猫砂},{宠物玩具}}。

(2)根据频繁项集L[1]生成候选频繁项集C[2]

顾名思义,C[2]即为商品数量为2的候选频繁项集,它是由单品频繁项集L[1]中的频繁项集两两组合而来的,这里直接给出结果。

得到候选频繁项集C[2]={{鸟,鸟笼},{鸟,鸟食},{鸟,猫粮},{鸟,猫砂},{鸟,宠物玩具},{鸟笼,鸟食},{鸟笼,猫粮},{鸟笼,猫砂},{鸟笼,宠物玩具},{鸟食,猫粮},{鸟食,猫砂},{鸟食,宠物玩具},{猫粮,猫砂},{猫粮,宠物玩具},{猫砂,宠物玩具}}。

(3)计算单项商品频繁项集L[2]

利用候选频繁项集C[2]进行计算,过滤掉支持度小于40%的商品频繁项集得到L[2],如表6-3所示。

表6-3 计算频繁项集L[2](www.xing528.com)

978-7-111-36687-4-Chapter06-5.jpg

(续)

978-7-111-36687-4-Chapter06-6.jpg

得到频繁项集L[2]={{鸟,鸟笼},{鸟,鸟食},{鸟笼,鸟食},{猫粮,猫砂},{猫粮,宠物玩具}}。

(4)根据频繁项集L[2]生成候选频繁项集C[3]

本步和第二步中C[2]的生成规则是一样的,这里强调一点,在Apriori算法中只允许差异为1的不同项集进行组合。例如在本次计算C[3]的候选频繁项集时,{鸟,鸟笼}和{鸟,鸟食}之间是可以组合的,而{鸟,鸟笼}和{猫粮,猫砂}由于这两个频繁项集的差异为2(超过了1个元素),则不能进行组合。

得到候选频繁项集C[3]={{鸟,鸟笼,鸟食},{猫粮,猫砂,宠物玩具}}。

(5)计算单项商品频繁项集L[3]

表6-4 计算频繁项集L[3]

978-7-111-36687-4-Chapter06-7.jpg

得到频繁项集L[3]={{鸟,鸟笼,鸟食}}。

(6)循环终结条件及获得最终的商品频繁项集

由于C4应由L[3]中的频繁项集组合而来,但L[3]中目前已没有可供继续连接的频繁项集,因此循环到此结束。

根据Apriori算法,本例中最终的商品频繁项集为L[1]∪L[2]∪L[3]={{鸟},{鸟笼},{鸟食},{猫粮},{猫砂},{宠物玩具},{鸟,鸟笼},{鸟,鸟食},{鸟笼,鸟食},{猫粮,猫砂},{猫粮,宠物玩具},{鸟,鸟笼,鸟食}}。

根据本例中宠物商店的需求,对客户兴趣度有意义的商品关联数据为{鸟,鸟笼},{鸟,鸟食},{鸟笼,鸟食},{猫粮,猫砂},{猫粮,宠物玩具},{鸟,鸟笼,鸟食}。因此,宠物商店可根据以上数据来进行商品推荐。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈