首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从用户交易数据集中寻找商品之间的关联规则

大数据观察

了解大数据,关注大数据观察吧!

每个想了解最新大数据资讯的人,都关注了我

文 / 数据君

电子商务中常用的一种数据挖掘方法就是从用户交易数据集中寻找商品之间的关联规则。

关联规则中常用的一种算法是Apriori算法。该算法主要包含两个步骤:首先找出数据集中所有的频繁项集,这些项集出现的频繁性要大于或等于最小支持度;然后根据频繁项集产生强关联规则,这些规则必须满足最小支持度和最小置信度。

上面提到了最小支持度和最小置信度,事实上,在关联规则中用于度量规则质量的两个主要指标即为支持度和置信度。那么,什么是支持度和置信度呢?

接下来进行讲解。给定关联规则X=>Y,即根据X推出Y。形式化定义为:

假设D表示交易数据集;K为项集,即包含k个项的集合;Lk表示满足最小支持度的k项集;Ck表示候选k项集。Apriori算法的参考文献描述如下。在该算法中,候选集的计算过程如下所示。

首先进行连接运算如下:

然后根据频繁项集定理(即频繁项集的子集必定是频繁项集)进行剪枝,过滤掉非频繁项集,过程如下所示:

从上述算法中可以看出,该算法存在一些困难点,譬如需要频繁扫描交易数据集,这样如果面临海量数据集,就难以满足实际应用需求;

对于大型数据集,计算候选集算法的效率较低,这也是一个难以克服的问题。目前已经有一些优化的方法用于处理这些问题,譬如FP-growth算法。

在实际应用中,随着数据的不断增长,可能还需要通过分布式计算来提高算法性能,譬如机器学习算法包Mahout[3]中实现了的并行版本FP-growth算法。

Apriori算法实例

假设给定如下电子商务网站的用户交易数据集,其中,定义最小支持度为2/9,即支持度计数为2,最小置信度为70%,现在要计算该数据集的关联规则,如表3-1所示。

计算步骤如下所示。

步骤1,根据Apriori算法计算频繁项集

(1)计算频繁1项集。

扫描交易数据集,统计每种商品出现的次数,选取大于或等于最小支持度的商品,得到了候选项集,如表3-2所示。

(2)根据频繁1项集,计算频繁2项集。

首先将频繁1项集和频繁1项集进行连接运算,得到2项集,如下所示:

扫描用户交易数据集,计算包含每个候选2项集的记录数,如表3-3所示。

根据最小支持度,得到频繁2项集,如表3-4所示。

(3)根据频繁2项集,计算频繁3项集。首先将频繁2项集进行连接,得到{,,,,,},然后根据频繁项集定理进行剪枝,即频繁项集的非空子集必须是频繁的,的2项子集为,,,都在频繁2项集中,则保留;

的2项子集为,,,都在频繁2项集中,则保留;

的2项子集为,,,由于不是频繁2项集,移除该候选集;

的2项子集为,,,由于不是频繁2项集,移除该候选集;

的2项子集为,,,由于不是频繁2项集,移除该候选集;

的2项子集为,,,由于不是频繁2项集,移除该候选集。

通过剪枝,得到候选集{,},扫描交易数据库,计算包含候选3项集的记录数,得到表3-5。

(4)根据频繁3项集,计算频繁4项集。重复上述的思路,得到,根据频繁项集定理,它的子集为非频繁项集,所以移除该候选集。从而,频繁4项集为空,至此,计算频繁项集的步骤结束。

步骤2,根据频繁项集,计算关联规则。

这里以频繁3项集为例,计算关联规则。的非空子集为、、、、和。

规则1,=>,置信度为的支持度除以的支持度,即2/4=50%,因其小于最小置信度,所以删除该规则。

同理,最后可以得到=>,=>和=>为3条强关联规则。

然而,在实际应用Apriori算法时,需要根据不同的粒度,譬如类目、商品等,结合不同的维度(浏览行为,购买行为等)进行考虑,从而构建符合业务需求的关联规则模型。

在电子商务应用中,关联规则算法适用于交叉销售的场景。譬如,有人要出行(飞往北京),根据计算出的关联规则(如:机票=>酒店)来考虑,那么,可以根据用户购买的机票,为用户推荐合适的北京酒店;

再比如,在情人节,根据关联规则,将巧克力和玫瑰花进行捆绑销售等。另外,关联规则还可以用来开发个性化电子商务推荐系统的Top N推荐。

首先,根据用户的交易数据,计算用户在特定时序内购买过的商品;然后,根据关联规则算法,计算满足最小支持度和最小置信度的商品关联规则;

再根据用户已经购买的商品和商品关联规则模型,预测用户感兴趣的商品,同时过滤掉用户已经购买过的商品,对于其他的商品,则按照置信度进行排序,从而为用户产生商品推荐。

主题 |关联规则

插图 | 网络来源

作 者 介 绍

数据君:)

了解大数据,关注大数据观察

部分图文来自网络,侵权则删

我想给你一个理由 继续面对这操蛋的生活

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181227B0QR2200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券