关联规则推荐算法的原理及实现

标签: 网站数据分析 Association Rules 关联规则 | 发表时间:2016-11-13 13:27 | 作者:蓝鲸
出处:http://bluewhale.cc

关联规则用来发现数据间潜在的关联,最典型的应用是电商网站的购物车分析。本文将通过一个简单的例子来说明关联规则中各个术语的含义以及具体的计算方法。

cover-photo-example

这是一些用户的购物数据,uid是用户的ID,后面是每个用户具体购买的商品名称,我们使用字母进行标识。下面我们将使用关联规则对这些数据进行分析,挖掘不同商品间的联系。

uid

首先将前面的一维的购物车流水数据转换为二维的列表。然后在这个基础上计算不同商品及商品组成出现的频率。

uid%e8%bd%ac%e7%bd%ae

在关联规则中,有三个重要的术语,分别为支持度(Support),可信度(Confidence)和作用度(Lift)。第一个属于是支持度,支持度是一件商品在所有购物车中出现的频率。如果我们希望分析的是两件商品的关联,那么支持度就是这两件商品同时出现的频率。支持度的作用是用来衡量关联规则重要性的指标,简单来说就是我们所要挖掘的关系有多大的普遍性,普遍性越大这条关联规则越重要。第二个术语是可信度,可信度是指两件商品中当第一件出现时,第二件商品同时出现的频率。可信度用来衡量关联规则的准确性。第三个术语是作用度,作用度用来衡量关联规则对于商品出现频率的影响。只有作用度大于1的关联规则才有实际的应用意义。下面我们分别介绍这三个术语的计算方法。

支持度(Support)

支持度是两件商品在所有购物车中同时出现的概率,可以记录为P(A U B)。支持度的计算公式为A,B两件物品同时出现的次数与购物车总数的比率。对于前面例子中,如果我们要计算商品A和B在5条购物车记录中的支持度,具体的计算公式为1/5。商品A和B在5条购物车记录中只在uid1中同时出现过。

%e6%94%af%e6%8c%81%e5%ba%a6_support

单件商品的支持度的计算方法与两件商品一样,如果我们要计算商品A的支持度,具体的计算公式为3/5。商品A在5条购物车记录中共出现了3次。单件商品的支持度描述了在没有其他商品影响的情况下,商品在购物车中出现的次数。

%e6%94%af%e6%8c%81%e5%ba%a6x_supportx

%e6%94%af%e6%8c%81%e5%ba%a6y_supporty

 

可信度(Confidence)

可信度是一个条件概率,两件商品其中一件出现在购物车中时,另一件也会出现的概率。可以记录为P(B|A)。对于前面的例子中,如果要计算A和B两件物品的可信度,具体的计算公式为1/3。商品A出现的3次,商品B同时出现的次数为1次。

%e5%8f%af%e4%bf%a1%e5%ba%a6_confidence

 

作用度(Lift)

作用度通过衡量使用规则后的提升效果来判断规则是否可用,简单来说就是使用规则后商品在购物车中出现的次数是否高于商品单独出现在购物车中的频率。如果大于1说明规则有效,小于1则无效。对于前面的例子中,如果要计算规则A-B是否有效,计算公式为(1/5)/(3/5*3/5)=(0.2)/(0.6*0.6)=0.2/0.36=0.55。作用度小于1说明A-B规则对于商品B的提升没有效果。

%e4%bd%9c%e7%94%a8%e5%ba%a6_lift

rule
按照前面的计算公式我们分别对下面的四个规则进行了计算,在获得支持度,可信度后计算出了四个规则的作用度。其中A-D规则作用度大于1,说明对购物车中已经包含商品A的用户推荐商品D,购买概率是单独推荐D的1.11倍。

—【所有文章及图片版权归 蓝鲸(王彦平)所有。欢迎转载,但请注明转自“ 蓝鲸网站分析博客”。】—

相关 [关联规则 推荐算法 原理] 推荐:

关联规则推荐算法的原理及实现

- - 蓝鲸的网站分析笔记
关联规则用来发现数据间潜在的关联,最典型的应用是电商网站的购物车分析. 本文将通过一个简单的例子来说明关联规则中各个术语的含义以及具体的计算方法. 这是一些用户的购物数据,uid是用户的ID,后面是每个用户具体购买的商品名称,我们使用字母进行标识. 下面我们将使用关联规则对这些数据进行分析,挖掘不同商品间的联系.

