说明奥:菜鸟的自我学习,可能有错。
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是相同的才可以~~~~~ 涛哥如是说
原文出处:https://www.cnblogs.com/Galesaur-wcy/p/10559932.html