35
关 关 关 关 关 关 关 关 关 关 关 关 关关 2004-12-21

关 联 规 则 挖 掘

  • Upload
    onaona

  • View
    166

  • Download
    1

Embed Size (px)

DESCRIPTION

关 联 规 则 挖 掘. 黎都 2004-12-21. 基本概念(1). 数据,数据集 项目,项目集 事务 t 包含项目集 X 支持数,频繁项目集(频集) Support(X) = a(x) / |D| 置信度. 基本概念(2). 关联规则: 若项目集 X 与 Y 交集为空,则 X=>Y 为关联规则,其中: Support(X=>Y) = Support(X 并 Y) Confidence( X=>Y) = Suppose(X 并 Y)/ Suppose(X). 关联规则的目的. 对于指定的 minsupport 和 minconfidence - PowerPoint PPT Presentation

Citation preview

关 联 规 则 挖 掘关 联 规 则 挖 掘

黎都 2004-12-21

基本概念(基本概念( 11 ))数据,数据集项目,项目集事务 t 包含项目集 X支持数,频繁项目集(频集)Support ( X ) = a(x) / |D|置信度

基本概念(基本概念( 22 ))关联规则:若项目集 X 与 Y 交集为空,则 X=>Y 为关联规则,其中:Support(X=>Y) = Support(X 并 Y )Confidence ( X=>Y )= Suppose(X 并 Y ) / Suppose(X)

关联规则的目的关联规则的目的对于指定的 minsupport 和 minconfidence使得 support(X) >= minsupportConfidence(X ) >= minconfidence则称关联规则 X=>Y 为强规则关联规则挖掘的就是挖掘出事务集 D 中的强规则

关联规则挖掘关联规则挖掘关联规则挖掘分为两个子问题:1 ,根据最小支持度找出数据集 D 中的所有频集;2 ,根据频集和最小置信度产生关联规则;

关联规则的发现算法关联规则的发现算法发现算法解决的是关联规则挖掘的第一个问题关联规则分为布尔关联规则和多值规则多值关联规则都转化为布尔关联规则来解决,因此先介绍布尔关联规则算法Apriori , AprioriTid , AprioriHybrid

AprioriApriori 算法算法Agrawal 等人在 1993 年提出的 AIS 和

SETM 的基础上在 1994 年提出 Apriori和 AprioriTi

Apriori 和 AprioriTid 算法利用前次过程中的数据项目集来生成新的候选数据项目集,减少了中间不必要的数据项目集的生成,提高了效率

AprioriApriori 算法算法L1 = { 大项目集 1 项目集 }For(k=2; Lk-1 非空; k++) do begin Ck = apriori-gen(Lk-1 ); for 所有事务 t do begin Ct = subset(Ck , t) for 所有候选 c (属于 Ct ) do c.count++;

AprioriApriori 算法算法End Lk = { c 属于 Ck | c.count >= minsupp}End

Apriori 算法得到的频集为 Lk 的并集

AprioriApriori 算法分析算法分析分为第一次遍历和第 k 次遍历第一次遍历计算每个项目的具体值,确定大项目集 1 项目集 L1 第 k 次遍历利用前一次找到的大项集 Lk-1

和 Apriori-gen 函数产生候选集 Ck ,然后扫描数据库,得到 Ck 中候选的支持度,剔除了不合格的候选后 Ck 作为 Lk

AprioriApriori 算法分析算法分析 ::Apriori-genApriori-gen

本质是合并项目集成为候选项目集算法:Insert into Ck Select p[1], p[2],…… , p[k-1] , q[k-1]From Lk-1 p , Lk-1 qWhere p[1] = q[1] ……, , p[k-2] = q[k-2] p[k-1] < q[k-1]

AprioriApriori 算法分析算法分析 ::Apriori-genApriori-gen

然后,对于 Ck 中某集合 c 的任意子集,如果不存在于 Lk-1 ,则删除 c ;例子:L3 为 {1 2 3} {1 2 4} {1 3 5} {2 3 4} 在合并后为 C3 : { { 1 2 3 4} { 1 3 4 5}} ;因为 {1 3 4 5} 中的 {1 4 5} 不存在,所以

C3 中 {1 3 4 5} 应该删除,故 L4 : {1 2 3 4}

ApiroriApirori 算法分析:算法分析: SubsetSubset

候选项目集 Ck 是存储在一个 Hash 树中的,并且要求项目集中的项目有序Subset 函数寻找所有包含在某个事务中的候选,使用 Hash 查找实质:得到候选集 Ck 中候选项 c 的支持度

AprioriTidAprioriTid 算法算法AprioriTid 算法由 Apriori 算法改进优点:只和数据库做一次交互,无须频繁访问数据库将 Apirori 中的 Ck 扩展,内容由 {c} 变为 {TID , c} , TID 用于唯一标识事务引入 Bk ,使得 Bk 对于事务的项目组织集合,而不是被动的等待 Ck 来匹配

