FP-growth详细资料大全

FP-Growth算法是韩嘉炜等人在2000年提出的关联分析算法,它采取如下分治策略:将提供频繁项集的资料库压缩到一棵频繁模式树(FP-tree),但仍保留项集关联信息。

在算法中使用了一种称为频繁模式树(Frequent Pattern Tree)的数据结构。FP-tree是一种特殊的前缀树,由频繁项头表和项前缀树构成。FP-Growth算法基于以上的结构加快整个挖掘过程。

基本介绍

算法背景,提出背景,预备知识,算法思想,算法描述,演示图,

算法背景

提出背景

众所周知,Apriori算法在产生频繁模式完全集前需要对资料库进行多次扫描,同时产生大量的候选频繁集,这就使Apriori算法时间和空间复杂度较大。但是Apriori算法中有一个很重要的性质:频繁项集的所有非空子集都必须也是频繁的。但是Apriori算法在挖掘额长频繁模式的时候性能往往低下,Jiawei Han提出了FP-Growth算法。

预备知识

FP-Tree :将事务数据表中的各个事务数据项按照支持度排序后,把每个事务中的数据项按降序依次插入到一棵以 NULL为根结点的树中,同时在每个结点处记录该结点出现的支持度。 FP-Tree结构图 条件模式基 :包含FP-Tree中与后缀模式一起出现的前缀路径的集合 条件树 :将条件模式基按照FP-Tree的构造原则形成的一个新的FP-Tree

算法思想

基本思路 :不断地叠代FP-tree的构造和投影过程 算法描述如下: 1、对于每个频繁项,构造它的条件投影资料库和投影FP-tree。 2、对每个新构建的FP-tree重复这个过程,直到构造的新FP-tree为空,或者只包含一条路径。 3、当构造的FP-tree为空时,其前缀即为频繁模式;当只包含一条路径时,通过枚举所有可能组合并与此树的前缀连线即可得到频繁模式。

算法描述

构造FP-Tree 挖掘频繁模式前首先要构造FP-Tree,算法伪码如下: 输入:一个交易资料库DB和一个最小支持度threshold. 输出:它的FP-tree. 步骤: 1.扫描资料库DB一遍.得到频繁项的集合F和每个频繁项的支持度.把F按支持度递降排序,结果记为L. 2.创建FP-tree的根节点,记为T,并且标记为’null’.然后对DB中的每个事务Trans做如下的步骤. 根据L中的顺序,选出并排序Trans中的事务项.把Trans中排好序的事务项列表记为[p|P],其中p是第一个元素,P是列表的剩余部分.调用insert_tree([p|P],T). 函式insert_tree([p|P],T)的运行如下. 如果T有一个子结点N,其中N.item-name=p.item-name,则将N的count域值增加1;否则,创建一个新节点N,使它的count为1,使它的父节点为T,并且使它的node_link和那些具有相同item_name域串起来.如果P非空,则递归调用insert_tree(P,N). FP-Tree创建的算法流程图 注:构造FP-Tree的算法理解上相对简单,所以不过多描述 挖掘频繁模式 对FP-Tree进行挖掘,算法如下: 输入:一棵用算法一建立的树Tree 输出:所有的频繁集 步骤: 调用FP-growth(Tree,null). procedure FP-Growth ( Tree, x) { (1) if (Tree只包含单路径P) then (2) 对路径P中节点的每个组合(记为B) (3) 生成模式B并x,支持数=B中所有节点的最小支持度 (4) else 对Tree头上的每个ai, do { (5) 生成模式B= ai 并 x,支持度=ai.support; (6) 构造B的条件模式库和B的条件FP树TreeB; (7) if TreeB != 空集 (8) then call FP-Growth ( TreeB , B ) } }

演示图

