FPTree算法筆記

FPTree算法筆記:

FPTree算法引入一些數據結構來臨時的存儲數據
數據結構分爲三個部分
第一部分是一個項頭表:記錄所有1項頻繁項集出現的次數,按照次數降序排列
第二部分是FP Tree: 將原始數據映射到一顆FP樹。
第三部分是節點鏈表: 所有項頭表裏的1項頻繁集都是一個節點鏈頭的表,它依次指向FP
樹中該1頻繁項集出現的位置。(是一根線)方便項頭表和FP Tree之間的聯繫查找和
更新。

項頭表的建立:
第一次掃描:統計所有頻繁1項集,支持度降序排列將其放入項頭表中
第二次掃描:將源數據的每條數據中的非頻繁1項集剔除,並將該數據中的元素按支持度
大小進行排序,存放回源數據中(可以儘可能的共用祖先節點)

FP Tree的建立
開始時FP樹無數據,即根節點爲空,建立FP樹時我們一條一條的讀入排序後的數據集
,插入FP樹,插入時按排序後的順序插入,排序靠前的是祖先節點,靠後的是子孫節點
。(源數據在第二次掃描的時候,已經將排序考前的節點放在了前面,因此祖先節點
排序考前,而子孫節點排序靠後)。如果有共用的祖先節點,則祖先節點數加1。如果
有新節點出現,則項頭表對應的節點會通過節點鏈接上新的節點。
所有數據都插入到FP樹後,FP樹建立完成。

FPTree的挖掘
得到了FP樹和項頭表以及節點鏈表
首先從項頭表的底部向上一次挖掘,對於項頭表對應FP樹的每一項,我們要找到條件
模式基。條件模式基是以我們要挖掘的節點作爲葉子節點所對應的FP子樹。
其次將得到的FP子樹的每個節點的計數設置爲葉子節點的而計數,並刪除計數低於
支持度的節點。我們就可以得到頻繁項集。

FPTree算法歸納
1) 掃描數據,得到所有頻繁1項集的計數。然後刪除支持度低於閾值的項,將頻繁1項
集放入項頭表,並按照支持度降序排列。
2)掃描數據,將讀到的數據剔除非頻繁1項集,並按支持度降序排列
3)讀入排序後的數據集,插入FP樹,序靠前的節點是祖先節點,而靠後的是子孫節點。
如果有共用的祖先,則對應的公用祖先節點計數加1。插入後,如果有新節點出現,則
項頭表對應的節點會通過節點鏈表鏈接上新節點。直到所有的數據都插入到FP樹後,
FP樹的建立完成。
4)從項頭表的底部項依次向上尋找條件模式基。從條件模式基遞歸挖掘得到項頭表
項項的頻繁項集。
5)如果不限制頻繁項集的項數,則返回步驟4所有的頻繁項集,否則只返回滿足
項數要求的頻繁項集。

參考鏈接:http://www.cnblogs.com/aeexiaoqiang/p/6531789.html———-

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章