1.定义
关联分析(Association Analysis)用于发现隐藏在大型数据集中的令人感兴趣的联系。联系的表示方式一般为关联规则或频繁项集,例:{尿布}→{啤酒}。
2.关联分析的应用
在医学领域:发现某些症状与某种疾病之间的关联,为医生进行疾病诊断和治疗提供线
索;
在商业领域:发现商品间的联系,为商场进行商品促销及摆放货架提供辅助决策信息;
在地球科学领域:揭示海洋、陆地和大气过程之间的关系。
3.关联分析的基本概念
项集:一个包含 k 个数据项的项集就称为 k−项集
支持度计数:包含该项集的事务数 频繁项集:满足minsupport的n项集 关联规则:形如 X –> Y 的蕴涵式,{可乐,尿布}->{啤酒}
支持度: 该项集出现次数/总事务数 置信度: c(X->Y)=σ(XUY)/σ(X)
4.找关联分析的方法
(1)穷举法
产生2^k-1个候选项集,如1项集有a,b,c,d,e五个,那么就要产生32-1=31个候选项集
(2)Apriori算法
广度优先算法自底向上地搜索整个事务数据库,产生候选项集,再测试所产生的项集是否频
繁项集。Apriori算法是经典的广度优先算法。
Apriori算法是第一个关联规则挖掘算法,通过多次遍历事务数据库,使用基于支持度的剪枝
技术来有效减少候选项集搜索的时间,利用Apriori性质减少候选项集的数量。
性质(先验原理)
为提高频繁项集逐层产生的效率,控制候选项集的指数增长,Apriori算法利用两个重要性质(Apriori性质)来压缩搜索。
空间。
性质1 若x是频繁项集,则x的所有子集都是频繁项集。
性质2 若x是非频繁项集,则x的所有超集都是非频繁项集。
即 一个项的支持度永远不会超过其子集的支持度。
具体算法
首先找出频繁1-项集的集合,根据频繁1-项集得到候选2-项集并确定频繁2-项集。重复找频繁
项集过程,直到不能找到频繁k-项集。
具体算法流程如下:
设定k=1
扫描事务数据库一次,生成频繁的1-项集
如果存在两个或以上频繁k-项集,重复下面过程:
[候选产生] 由长度为k的频繁项集生成长度为(k+1)的候选项集
[候选前剪枝] 对每个候选项集,若其具有非频繁的长度为k的子集,则删除该候选项集
[支持度计算] 扫描事务数据库一次,统计每个余下的候选项集的支持度
[候选后剪枝] 删除非频繁的候选项集,仅保留频繁的(k+1)-项集
设定k = k+1
根据最小支持度阈值,提取频繁k-项集
产生强规则关联
(3)FP-growth算法
不同于Apriori等算法的“产生-测试”范型,深度优先算法不产生频繁项集,而采用模式增长的
方式产生关联规则。FP-growth是典型的深度优先算法。
FP-growth算法使用一种FP树的紧凑数据结构组织数据,经过一次扫描后,将数据库中的事
务压缩到一棵频繁模式树中,采用分而治之的策略,对频繁模式树进行处理,减少I/O次数,
提高了效率。
5.规则的评估标准
关联规则的评估通常有 2 种方式:一种通过统计论据来评估, 支持度、置信度、提升度;另一
种通过主观论据来评估。
关联规则算法倾向于产生太多规则,但许多规则是使人不感兴趣的或者冗余的,例如 {黄油}
->{面包},尽管有很高的支持度和置信度,但是它表示的关系显而易见。
所以需要建立一组广泛接受的评价关联模式质量的标准。
第一组标准是通过统计论据建立,主要基于支持度-置信度框架的客观度量。例如通过支持
度、置信度、相关性等来评价挖掘出的关联模式是否是令人感兴趣的。
第二组标准是通过主观论据建立的主观度量。有些模式虽然具有高支持度和高置信度等,但
在具备经验值后的主观评价看来,可能不是有趣的。
(1)基于支持度-置信度框架的客观度量
①支持度
反映了关联规则是否具有普遍性。支持度高说明这条规则可能适用于数据集中的大部分事
务。
②置信度
反映了关联规则的可靠性。置信度高说明如果满足了关联规则的前件,同时满足后件的可能
性也非常大。
存在问题
支持度过高会导致一些潜在的有价值的关联规则被删去。
置信度有时也不能正确反映前件和后件之间的关联。
例子:
③提升度lift
提升度是一种简单的相关性度量。对于规则A=>B或者B=>A,lift(A,B) = P(A∩B) / (P(A)*P(B))。如果lift(A,B)>1表示A、B呈正相关,规则前件的出现对后件的出现有积极影响;如果lift(A,B)<1表示A、B呈负相关,规则前件的出现对后件的出现有负面影响;lift(A,B)=1表示A、B不相关(独立),规则前件的出现对后件的出现几乎没有影响。 针对表5-7得到的规则“购买牛奶=>购买咖啡”,该规则的提升度为: