数据挖掘算法——Close算法

说明奥:菜鸟的自我学习,可能有错。

Close算法原理:

  一个频繁闭合项目集的所有闭合子集一定是频繁的,一个非频繁闭合项目集的所有闭合超集一定是非频繁的。

close算法是对Apriori算法的改进

具体步骤为:

1.先找到候选1项目集FCC1   并得到其支持度和闭合

2.之后对每个候选闭合进行修剪 如果其支持度不小于最小支持度则加入到FC1

3.自身不断循环下去  直到某个r-项目集FCCi为空 则算法结束。

栗子:

 

(1)计算FCC各个产生式的闭合和支持度
首先得到FCG的产生式: FCC的产生式为(A)、(B)、(C)、(D).(E)

然后计算闭合集。\例如,计算{A}的闭合。数据库中第项(ABE)包含{A},这时(A)的闭合首先得到{ABE};

第四项(ABD}包含{A},所以取{ABD)和{ABE)的交集{AB)作为(A)的闭合:

第五项{AC}包含{A},则取{AB}和{AC)的交集得到{A},作为{A)的团合;

第七项是{AC},交集为{A};第八项{ABCE)与{A}的交集是{A};

第九项{ABC}与{A)的交集是{A)。这时到了最后一项,计算完成, 得到{A}的闭合是(A)。并同时计算出{A)的支持度为6(可通过对出现的A的超集进行计数得到)。同样可以得到FCO所有的闭合与支持度

 

 (2)进行修剪
将支持度小于最小支持度的候选闭合项删除,得到FC1  这个例子FC1和FCC1是相同的为(A)(B)(C)(D)(E)
 
(3)利用FC1的generator生成FCC2
就是FC1的自连接。。。得到FCC2一AB,AC,AD,AE,BC.BD.BE,CD.CE.DE
修剪(AE)是(E)的闭合(ABE)的子集,(BE)是子集(E)的闭合(ABE)的子集,所以将这网在FCC的元素中我们简单地用AB来代替上面的(AB),这边AE BE,ABE就是!!频繁项目集合 修剪过去了 我是这么理解的
闭合的闭合是本身的话而且支持度不小于最小支持度也就是?表示是频繁项目集了得此刻FCC2为AB,AC,AD,BC.BD.CD.CE.DE  这边为何AB不  我的看法是AB的闭合不是他自己。。。不一定对自己理解的
(4)计算各产生式的闭合和支持度

没表现出来的为空集

 (5)进行修剪
将支持度小于最小支持度的候选闭合项删除.得到FC2,这时(AD)和(CE)的支持度为1,被删除。FC2 = (AB,AC. BC, BD)。
(6)利用FC2的generator生成FCC3并进行裁剪
FC2连接后得到: {ABC,BCD).其中的(BCD)有非频繁子集CD).所以将这项删除。剩下为{ABC),得到的候选项FCC3 ={ABC)。嗯???这边有问题  这边没有ABD   据涛哥说。。。要第一个相同才能连接。。。。所以ABAC相同连接成ABC       BC和BD相连接成BCD
(7) FCC3;不为空,计算各产生式的闭合和支持度ABC的闭合为{ABC),支持度为2。
(8)进行修剪
将支持度小于最小支持度的候选闭合项删除,得到FC3.对于本例.FCC3 只有一项支持度为2,保留。
(9)利用FC3生成FCC4为空,算法结束。 将所有不重复的闭合加入到FC中得到FC={A,B,ABE,BD,C,AB,AC,BC,ABC} 
(10)统计项目集元素数
L3= {ABE,ABC} L2={AB,AC,BC,BD} L1={A,B,C}最大个数为3    

(11)将L3的频繁项分解

先分解(ABE)的所产集为AB,AE和BE后两项不存在,将它们加人到L中,ABC有2-项于集为(AB)、(AC)和(BC),这三项均在L中  得到L2 = {AB AC BC AE BE BD}

(12)将L2的频繁项分解

方法同上,得L1为(A.B.C,D.E)

使用频繁闭团合项目集,发现可以提高关联规则的效率。

不理解的地方有3   待更新 等上课问老师

相连的规则必须要头相同才可以也就是说 两个相连成3个 必须要AB  AC   A是相同的    ABC ABD相连成四个 必须要AB是相同的才可以~~~~~ 涛哥如是说


posted @ 2019-03-19 17:15  冰糖葫芦很乖  阅读(3071)  评论(0编辑  收藏  举报