无论是提供商品还是服务,用户画像都是数据挖掘工作的重要一环。一个准确和完整的用户画像甚至可以说是许多互联网公司赖以生存的宝贵财富。
我们也已经听过了无数用户画像的神奇功能和成功案例,比如亚马逊、淘宝的机器学习团队使用用户的浏览行为、购物车状态和购买记录开发关联推荐系统,使点击率和销量大幅提升;比如应用市场根据过往APP安装记录记对每个使用者进行精准推荐;再比如音乐,图书和新闻网站通过协同过滤的方式为用户呈现个性化的定制内容。要做到这些,就必须对用户的数据进行关联分析,得到精准的推荐算法。
今天的格物汇,就带大家来了解关联分析理论和经典的Apriori算法。
关联分析
关联分析是数据挖掘中一项基础又重要的技术,是一种在大型数据库中发现变量之间有趣关系的方法,能从数据中挖掘出潜在的关联关系。或者说,关联分析是发现交易数据库中不同商品(项)之间的联系。比如,在著名的购物篮事务(market basket transactions)问题中,用户在超市里购物数据如下:
ID | Items |
1 | 牛奶,面包 |
2 | 面包,尿布,啤酒,鸡蛋 |
3 | 面包,尿布,啤酒,可乐 |
4 | 牛奶,面包,尿布,啤酒 |
5 | 牛奶,面包,可乐,鸡蛋 |
关联分析则被用来找出此类规则:顾客在买了某种商品时也会买另一种商品。在上述例子中,有的关联规则是很容易理解的比如:{牛奶}→{面包},此外我们还会挖掘出另外的某些规则: {尿布} → {啤酒};即顾客在买完尿布之后通常会买啤酒。后来通过调查分析,原来妻子嘱咐丈夫给孩子买尿布时,丈夫在买完尿布后通常会买自己喜欢的啤酒。
但是,如何衡量这种关联规则是否靠谱呢?我们需要如下指标来衡量。
我们想找出这样的规律需要从两个方面考虑:这个规律中的两个商品频繁出现,两个商品关联出现的概率较大。如果两个商品不是频繁出现的,那么有可能是小众群体的个别需求。我们把两个商品一起出现的概率称为支持度。
如果有一个商品A出现的非常频繁比如90%,而另一个商品B虽然跟A一起出现的概率很大,但是概率大的原因是A出现的太频繁了,这也不能反映出其关联关系,我们把A出现B则出现的条件概率称为置信度:
Apriori算法
Apriori算法就是为了快速的找到数据中关联的频繁集,我们用一个具体的案例来看看吧:假设我们有4种商品:商品0,商品1,商品2和商品3。那么所有可能被一起购买的商品组合都有哪些?这些商品组合可能只有一种商品,比如商品0,也可能包括两种、三种或者所有四种商品。我们并不关心某人买了两件商品0以及四件商品2的情况,我们只关心他购买了一种或多种商品。我们可以穷举出该顾客购买商品所有可能的组合:
一个简单粗暴的求解方法是:我们设定支持度和置信度的阈值——min_sup,min_cof,并算出每一个可能组合的支持度和置信度,把满足要求的组合筛选出来。如果我们的商品很多,这个方法的计算量将呈指数的增长,是很难实现的。
定理:如果一个项集是频繁的,那么其所有的子集(subsets)也一定是频繁的。
这个定理显而易见,假如{A,B,C}出现的概率大,那么{A,B},{C},出现的概率肯定也很大。这看上去没什么用,其实它的逆反定理更有用。
逆反定理:如果一个项集是非频繁的,那么其所有的超集(supersets)也一定是非频繁的。
假如{A}出现的概率很小,那么{A,C},{A,B,C}出现的概率肯定也很小。根据这个逆反定理,我们可以排除很多不必要的计算。
比如我们发现{2,3}是非频繁的,那么{0,2,3},{1,2,3},{0,1,2,3}肯定都是非频繁的。就可以大大减少我们计算的复杂度。
Apriori算法的目标是找到最大的K项频繁集,这里有两层意思,首先,我们要找到符合支持度标准的频繁集。但是这样的频繁集可能有很多。当然我们可以根据上面的逆反定理减少频繁集的计算范围,第二层意思就是我们要找到最大个数的频繁集。比如我们找到符合支持度的频繁集AB和ABE,那么我们会抛弃AB,只保留ABE,因为AB是2项频繁集,而ABE是3项频繁集。那么具体的,Apriori算法是如何做到挖掘K项频繁集的呢?我们可以看下面这个图:
Apriori算法采用了迭代的方法,线设定支持度的阈值0.5,先搜索出候选1项集及对应的支持度C1,剪枝去掉低于支持度的1项集,也就是图C1中的{4},得到频繁1项集L1。然后对剩下的频繁1项集进行连接,得到候选的频繁2项集,筛选去掉低于支持度的候选频繁2项集C2,也就是图中C2的{1,2}和{1,5},得到真正的频繁二项集L2,以此类推,迭代下去,直到无法找到频繁k+1项集为止,对应的频繁k项集的集合即为算法的输出结果。也就是用户的购物篮中,商品2,商品3,商品5常常一起购买。
总而言之,Apriori算法是一个非常经典的频繁项集的挖掘算法,很多算法都借用了其算法的思想,并做出了改进,我们也将在格物汇之后的文章中进行分享。
本文作者:格创东智OT团队(转载请注明作者及来源)
全部0条评论
快来发表一下你的评论吧 !