ApioriTidApioriTid 算法算法举例: minsupp = 2数据库: TID 项目

100 1 3 4200 2 3 5300 1 2 3 5400 2 5

ApioriTidApioriTid 算法示例算法示例TID 项目集100 {1} {3} {4}200 {2} {3} {5}300 {1} {2} {3} {5}400 {2} {5}

项集 支持度{1} 2{2} 3{3} 3{5} 3

ApioriTidApioriTid 算法示例算法示例TID 项目集100 {{1 3}}200 {{2 3} {2 5} {3 5}

}300 {{1 2} {1 3} {1 5}

{2 3} {2 5} {3 5}}400 {{2 5}}

项集 支持度{1 3} 2{2 3} 2{2 5} 3{3 5} 2

ApioriTidApioriTid 算法示例算法示例TID 项目集100 空200 {{2 3 5}}300 {{2 3 5 }}

400 空

ApioriTidApioriTid 算法算法上面图中分别为 Bk 和 Lk ,而 Ck 和

Apriori 算法产生的一样,因此没有写出来可以看到 Bk 由 Bk-1 得到,无须由数据库取数据缺点:内存要求很大,事务过多的时候资源难以满足

ApioriHybridApioriHybrid 算法算法这种算法将 Apriori 算法和 AprioriTid 算法混合,利用各自优点弥补不足;利用的原理:随着候选集的元素扩充,所能匹配的事务将可能减少算法:先使用 Apriori 算法,当能匹配的事务减少到内存可以容纳的程度,使用

ApiroriTid 算法

ApioriHybridApioriHybrid 算法性能算法性能AprioriHybrid 算法性能比 Apriori 和

AprioriTid 算法都要好经过算法统计平均, AprioriHybrid 比

Apriori 效率高 30% ,比 AprioriTid 高 60%

但是应用上比两者都复杂,相对而言用Apriori 可以得到更简单的应用

多值属性关联多值属性关联刚才介绍的都是布尔属性关联,实际中多值属性应用也很多解决多值关联的办法在于把 QARP 转为

BARP 来解决解决要点:划分值域区间太宽,置信度将降低太窄,支持度将降低

多值属性关联多值属性关联定义:挖掘多值关联规则问题就是在给定的交易集合 D 中产生所有满足最小支持度和最小置信度的多值关联规则的过程MAQA 算法

MAQAMAQA 算法算法MAQA 算法将 QARP 问题转为 BARP 问题。Step1 :对于多值属性 A ,若取值范围为

[L,R] ,划分为若干区间。若为数量属性,应用聚类算法确定值的划分,若为类别属性,采用归纳进行划分。

MAQAMAQA 算法算法Step 2 :将划分后的属性区间映射为序对

<A,k> , A 属于布尔集Step 3 :从项目集中找出有价值的项,构成频集Step 4 :在频集中迭代的找到支持度合格的两个项,并加入频集项目集中Step 5 :应用频集产生关联规则Step 6 :确定有价值的关联规则作为输出

MAQAMAQA 算法算法第一步划分为关键,支持度和置信度证明对立矛盾的关系,合适划分是个重要的步骤。第二步和第五步都很直接,第五步计算最小置信度如: ABCD 和 AB 都为频集,通过Conf = supp(ABCD)/ supp(AB)判断是否超过最小置信度

MAQAMAQA 算法算法第三步为 Apriori 算法或者其改进算法第六步采用 interest 度量方法下面重点介绍第一步和第四步多值划分的聚类算法 CP

聚类算法聚类算法 CPCP

For 每个属性值大于 N 的属性 do计算每个属性对应的事务数目寻找局部最大点和最小点确定区间计算 minL 和 maxL之间的事务数 sumi如果满足合并条件则合并相邻区间得到 k个区间S = sumi 的和 -max(sumi) – min(sumi)

聚类算法聚类算法 CPCP

S 平均 = S/ ( K-2 )寻找所有大于 c*S 平均 的 sumi ,并把结果存于 PFor P 中每个区间 j do If sumi /(min Ri – MinLi) > S/(minR-

minL) then 保存区间 j 作为输出

聚类算法聚类算法 CPCP这里将 minsupp设为 c*S 平均小于支持度的信息可能丢失,所以考虑和相邻区间合并。如果每个区间事务数都差不多,那么

sumi 和 S 平均都相似,很难判断哪个区间更有价值If语句解决了这个问题它综合了区间宽度的因素

聚类算法聚类算法 CPCP

我已经尝试以我的理解来解释 CP 算法,希望能对大家有所帮助后续:多层属性关联规则挖掘约束性关联规则发现方法