关联规则挖掘
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MAQA算法 MAQA算法
MAQA算法将QARP问题转为BARP问题。 Step1:对于多值属性A,若取值范围为 [L,R],划分为若干区间。 若为数量属性,应用聚类算法确定值的 划分,若为类别属性,采用归纳进行划 分。
MAQA算法 MAQA算法
Step 2:将划分后的属性区间映射为序对 <A,k>,A属于布尔集 Step 3:从项目集中找出有价值的项,构 3 成频集 Step 4:在频集中迭代的找到支持度合格 的两个项,并加入频集项目集中 Step 5:应用频集产生关联规则 Step 6:确定有价值的关联规则作为输出
关联规则挖掘
黎都 2004-12-21
基本概念(1 基本概念(1)
数据,数据集 项目,项目集 事务 t 包含项目集 X 支持数,频繁项目集(频集) Support(X) = a(x) / |D| 置信度
基本概念(2 基本概念(2)
关联规则: 若项目集 X与Y交集为空,则X=>Y为关 联规则,其中: Support(X=>Y) = Support(X并Y) Confidence( X=>Y) = Suppose(X并Y)/ Suppose(X)
聚类算法CP 聚类算法CP
我已经尝试以我的理解来解释CP算法, 希望能对大家有所帮助 后续: 多层属性关联规则挖掘 约束性关联规则发现方法
Apirori算法分析:Subset Apirori算法分析:Subset
候选项目集Ck 是存储在一个Hash树中的, 并且要求项目集中的项目有序 Subset函数寻找所有包含在某个事务中的 候选,使用Hash查找 实质:得到候选集Ck 中候选项c的支持度
AprioriTid算法 AprioriTid算法
Apriori算法分析:AprioriApriori算法分析: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]
Apriori算法 Apriori算法
End Lk = { c属于Ck | c.count >= minsupp} End Apriori算法得到的频集为Lk 的并集
Apriori算法分析 Apriori算法分析
分为第一次遍历和第k次遍历 第一次遍历计算每个项目的具体值,确 定大项目集1项目集L1 第k次遍历利用前一次找到的大项集Lk-1 和Apriori-gen函数产生候选集Ck ,然后 扫描数据库,得到Ck 中候选的支持度, 剔除了不合格的候选后Ck作为Lk
举例:minsupp = 2 数据库: TID 项目
100 200 300 400 134 235 1235 25
ApioriTid算法示例 ApioriTid算法示例
TID 项目集 100 200 300 400 {1} {3} {4} {2} {3} {5} {1} {2} {3} {5} {2} {5} 项集 {1} {2} {3} {5} 支持度 2 3 3 3
MAQA算法 MAQA算法
第一步划分为关键,支持度和置信度证 明对立矛盾的关系,合适划分是个重要 的步骤。 第二步和第五步都很直接,第五步计算 最小置信度 如:ABCD和AB都为频集,通过 Conf = supp(ABCD)/ supp(AB)判断是否 超过最小置信度
MAQA算法 MAQA算法
第三步为Apriori算法或者其改进算法 第六步采用interest度量方法 下面重点介绍第一步和第四步 多值划分的聚类算法CP
关联规则的发现算法
发现算法解决的是关联规则挖掘的第一 个问题 关联规则分为布尔关联规则和多值规则 多值关联规则都转化为布尔关联规则来 解决,因此先介绍布尔关联规则算法 Apriori,AprioriTid,AprioriHybrid
Apriori算法 Apriori算法
Agrawal等人在1993年提出的AIS和SETM 的基础上在1994年提出Apriori和AprioriTi Apriori和AprioriTid算法利用前次过程中 的数据项目集来生成新的候选数据项目 集,减少了中间不必要的数据项目集的 生成,提高了效率
聚类算法CP 聚类算法CP
For 每个属性值大于N的属性 do 计算每个属性对应的事务数目 寻找局部最大点和最小点确定区间 计算minL和maxL之间的事务数sumi 如果满足合并条件则合并相邻区间得到k 个区间 S = sumi的和-max(sumi) – min(sumi)
聚类算法CP 聚类算法CP
AprioriTid算法由Apriori算法改进 优点:只和数据库做一次交互,无须频 繁访问数据库 将Apirori中的Ck 扩展,内容由{c}变为 {TID,c},TID用于唯一标识事务 引入Bk ,使得Bk 对于事务的项目组织集 合,而不是被动的等待Ck 来匹配
ApioriTid算法 ApioriTid算法
S平均 = S/(K-2) 寻找所有大于c*S平均 的sumi,并把结果 存于P For P中每个区间j do If sumi /(min Ri – MinLi) > S/(minR-minL) then 保存区间 j作为输出
聚类算法CP 聚类算法CP
这里将minsupp设为c*S平均 小于支持度的信息可能丢失,所以考虑 和相邻区间合并。 如果每个区间事务数都差不多,那么 sumi和S平均都相似,很难判断哪个区间 更有价值 If语句解决了这个问题 它综合了区间宽度的因素
多值属性关联
刚才介绍的都是布尔属性关联,实际中 多值属性应用也很多 解决多值关联的办法在于把QARP转为 BARP来解决 解决要点:划分值域区间 太宽,置信度将降低 太窄,支持度将降低
多值属性关联
定义:挖掘多值关联规则问题就是在给 定的交易集合D中产生所有满足最小支持 度和最小置信度的多值Βιβλιοθήκη Baidu联规则的过程 MAQA算法
ApioriHybrid算法性能 ApioriHybrid算法性能
AprioriHybrid算法性能比Apriori和 AprioriTid算法都要好 经过算法统计平均,AprioriHybrid比 Apriori效率高30%,比AprioriTid高60% 但是应用上比两者都复杂,相对而言用 Apriori可以得到更简单的应用
关联规则的目的
对于指定的minsupport和minconfidence 使得support(X) >= minsupport Confidence(X)>= minconfidence 则称关联规则X=>Y为强规则 关联规则挖掘的就是挖掘出事务集D中的 强规则
关联规则挖掘
关联规则挖掘分为两个子问题: 1,根据最小支持度找出数据集D中的所 有频集; 2,根据频集和最小置信度产生关联规则;
ApioriTid算法示例 ApioriTid算法示例
TID 100 200 300 400 项目集 {{1 3}} {{2 3} {2 5} {3 5} } {{1 2} {1 3} {1 5} {2 3} {2 5} {3 5}} {{2 5}} 项集 {1 3} {2 3} {2 5} {3 5} 支持度 2 2 3 2
ApioriHybrid算法 ApioriHybrid算法
这种算法将Apriori算法和AprioriTid算法 混合,利用各自优点弥补不足; 利用的原理:随着候选集的元素扩充, 所能匹配的事务将可能减少 算法:先使用Apriori算法,当能匹配的 事务减少到内存可以容纳的程度,使用 ApiroriTid算法
Apriori算法 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++;
ApioriTid算法示例 ApioriTid算法示例
TID 项目集 100 空 200 {{2 3 5}} 300 {{2 3 5 }} 400 空
ApioriTid算法 ApioriTid算法
上面图中分别为Bk 和Lk ,而Ck 和Apriori 算法产生的一样,因此没有写出来 可以看到Bk 由Bk-1 得到,无须由数据库 取数据 缺点:内存要求很大,事务过多的时候 资源难以满足
Apriori算法分析:AprioriApriori算法分析: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}