关联分析

【摘自《数据挖掘导论》】

关联分析用于发现隐藏在大型数据集中的有意义的联系,例如通过分析大量购物单发现购买奶粉的人同时也购买了尿布。所发现的联系可以用关联规则或频繁项集的形式表示。

以购物为例,每个账单可以看做一个事务,每个商品为一个“项”,包含0个或多个项的集合称为一个项集。账单{啤酒,尿布,牛奶}包括项集{啤酒,尿布}但不包括项集{啤酒,可乐}。

关联规则是形如X→Y的蕴涵表达式,其中X,Y是不相交的表达式(X∩Y=∅)关联规则的强度可以用它的支持度(support)和置信度(confidence)来表示。


关联分析_第1张图片

发现关联规则主要包含两个子任务:频繁项集产生和规则的生成,其中频繁项集生成要花费更多的时间。

先验原理:如果一个项集是频繁的,那么他的子项集也是频繁的;同理的,如果一个项集是不频繁的,那么他的超项集也是不频繁的。

频繁项的产生,比较著名的方法有Apriori,具体如下:


关联分析_第2张图片

利用哈希数计算候选项集的支持度

关联分析_第3张图片


Apriori方法是发现-测试,计算的过程中要多次扫描事务集,会造成很大的I/O压力,另一种寻找频繁项集的方法是FP增长算法,它使用FP数(类似字典树)来寻找频繁项集。


关联分析_第4张图片

规则生成。

得到了频繁项集后,就可以生成备选规则并修剪得到最后的结果了。

例如得到频繁项集{A,B,C},则可以得到备选规则{A}→{B,C},{A,B}→{C}等多个规则,根据定义可知所有的备选规则的支持度都是符合规则的,所以需要利用规则的确信度来进行裁剪,并得到最后的关联规则。

根据支持度、确信度产生的关联规则对于不相关的项产生的关联规则效果很好,但是如果项之间有很强的关联性的话,由此产生的关联规则不能很好地反应项之间的关系。所以需要使用相关分析、IS量度等方法来观测规则的有效性。

你可能感兴趣的:(分析)