分享
 
 
 

FP-tree

王朝百科·作者佚名  2010-09-28
窄屏简体版  字體: |||超大  

FP-growth算法(Frequent Pattern-growth)使用了一种紧缩的数据结构来存储查找频繁项集所需要的全部信息。采用算法:将提供频繁项集的数据库压缩到一棵FP-tree来保留项集关联信息,然后将压缩后的数据库分成一组条件数据库(一种特殊类型的投影数据库),每个条件数据库关联一个频繁项集。

FP-tree定义(1)频繁模式树(Frequent Pattern tree)简称为FP-tree,是满足下列条件的一个树结构:它由一个根节点(值为null)、项前缀子树(作为子女)和一个频繁项头表组成。

(2)项前缀子树中的每个结点包括三个域:item_name、count和node_link,其中:

item_name记录结点表示的项的标识;count记录到达该结点的子路径的事务数;

node_link用于连接树中相同标识的下一个结点,如果不存在相同标识下一个结点,则值为“null”。

(3)频繁项头表的表项包括一个频繁项标识域:item_name和一个指向树中具有该项标识的第一个频繁项结点的头指针:head of node_link。

对于包含在FP-tree中某个结点上的项α,将会有一个从根结点到达α的路径,该路径中不包含α所在结点的部分路径称为α的前缀子路径(prefix subpath),α称为该路径的后缀。在一个FP-tree中,有可能有多个包含α的结点存在,它们从频繁项头表中的α项出发,通过项头表中的head of node_link和项前缀子树中的node_link连接在一起。FP-tree中每个包含α的结点可以形成α的一个不同的前缀子路径,所有的这些路径组成α的条件模式基(conditional pattern base)。用α的条件模式基所构建的FP-tree称为α的条件模式树(conditional FP-tree)。

FP-tree构造算法输入:事务数据库D和最小支持度阈值minσ。

输出:D所对应的FP-tree。

方法:FP-tree是按以下步骤构造的:

(1)扫描事务库D,获得D中所包含的全部频繁项集1F,及它们各自的支持度。对1F中的频繁项按其支持度降序排序得到L。

(2)创建FP-tree的根结点T,以“null”标记。再次扫描事务库。对于D中每个事务,将其中的频繁项选出并按L中的次序排序。设排序后的频繁项表为[p|P],其中p是第一个频繁项,而P是剩余的频繁项。调用insert_tree([p|P],T)。insert_tree([p|P],T)过程执行情况如下:如果T有子女N使N .item_name=p.item_name,则N的计数增加1;否则创建一个新结点N,将其计数设置为1,链接到它的父结点T,并且通过node_link将其链接到具有相同item_name的结点。如果P非空,递归地调用insert_tree(P,N)。FP-tree是一个高度压缩的结构,它存储了用于挖掘频繁项集的全部信息。FP-tree所占用的内存空间与树的深度和宽度成比例,树的深度一般是单个事务中所含项目数量的最大值;树的宽度是平均每层所含项目的数量。由于在事务处理中通常会存在着大量的共享频繁项,所以树的大小通常比原数据库小很多。频繁项集中的项以支持度降序排列,支持度越高的项与FP-tree的根距离越近,因此有更多的机会共享结点,这进一步保证了FP-tree的高度压缩。

FP-tree的相关的性质定理基于FP-tree挖掘频繁闭项集,需要了解FP-tree如下性质和定理:

性质2.1(结点链性质)对于任何频繁项ia,从FP-tree的头表对应ia项的头指针(headof node_link)开始,通过遍历ia的结点链(node_link)可以挖掘出所有包含ia的频繁模式。

性质2.2(前缀路径性质)为了计算以ia为后缀的频繁模式,仅仅需要在FP-tree中计算ia结点的前缀路径,并且前缀路径中每个结点的频繁计数等于ia结点的频繁计数。

定理2.3(分段增长)设α为事务数据库D中的一个项集,B是α的条件模式基,而β是B中的一个项集,那么在D中α∪β的支持度等于B中β的支持度。

推论2.1(模式增长)设项α为事务数据D中的一个项集,B是α的条件模式基,13而β是B中的一个项集,那么α∪β为频繁项集的充分必要条件是β也为频繁项集。

定理2.4(单路径频繁项集产生)如果FP-treeT包含一条单路径P,那么T包含的所有频繁项集的集合可以通过枚举路径P中结点的所有可能组合得到,其支持度计数为组合中结点的支持度计数的最小值。

定理2.5给定一个事务数据库D,最小支持度阈值minσ和频繁项头表=<……>nLi,i,,i12。挖掘频繁闭项集的问题可以分解为n个子问题:第j(1≤j≤n)个子问题是找到所有包含ijn+1?但不包含i(n1jkn)k+?<≤的频繁闭项集。

可以看出,后挖掘到的频繁闭项集不可能包含先前找到的频繁闭项集,但是它可能被已有的一个频繁闭项集所包含,因此在挖掘过程中要对新挖掘的候选频繁闭项集进行检验。如果刚得到的候选频繁闭项集X不是已有的一个频繁闭项集的子集或者两者的支持度不同,那么就说X通过了FCI超集检测,是一个频繁闭项集。

定理2.6如果X是一个频繁闭项集,那么在X的条件模式基中不存在任何一个项i出现在每一个事务中。

定理2.7如果Y是一个最大项集合(Y满足:出现在X的条件模式基的每一个事务中,但Y的直接超集不满足这一性质),并且X∪Y通过了FCI超集检测,那么X∪Y是一个频繁闭项集。

定义2.5单路径候选频繁闭项集:设i是X的条件模式基中的一个频繁项目,如果X的条件模式树中只有一个结点N标记为i,并且N的所有祖先结点只有一个子女,N若满足下列三个条件之一:

(1)N没有子女。

(2)N有两个以上的子女。

(3)N有一个子女,它的支持度计数小于N的。

那么单路径候选频繁闭项集就是X∪Z,Z包含N和N的祖先(除根结点)。如果条件模式X的条件FP-tree存在单路径,在单路径中提取候选频繁闭项集的个数为单路径中具有不等的频度个数。

定理2.8对单路径候选频繁闭项集Y,如果Y通过了FCI超集检测,则Y是一个频繁闭项集。

定理2.9 X和Y是两个频繁项集且具有相同的支持度。如果X?Y且Y是闭项集,那么不存在只包含X不包含Y?X的频繁闭项集。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有