关联规则
关联规则分析是数据挖掘中最活跃的研究方法之一,目的是在一个数据集中找出各项之间的关联关系,而这种关系在数据中并没有直接表示出来
常用关联规则算法如下表所示:
算法名称 |
算法描述 |
Apriori |
关联规则最常用也是最经典的挖掘频繁项集的算法,其核心思想是通过连接产生候选项及其支持度然后通过剪枝生成频繁项集 |
FP-Tree |
针对Apriori算法固有的多次扫描事务数据集的缺陷,提出的不产生候选项频繁项集的方法。Apriori和FP-Tree都是寻找频繁项集的算法 |
Eclat算法 |
Eclat算法是一种深度优先算法,采用垂直数据表示形式,在概念格理论的基础上利用基于前缀的等价关系将搜索空间划分为较小的子空间 |
灰色关联法 |
分析和确定各因素之间的影响程度或是若干个子因素(子序列)对主因素(母序列)的贡献度而进行的一种分析方法 |
1.Apriori算法
该算法核心思想是通过连接产生候选项与其支持度然后通过剪枝生成的频繁项集。
1)关联规则和频繁项集
关联规则的一般形式
项集A、B同时发生的概率称为关联规则的支持度(也称为相对支持度):
Support(A=>B)=P(AB)
项集A发生,则项集B发生的概率为关联规则的置信度:
Confidence(A=>B)=P(B|A)
2)最小支持度和最小置信度
最小支持度是用户或专家定义的衡量支持度的一个阈值,表示项目集在统计意义上的最低重要性;最小置信度是用户或专家定义的衡量置信度的一个阈值,表示关联规则的最低可靠性。同时满足最小支持度阈值和最小置信度值的规则称为强规则。
3)项集
项集是项的集合。包含k个项的项集称为k项集,项集的出现频率是所有包含项集的事务计数,又称作绝对支持度或支持度计数。如果项集I的相对支持度满足预定义的最小支持度阈值,则I是频繁项集。频繁k项集通常记作为Lk 。
4)支持度计数
项集A的支持度计数是失误数据集中包含项集A的事务个数,简称为项集的频率或计数。已知项集的支持度计数,则规则A=>B的支持度和置信度很容易从所有事务计数、项集A和项集AB的支持度计数推出:
Support(A=>B)=A,B同时发生的事务个数/所有的事务个数
Confidence(A=>B)=P(A|B)=Support(AB)/Support(A)
也就是说,一旦得到所有事务个数,A,B和AB的支持度计数,就可以导出对应的关联规则A=>B和B=>A,并可以检查该规则是否是强规则。
2.Apriori算法:使用候选产生频繁项集
Apriori算法的主要思想是找出存在于事务数据集中最大的频繁项集,在利用得到的最大频繁项集与预先设定的最小置信度阈值生成强关联规则。
1) Apriori的性质
频繁项集的所有非空子集也必须是频繁项集。根据该性质可以得出:向不是频繁项集I的项集中添加事务A,新的项集IA一定也不是频繁项集。
2) Apriori算法实现的两个过程
找出所有的频繁项集(支持度必须大于等于给定的最小支持度阈值),在这个过程中连接步和剪枝不互相融合,最终得到最大频繁项集Lk 。
l 连接步:
连接步的目的是找到k项集。对给定的最小支持度阈值,分别对1项候选集C1,剔除小于该阈值的项集得到1项频繁项集L1;下一步由L1自身连接产生2项候选集C2,保留C2中满足约束条件的项集得到2项频繁集,记为L2;再下一步由L2与L1连接产生3项候选集C3,保留C2中满足约束条件的项集得到3项频繁集,记为L3……这样循环下去,得到最大频繁项集Lk
l 剪枝步:
剪枝步紧接着连接步,在产生候选项Ck 的过程中起到减小搜索空间的目的。由于Ck是Lk-1与L1连接产生的,根据Apriori的性质频繁项集的所有非空子集也必须是频繁项集,所以不满足该性质的项集将不会存在于Ck中,该过程就是剪枝。
2)由频繁项集产生强关联规则:由过程1)可知未超过预定的最小支持度阈值的项集已被剔除,如果剩下这些规则又满足了预定的最小置信度阈值,那么就挖掘出了强关联规则。