数据挖掘-------Close算法(详细过程)

随着数据库容量的增大,重复访问数据库导致性能低下,为减少数据库的扫描次数以及候选集空间占用引入两个算法:

Close算法:

一、Close算法

Close算法的思想:
一个频繁闭合项目集的所有闭合子集一定是频繁的,一个非频繁项目集的所有闭合超集一定是非频繁的。
我的想法是这样的,给出例子的同时引出定理定义。
例:给出样本数据库。最小支持数为3.
TIDItemset
1A,B,C,D
2B,C,E
3A,B,C,E
4B,D,E
5A,B,C,D
下面对该表进行Close算法,如下
(1)计算候选1-项目集产生式的闭合以及支持数。
FCC1的产生式闭合支持数
{A}{A,B,C}3
{B}{B}5
{C}{B,C}4
{D}{B,D}3
{E}{B,E}3
闭合:我的理解是每一项包含产生式的最大超集的交集。
{A}的第一项的最大超集:{A,B,C,D};
{A}的第二项的最大超集:{A,B,C,E};
{A}的第三项的最大超集:{A,B,C,D};
三项的交集为:{A,B,C}即{A}的闭合为{A,B,C}
A的支持数为3.
支持数的概念在我的另一篇文章有提到下面给出链接

支持数

后面的几个与前面的一样,结果见上表。
(2)修剪,去除小于最小支持数的每一项
{A}及{A}的闭合为3>=3,保留。
{B}及{B}的闭合为5>=3,保留。
{C}及{C}的闭合为4>=3,保留。
{D}及{D}的闭合为3>=3,保留。
{E}及{E}的闭合为3>=3,保留。
得到频繁闭合项目集FC1(与候选1-项目集FCC1相同)。
FC1的产生式闭合支持数
{A}{A,B,C}3
{B}{B}5
{C}{B,C}4
{D}{B,D}3
{E}{B,E}3
(3)利用FC1的产生式生成FCC2的产生式
与Apriori算法相同,连接生成:
1、 FCC2的产生式={AB,AC,AD,AE,BC,BD,BE,CD,CE,DE}
2、 对于FCC2的产生式,若为FC1的产生式的闭合的子集,删去。

{A,B}是{A}的产生式的闭合{A,B,C}的子集。删去
{A,C}是{A}的产生式的闭合{A,B,C}的子集。删去
{B,C}是{A}的产生式的闭合{A,B,C}的子集。删去
{B,D}是{D}的产生式的闭合{B,D}的子集。删去
{B,E}是{E}的产生式的闭合{B,E}的子集。删去

得到:FCC2的产生式={AD,AE,CD,CE,DE}
(为方便将上面的表复制下来)
例:给出样本数据库。最小支持数为3.
TIDItemset
1A,B,C,D
2B,C,E
3A,B,C,E
4B,D,E
5A,B,C,D
(4)计算FCC2各产生式的闭合及支持数
FCC2的产生式闭合支持数
{A,D}{A,B,C,D}2
{A,E}{ A,B,C,E}1
{C,D}{A,B,C,D}2
{C,E}{B,C,E}2
{D,E}{B,D,E}1
(5)将支持度小于最小支持度的候选闭合项删除。

频繁闭合2-项目集FC2为空,算法到此结束。

将所有不重复的闭合加入到FC中,
FC={{A,B,C},{B},{B,C},{B,D},{B,E}}

最大频繁项目集:

最大频繁项目集为:{A,B,C}、{B,D}、{B,E}

频繁项目集:

1.统计项目集元素数:
L1={B},L2={BC,BD,BE},L3={ABC}
2.将L3的频繁项分解:
{AB}、{AC}、{BC},将L2中没有的加入到L2中,L2={AB,AC,BC,BD,BE}
3.将L2频繁项分解:
L1={A,B,C,D,E}
频繁项目集为L1+L2+L3所组成的集合。
  • 26
    点赞
  • 119
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值