协同过滤推荐算法的原理及实现

- - 蓝鲸的网站分析笔记
协同过滤推荐算法是诞生最早,并且较为著名的推荐算法. 算法通过对用户历史行为数据的挖掘发现用户的偏好,基于不同的偏好对用户进行群组划分并推荐品味相似的商品. 协同过滤推荐算法分为两类,分别是基于用户的协同过滤算法(user-based collaboratIve filtering),和基于物品的协同过滤算法(item-based collaborative filtering).

社会化推荐算法

- - CSDN博客云计算推荐文章
本文是论文《一种结合推荐对象间关联关系的社会化推荐算法》(以下简称论文)的笔记(下). 该论文提出的算法是以PMF为框架基础的. 因而若对PMF不太了解的话,可以参考我的 上一篇文章脑补一下,当然,那篇文章只是概述,详细了解PMF还需要阅读初始论文,但读完那篇文章后,对本文的理解应该没有问题. 所谓社会化推荐算法,是将社交网络的特性加入到推荐系统中来.

常用推荐算法

- - 互联网 - ITeye博客
       在推荐系统简介中,我们给出了推荐系统的一般框架. 很明显,推荐方法是整个推荐系统中最核心、最关键的部分,很大程度上决定了推荐系统性能的优劣. 目前,主要的推荐方法包括:基于内容推荐、协同过滤推荐、基于关联规则推荐、基于效用推荐、基于知识推荐和组合推荐. 基 于内容的推荐(Content-based Recommendation)是信息过滤技术的延续与发展,它是建立在项目的内容信息上作出推荐的,而不需要依据用户对项目的评价意见,更多地需要用机 器学习的方法从关于内容的特征描述的事例中得到用户的兴趣资料.

Mahout: SVDRecommender SVD推荐算法

- -

关联规则二项集hadoop实现

- - CSDN博客推荐文章
近期看mahout的关联规则源码,颇为头痛,本来打算写一个系列分析关联规则的源码的,但是后面看到有点乱了,可能是稍微有点复杂吧,所以就打算先实现最简单的二项集关联规则. 算法的思想还是参考上次的图片:. 针对原始输入计算每个项目出现的次数;. 按出现次数从大到小(排除出现次数小于阈值的项目)生成frequence list file;.

关联规则的常用解法

- - 刘思喆@贝吉塔行星
Apriori算法是一种最有影响的挖掘 0-1 布尔关联规则频繁项集的算法. 这种算法利用了频繁项集性质的先验知识(因此叫做priori). Apriori使用了自底向上的实现方式(如果集合 I 不是频繁项集,那么包含 I 的更大的集合也不可能是频繁项集),k - 1 项集用于探索 k 项集. 首先,找出频繁 1 项集的集合($L_1$),$L_1$用于找频繁 2 项集的集合 $L_2$,而 $L_2$ 用于找 $L_3$,如此下去,直到不能找到满足条件的频繁 k 项集.

基于storm的在线关联规则

- - CSDN博客互联网推荐文章
    基于storm的在线视频推荐算法, 算法依据youtube的推荐算法  算法相对简单,可以认为是关联规则只挖掘频繁二项集. 下面给出与storm的结合实现在线实时算法 ,. 首先给出数据流图(不同颜色的线条代表不同的数据流. 在storm里面bolt也是可以声明数据流的.     关联规则挖掘数据项的时候,有事务的概念,这里的事务的定义为:给定时间窗口内用户看过的视频集.

[转]Mahout推荐算法基础

- - 小鸥的博客
Mahout推荐算法分为以下几大类. 2.相近的用户定义与数量. 2.用户数较少时计算速度快. 1.基于item的相似度. 1.item较少时就算速度更快. 2.当item的外部概念易于理解和获得是非常有用. 1基于SlopeOne算法(打分差异规则). 当item数目十分少了也很有效. 需要限制diffs的存储数目否则内存增长太快.

推荐算法Slope One初探

- - 标点符
Slope One 算法是由 Daniel Lemire 教授在 2005 年提出的一个 Item-Based 推荐算法.  Slope One 算法试图同时满足这样的的 5 个目标: . 易于实现和维护:普通工程师可以轻松解释所有的聚合数据,并且算法易于实现和测试. 运行时可更新的:新增一个评分项,应该对预测结果即时产生影响.