FP_Growth演算法python實現

來源:互聯網
上載者:User

標籤:fp-tree   fp-growth   python   

FP_Growth演算法是關聯分析中比較優秀的一種方法,它通過構造FP_Tree,將整個交易資料庫映射到樹結構上,從而大大減少了頻繁掃描資料庫的時間。
FP_Growth演算法主要分成兩個步驟,第一步是構造FP-Tree,第二步是從FP-Tree中提取頻繁項集。
更多關聯分析和FP_Growth的介紹以及虛擬碼請見:什麼是關聯分析、FP-Growth演算法的介紹。

本文主要目的是介紹python實現FP_Growth演算法的代碼。

FP_Growth項目目錄有四個檔案:

>FP_Growth
 ? __init__.py
 ? tree_builder.py
 ? tree_building.py
 ? tree_miner.py

其中,tree_builder.py和tree_building.py檔案主要負責FP-tree的構造,而tree_miner.py則是用來從構造好的FP-tree上提取頻繁項集。

主程式所在的檔案“\__init__.py”代碼如下:

#coding=utf-8import tree_builderimport tree_minerroutines = [               [‘Cola‘,‘Egg‘,‘Ham‘],           [‘Cola‘,‘Diaper‘,‘Beer‘],           [‘Cola‘,‘Beer‘,‘Diaper‘,‘Ham‘],           [‘Diaper‘,‘Beer‘]        ]                                  #交易資料集min_sup = 2                             #最小支援度計數headerTable = {}        #頭結點表,用來存放各個項的索引treeBuilder = tree_builder.Tree_builder(routines=routines, min_sup=min_sup, headerTable=headerTable)    #建造FP_Treetree_miner.Tree_miner(Tree=treeBuilder.tree, min_sup=min_sup, headerTable=headerTable)         #對FP_Tree進行頻繁項集的挖掘

它主要實現三個動作:

  1. 輸入交易資料集routines;
  2. 調用tree_builder,構造FP-tree;
  3. 調用tree_miner,從FP-tree提取頻繁項集;


FP-tree的構造請見:FP-Growth演算法python實現之 FP-tree的構造
頻繁項集的挖掘請見:FP-Growth演算法python實現之頻繁項集的挖掘



代碼地址:FP-Growth演算法python實現(完整代碼)。
備忘:該代碼是在 Python2.7+eclipse 環境下編寫的。可在eclipse中匯入項目,也可在命令列視窗用python命令執行“__init__.py”檔案。

著作權聲明:轉載請註明出處,謝謝!

FP_Growth演算法python實現

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.