原文鏈接:http://blog.csdn.net/huagong_adu/article/details/17739247
- FP-tree構建
-
- 第一遍掃描數據,找出頻繁1項集L,按降序排序
- 第二遍掃描數據:
- 對每個transaction,過濾不頻繁集合,剩下的頻繁項集按L順序排序
- 把每個transaction的頻繁1項集插入到FP-tree中,相同前綴的路徑可以共用
- 同時增加一個header table,把FP-tree中相同item連接起來,也是降序排序
- ==>
- 頻繁項挖掘
-
- 從header table的最下面的item開始,構造每個item的條件模式基(conditional pattern base)
- 順着header table中item的鏈表,找出所有包含該item的前綴路徑,這些前綴路徑就是該item的條件模式基(CPB)
- 所有這些CPB的頻繁度(計數)爲該路徑上item的頻繁度(計數)
- 如包含p的其中一條路徑是fcamp,該路徑中p的頻繁度爲2,則該CPB fcam的頻繁度爲2
- 構造條件FP-tree(conditional FP-tree)
- FP-Growh:遞歸的挖掘每個條件FP-tree,累加後綴頻繁項集,直到找到FP-tree爲空或者FP-tree只有一條路徑(只有一條路徑情況下,所有路徑上item的組合都是頻繁項集)
- 從header table的最下面的item開始,構造每個item的條件模式基(conditional pattern base)
- FP-Tree中header table按item降序排序原因
-
- 共用前綴:不排序會造成不能共用前綴
- 更多的共用前綴:頻繁的item會在樹的上層,可以被更多的共享;升序排序會造成那些頻繁出現的item出現在樹的分支中,不能更多的共用前綴
- 共用前綴:不排序會造成不能共用前綴