使用Apriori算法进行关联分析
关联分析是一种在大规模数据集中寻找有趣关系的任务。这些关系可以有两种形式:频繁项集或者关联规则。频繁项集是指经常出现在一块的物品的集合,关联规则暗示两种物品之间可能存在很强的关系。一个项集的支持度被定义为数据集中包含该项集的记录所占的比例。可信度或置信度是针对一条诸如{尿布}->{葡萄酒}的关联规则来定义的。这条规则的可信度被定义为"支持度({尿布->啤酒})/支持度({尿布})"
尽管大部分关联规则分析的实例来自零售业,但该技术同样可以用于其他行业,比如网站流量分析以及医药行业。
Apriori原理
--如果某个项集是频繁的,那么它的所有子集也是频繁的。反过来看,也就是说,如果一个项集是非频繁集,那么它的所有超集也是非频繁的。
Apriori算法
--Apriori算法的两个输入参数分别是最小支持度和数据集。该算法首先会生成所有单个项的项集列表。接着扫描交易记录来查看哪些项集满足最小支持度的要求,那些不满足最小支持度的项集会被去掉。然后,对剩下来的集合进行组合以生成包含两个元素的项集。接下来,再重新扫描交易记录,去掉不满足最小支持度的项集。该过程重复进行直到所有项集都被去掉。
伪代码如下:
当集合中项的个数大于0时
构建一个k个项组成的候选项集的列表
检查数据以确认每个项集都是频繁的
保留频繁项集并构建k+1项组成的候选项集的列表
从频繁项集中挖掘关联规则
关联规则的量化指标称为可信度。一条规则P -> H的可信度定义为support(P|H)/support(P)。
类似于频繁项集的产生,我们可以为每个频繁项集产生许多关联规则。如果能够减少规则数目来确保问题的可解性,那么计算起来就会好很多。可以观察到,如果每条规则并不满足最小可信度要求,那么该规则的所有子集也不会满足最小可信度要求。