標籤: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進行頻繁項集的挖掘
它主要實現三個動作:
- 輸入交易資料集routines;
- 調用tree_builder,構造FP-tree;
- 調用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實現