1 / 35

关 联 规 则 挖 掘

关 联 规 则 挖 掘. 黎都 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

onaona
Télécharger la présentation

关 联 规 则 挖 掘

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 关 联 规 则 挖 掘 黎都 2004-12-21

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

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

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

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

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

  7. Apriori算法 • Agrawal等人在1993年提出的AIS和SETM的基础上在1994年提出Apriori和AprioriTi • Apriori和AprioriTid算法利用前次过程中的数据项目集来生成新的候选数据项目集,减少了中间不必要的数据项目集的生成,提高了效率

  8. Apriori算法 • 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++;

  9. Apriori算法 • End • Lk = { c属于Ck | c.count >= minsupp} • End • Apriori算法得到的频集为Lk的并集

  10. Apriori算法分析 • 分为第一次遍历和第k次遍历 • 第一次遍历计算每个项目的具体值,确定大项目集1项目集L1 • 第k次遍历利用前一次找到的大项集Lk-1和Apriori-gen函数产生候选集Ck ,然后扫描数据库,得到Ck中候选的支持度,剔除了不合格的候选后Ck作为Lk

  11. Apriori算法分析:Apriori-gen • 本质是合并项目集成为候选项目集 • 算法: • Insert into Ck • Select p[1], p[2],……,p[k-1],q[k-1] • From Lk-1 p, Lk-1 q • Where p[1] = q[1],……,p[k-2] = q[k-2] • p[k-1] < q[k-1]

  12. Apriori算法分析:Apriori-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}

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

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

  15. ApioriTid算法 • 举例:minsupp = 2 • 数据库:

  16. ApioriTid算法示例

  17. ApioriTid算法示例

  18. ApioriTid算法示例

  19. ApioriTid算法 • 上面图中分别为Bk和Lk ,而Ck和Apriori算法产生的一样,因此没有写出来 • 可以看到Bk由Bk-1得到,无须由数据库取数据 • 缺点:内存要求很大,事务过多的时候资源难以满足

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

  21. ApioriHybrid算法性能 • AprioriHybrid算法性能比Apriori和AprioriTid算法都要好 • 经过算法统计平均,AprioriHybrid比Apriori效率高30%,比AprioriTid高60% • 但是应用上比两者都复杂,相对而言用Apriori可以得到更简单的应用

  22. 多值属性关联 • 刚才介绍的都是布尔属性关联,实际中多值属性应用也很多 • 解决多值关联的办法在于把QARP转为BARP来解决 • 解决要点:划分值域区间 • 太宽,置信度将降低 • 太窄,支持度将降低

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

  24. MAQA算法 • MAQA算法将QARP问题转为BARP问题。 • Step1:对于多值属性A,若取值范围为[L,R],划分为若干区间。 • 若为数量属性,应用聚类算法确定值的划分,若为类别属性,采用归纳进行划分。

  25. MAQA算法 • Step 2:将划分后的属性区间映射为序对<A,k>,A属于布尔集 • Step 3:从项目集中找出有价值的项,构成频集 • Step 4:在频集中迭代的找到支持度合格的两个项,并加入频集项目集中 • Step 5:应用频集产生关联规则 • Step 6:确定有价值的关联规则作为输出

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

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

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

  29. 聚类算法CP • S平均 = S/(K-2) • 寻找所有大于c*S平均 的sumi,并把结果存于P • For P中每个区间j do • If sumi /(min Ri – MinLi) > S/(minR-minL) • then 保存区间 j作为输出

  30. 聚类算法CP • 这里将minsupp设为c*S平均 • 小于支持度的信息可能丢失,所以考虑和相邻区间合并。 • 如果每个区间事务数都差不多,那么sumi和S平均都相似,很难判断哪个区间更有价值 • If语句解决了这个问题 • 它综合了区间宽度的因素

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

More Related