下图给出了整个算法的演示过程:



  • FP-growth鐨勭畻娉曟濇兂
    绛旓細鍩烘湰鎬濊矾锛氫笉鏂湴杩唬FP-tree 鐨勬瀯閫犲拰鎶曞奖杩囩▼绠楁硶鎻忚堪濡備笅锛1銆佸浜庢瘡涓绻侀」锛屾瀯閫犲畠鐨勬潯浠舵姇褰辨暟鎹簱鍜屾姇褰盕P-tree銆2銆佸姣忎釜鏂版瀯寤虹殑FP-tree閲嶅杩欎釜杩囩▼锛岀洿鍒版瀯閫犵殑鏂癋P-tree涓虹┖锛屾垨鑰呭彧鍖呭惈涓鏉¤矾寰勩3銆佸綋鏋勯犵殑FP-tree涓虹┖鏃讹紝鍏跺墠缂鍗充负棰戠箒妯″紡锛涘綋鍙寘鍚竴鏉¤矾寰勬椂锛岄氳繃鏋氫妇鎵鏈夊彲鑳...
  • 棰戠箒椤归泦鍜屽叧鑱旇鍒
    绛旓細鍏宠仈瑙勫垯鐨勫彂鐜扮殑鍓嶆彁鏄厛鏋勫缓濂藉叧鑱旇鍒欍侫priori鍘熺悊锛屽鏋滄煇鍏冪礌鏄笉棰戠箒鐨勶紝閭d箞鍖呭惈璇ュ厓绱犵殑瓒呴泦涔熸槸涓嶉绻佺殑锛屾墍浠ュ氨涓嶉渶瑕佽冭檻杩欎簺瓒呴泦銆FP-growth鐨勬潵婧愩奙ining Frequent Patterns without Candidate Generation: A Frequent-Pattern Tree Approach, 2004銆嬨侳P-growth鏄熀浜嶢prioir鏋勫缓锛屽彧鏄湪瀹屾垚...
  • FP-growth鐨勬紨绀哄浘
    绛旓細涓嬪浘缁欏嚭浜嗘暣涓畻娉曠殑婕旂ず杩囩▼锛
  • apriori绠楁硶鏄粈涔?
    绛旓細缁忓吀鐨勫叧鑱旇鍒欐寲鎺樼畻娉曞寘鎷珹priori绠楁硶鍜FP-growth绠楁硶銆俛priori绠楁硶澶氭鎵弿浜ゆ槗鏁版嵁搴擄紝姣忔鍒╃敤鍊欓夐绻侀泦浜х敓棰戠箒闆嗭紱鑰孎P-growth鍒欏埄鐢ㄦ爲褰㈢粨鏋勶紝鏃犻渶浜х敓鍊欓夐绻侀泦鑰屾槸鐩存帴寰楀埌棰戠箒闆嗭紝澶уぇ鍑忓皯鎵弿浜ゆ槗鏁版嵁搴撶殑娆℃暟锛屼粠鑰屾彁楂樹簡绠楁硶鐨勬晥鐜囷紝浣嗘槸apriori鐨勭畻娉曟墿灞曟ц緝濂斤紝鍙互鐢ㄤ簬骞惰璁$畻绛夐鍩熴
  • fptree绠楁硶濡備綍鏇村姞绮惧噯
    绛旓細鏁版嵁娓呮礂鍜屽弬鏁拌皟鏁淬1銆佹暟鎹竻娲楋細鍦ㄤ娇鐢FP-Growth绠楁硶鏃讹紝棣栧厛闇瑕佸鍘熷鏁版嵁杩涜娓呮礂鍜岄澶勭悊锛屽幓闄ゆ棤鐢ㄤ俊鎭拰閿欒鏁版嵁绛夈傝繖鏍峰彲浠ュ皢鏁版嵁闆嗙函鍑鍖栵紝鎻愰珮绠楁硶鐨勫噯纭с2銆佸弬鏁拌皟鏁达細FP-Growth绠楁硶鏈夎澶氬弬鏁板拰璁剧疆鍙互璋冩暣锛屽鏈灏忔敮鎸佸害銆佹渶灏忕疆淇″害銆佸缓绔嬫爲鐨勬柟娉曠瓑銆傞氳繃璋冩暣杩欎簺鍙傛暟锛屽彲浠ユ彁楂樼畻娉...
  • 闂闊:null,Apriori,FP-Growth鐨勮娉
    绛旓細姹夎鏍囧嚭鍙湡涓嶅噯纭紝涓嶆柟渚垮晩 servlet /sə:vlit/--/se wu li te/ HTML 灏辨槸涓涓竴涓瓧姣嶇殑璇伙紝瀹冩槸hyper text markup language绠鍐 null /nʌl/--/na ou/ apriori 鑻辨枃鍙戦煶涓:/əpriɔri/--/e pe rui ao rui/ FP-Growth 鑻辨枃鍙戦煶涓猴細/aif pi: grə...
  • 甯歌鐨勫叧鑱旇鍒欐寲鎺樼畻娉曞寘鎷
    绛旓細鍏哥殑鍏宠仈瑙勫垯鎸栨帢绠楁硶鍖呮嫭Apriori绠楁硶鍜FP-growth绠楁硶銆俛priori绠楁硶澶氭鎵弿浜ゆ槗鏁版嵁搴擄紝姣忔鍒╃敤鍊欓夐绻侀泦浜х敓棰戠箒闆嗭紱鑰孎P-growth鍒欏埄鐢ㄦ爲褰㈢粨鏋勶紝鏃犻渶浜х敓鍊欓夐绻侀泦鑰屾槸鐩存帴寰楀埌棰戠箒闆嗭紝澶уぇ鍑忓皯鎵弿浜ゆ槗鏁版嵁搴撶殑娆℃暟锛屼粠鑰屾彁楂樹簡绠楁硶鐨勬晥鐜囥備絾鏄痑priori鐨勭畻娉曟墿灞曟ц緝濂斤紝鍙互鐢ㄤ簬骞惰璁$畻绛夐鍩熴侫priori...
  • fp-growth鐨刾ython搴撴庝箞璋冪敤
    绛旓細FP-Growth 鐨 API Python寮婧愬伐鍏峰寘锛歴cikit-learn 鏄叧浜庢満鍣ㄥ涔犵殑寮鍙戝寘锛
  • FP-growth绠楁硶鐨 java 瀹炵幇婧愮爜
    绛旓細http://portal.acm.org/citation.cfm?id=1133907 杩欓噷鏈塒DF涓嬭浇 婧愪唬鐮侊細 http://www.programsalon.com/view/downloads36/sourcecode/math/112919/fpgrowth/fptree.cpp__.htm 鎴 http://www.programsalon.com/downloads67/sourcecode/math/detail243513.html ...
  • apriori绠楁硶鍜fp-growth绠楁硶鎻愬彇棰戠箒椤归泦鐨勭粨鏋滀竴鏍峰悧
    绛旓細搴旇鏄竴鏍风殑缁撴灉锛屽鏋滅粨鏋滀笉涓鏍凤紝鑲畾鏄偅涓畻娉曟彁鍙栫殑鏈夐棶棰樹簡
  • 扩展阅读:paperpass免费入口 ... fp树算法步骤 ... apriori和fp-growth优缺点 ... pph管材规格一览表 ... fp-growth关联规则 ... pp风管参数表 ... 一进游戏cpu就100% ... 水冷插cpu fan还是opt ... fp-growth算法优缺点 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网