关联规则是数据挖掘中的一个重要分支,其主要研究目的是从各种数据集中发现模式,相关性,关联或因果结构。
关联规则有形如X→YX→Y 的蕴含表达式,其中X和Y是不相交的项集,即X∩Y=∅X∩Y=∅。
关联规则的三个指标
·Support(支持度)
表示同时包含A和B的事务占所有事务的比例。
公式:Support=P(A&B)
·Confidence(可信度)
表示使用包含A的事务中同时包含B事务的比例,即同时包含A和B的事务占包含A事务的比例。
公式表达:Confidence=P(A&B)/P(A)
·Lift(提升度)
表示“包含A的事务中同时包含B事务的比例”与“包含B事务的比例”的比值。
公式表达:
Lift=( P(A&B)/P(A))/P(B)=P(A&B)/P(A)/P(B)。
提升度反映了关联规则中的A与B的相关性,提升度>1且越高表明正相关性越高,提升度<1且越低表明负相关性越高,提升度=1表明没有相关性。
啤酒和尿布是关联规则中很有名的案例,我们以这个例子来说明关联规则的这三个指标。
总共有10000个消费者购买了商品,
其中购买尿布的有1000人,
购买啤酒的有2000人,
购买面包的有500人,
同时购买尿布和啤酒的有800人,
同时购买尿布的面包的有100人。
support=同时购买{A,B}的人数总人数
{尿布,啤酒}的支持度 = 800 / 10000 = 0.08
{尿布,面包}的支持度 = 100 / 10000 = 0.01
confidence(A−>B)=同时购买{A,B}的人数购买A的人数
confidence(B−>A)=同时购买{A,B}的人数购买B的人数
( 尿布 -> 啤酒 ) 的置信度 = 800 / 1000 = 0.8
( 啤酒 -> 尿布 ) 的置信度 = 800 / 20000= 0.4
lift=同时购买{A,B}的人数购买A的人数与购买B的人数的比值
( 尿布 -> 啤酒 ) 的置信度 = 800 / 1000 = 0.8
单独购买啤酒的比例=2000/10000=0.2
lift=0.8/0.2
在购买尿布的前提下,购买啤酒的比例升高了,说明购买尿布与购买啤酒具有关联性。
具体的应用之中,我们认为提升度>3才算作值得认可的关联。
在这个案例中,提升度=4,说明购买尿布确实与购买啤酒是有关联的。
关联规则的分类
根据不同的情况,关联规则可以进行不同的分类。
1.根据规则中所处理的变量的类型,关联规则可以分为布尔型和数值型。
布尔型关联规则处理的值都是离散的、种类化的,它显示了这些变量之间的关系。数值型关联规则可以对数值型字段,原始数据进行处理,包含多种类型的变量。
例如:性别=“女”=>职业=“会计” ,是布尔型关联规则;性别=“女”=>avg(收入)=3000,涉及的收入是数值类型,所以是一个数值型关联规则。
2.基于规则中数据的抽象层次,可以分为单层关联规则和多层关联规则。
在单层的关联规则中,所有的变量都没有考虑到现实的数据是具有多个不同的层次的;而在多层的关联规则中,对数据的多层性已经进行了充分的考虑。例如:IBM台式机=>Sony打印机,是一个细节数据上的单层关联规则;台式机=>Sony打印机,是一个较高层次和细节层次之间的多层关联规则。
3.基于规则中涉及到的数据的维数,关联规则可以分为单维的和多维的。
在单维的关联规则中,我们只涉及到数据的一个维,处理单个属性中的一些关系,如用户购买的物品。多维的关联规则中要处理的数据将会涉及多个维,处理各个属性之间的某些关系。例如:啤酒=>尿布,这条规则只涉及到用户的购买的物品是单维的关联规则;性别=“女”=>职业=“秘书”,这条规则就涉及到两个字段的信息,是多维的一条关联规则。
关联规则挖掘的相关算法
·Apriori算法
Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。
其核心是基于两阶段频集思想的递推算法。
算法的基本思想:
首先找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样;
然后由频集产生强关联规则,这些规则必须满足最小支持度和最小可信度。
·AprioriTid算法
AprioriTid算法对Apriori算法做了调整,它的特点是在第一次遍历数据库D之后,就不再使用数据库来计算支持度,而是用集合Ck来完成。
基本思想:
跟Apriori算法的步骤基本相同,只是在第一次通过之后,数据库不用于计算候选项集;
生成另一个集合C',其中每个成员具有每个事务的TID以及该事务中存在的大项集,这个集用于计算每个候选项集。
·SETM算法
基本思想:
候选项目集在扫描数据库时即时生成,但在通过结束时计算,新的候选项集生成事务的TID与候选项集一起保存在顺序结构中;
在结束时,通过聚合该顺序结构来确定候选项集的支持计数。
·FP-tree算法
FP-tree算法又称FP-Growth算法,是在不使用候选代的情况下查找频繁项集的另一种方法,从而提高了性能。
其核心是使用名为频繁模式树(FP-tree)的特殊数据结构,保留了项集关联信息。
基本思想:
首先压缩输入数据库,创建一个FP树实例来表示频繁项;
然后将压缩数据库分成一组条件数据库,每个条件数据库与一个频繁模式相关联;
最后将每个数据库进行单独挖掘。
关联规则挖掘的主要应用
·市场篮子分析
这是关联挖掘最典型的例子,收集顾客在一次销售中所购买商品的数据,该数据库称为“市场购物篮”数据库,由过去交易的大量记录组成。由数据挖掘出商品购买之间的关联性,以让商店能够调整产品的布局或者形成捆绑销售,获取更多的利润。
·医疗诊断
医生诊断具有一定的主观性,有些错误范围可能会导致不可靠的诊断。使用关联挖掘,确定疾病与各种因素、症状的相关的概率,以帮助医生更好地治愈患者。
·人口普查数据
政府机构会收集大量的人口普查数据,通过数据挖掘民众需求,以帮助政府规划有效的公共服务和帮助公共企业,建立健全的公共政策。
·蛋白质序列
之前有人认为蛋白质的氨基酸序列是随机的,序列的轻微变化可导致结构改变,这可能改变蛋白质的功能,但现在人们认为它们不是。Nitin Gupta,Nitin Mangal,Kamal Tiwari和Pabitra Mitra已经破译了蛋白质中存在的不同氨基酸之间的关联性质。在人工蛋白质的合成过程中,对这些关联规则的了解和理解将非常有用。
更多数据科学知识,请关注公众号:DC学习助手