什么是关联分析?

引言:

在认识什么是关联分析之前,先了解一下关联分析能用来干什么吧:

示例1:如下是一个超市几名顾客的交易信息。

TIDItems
001Cola, Egg, Ham
002Cola, Diaper, Beer
003Cola, Diaper, Beer, Ham
004Diaper, Beer

TID代表交易流水号,Items代表一次交易的商品。

我们对这个数据集进行关联分析,可以找出关联规则{Diaper}→{Beer}。
它代表的意义是:购买了Diaper的顾客会购买Beer。这个关系不是必然的,但是可能性很大,这就已经足够用来辅助商家调整Diaper和Beer的摆放位置了,例如摆放在相近的位置,进行捆绑促销来提高销售量。

所以,关联分析的任务就是从数据集中挖掘出频繁项集,然后从频繁项集中提取出事物之间的强关联规则,辅助决策。


各种定义:

1、 :每一条交易称为一个事务,例如示例1中的数据集就包含四个事务。
2、 :交易的每一个物品称为一个项,例如Cola、Egg等。
3、 :包含零个或多个项的集合叫做项集,例如{Cola, Egg, Ham}。
4、 k :包含k个项的项集叫做k-项集,例如{Cola}叫做1-项集,{Cola, Egg}叫做2-项集。
5、 :一个项集出现在几个事务当中,它的支持度计数就是几。例如{Diaper, Beer}出现在事务002、003和004中,所以它的支持度计数是3。
6、 :支持度计数除于总的事务数。例如上例中总的事务数为4,{Diaper, Beer}的支持度计数为3,所以它的支持度是3÷4=75%,说明有75%的人同时买了Diaper和Beer。
7、 :支持度大于或等于某个阈值的项集就叫做频繁项集。例如阈值设为50%时,因为{Diaper, Beer}的支持度是75%,所以它是频繁项集。
8、 :对于规则{Diaper}→{Beer},{Diaper}叫做前件,{Beer}叫做后件。
9、 :对于规则{Diaper}→{Beer},{Diaper, Beer}的支持度计数除于{Diaper}的支持度计数,为这个规则的置信度。例如规则{Diaper}→{Beer}的置信度为3÷3=100%。说明买了Diaper的人100%也买了Beer。
10、 :大于或等于最小支持度阈值和最小置信度阈值的规则叫做强关联规则。关联分析的最终目标就是要找出强关联规则。

我们容易发现,如果一个项集是频繁项集,则它的子项集也都是频繁项集。如果一个项集是非频繁项集,则它的超集也一定是非频繁项集。(可用反证法证明,此处略)
例如{Diaper, Beer}是频繁项集,则{Diaper}、{Beer}也都是频繁项集。
例如{Egg}是非频繁项集,则{Cola, Egg}也是非频繁项集。


关联分析:

关联分析分为两个步骤:
<1> 利用支持度找出数据集中的频繁项集。
<2> 利用置信度从频繁项集中提取出强关联规则。

频繁项集的挖掘:

Apriori算法:

Apriori算法的思路是先找出候选项集,然后根据最小支持度阈值筛选出频繁项集。
例如先找出所有1-项集,然后筛选出里面的频繁1-项集; 根据频繁1-项集生成候选2-项集,然后筛选出里面的频繁2-项集; 再根据频繁2-项集生成候选3-项集,从里面筛选出频繁3-项集;·······

Apriori算法的缺点是需要不断扫描数据集,不断地求候选项集的支持度从而判断它是否是频繁项集。当数据集很大的时候,这种算法的效率将会非常低。
更多关于Apriori,请见Apriori算法的介绍

FP-Growth算法:

FP-Growth算法只需要扫描两次数据集。它的思想是把构造一棵FP-Tree,把数据集中的数据映射到树上,再根据这棵FP-Tree找出所有频繁项集。
更多关于FP-Growth,请见FP-Growth算法的介绍FP_Growth算法python实现


关联规则的生成:

从步骤一已经得到了频繁项集,而此时的任务就是在频繁项集里面挖掘出大于最小置信度阈值的关联规则。
怎么挖呢?把频繁项集分成前件和后件两部分,然后求规则前件→后件的置信度,如果大于最小置信度阈值,则它就是一条强关联规则。
但是把频繁项集分成前件和后件的情况有很多,我们可以对其进行一些优化。


附加:

此处是针对购物篮示例来介绍关联分析,购物篮信息属于布尔型的,而现实生活中许多事物都是数值量化的,例如{购买1个时钟}→{购买2块电池}。
另外,对于产生的强关联规则,并不是全部都是有价值的,还需要对关联规则进行评价。
更多内容后续再补上。


转载请注明出处,谢谢!(原文链接:http://blog.csdn.net/bone_ace/article/details/46648965
  • 9
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值