ApacheCN 機(jī)器學(xué)習(xí)實(shí)戰(zhàn)講義 十二、使用FP-growth算法來高效發(fā)現(xiàn)頻繁項(xiàng)集

前言
在 第11章 時(shí)我們已經(jīng)介紹了用 Apriori
算法發(fā)現(xiàn) 頻繁項(xiàng)集
與 關(guān)聯(lián)規(guī)則
。
本章將繼續(xù)關(guān)注發(fā)現(xiàn) 頻繁項(xiàng)集
這一任務(wù),并使用 FP-growth
算法更有效的挖掘 頻繁項(xiàng)集
。
FP-growth 算法簡介
一種非常好的發(fā)現(xiàn)頻繁項(xiàng)集算法。
基于Apriori算法構(gòu)建,但是數(shù)據(jù)結(jié)構(gòu)不同,使用叫做
FP樹
的數(shù)據(jù)結(jié)構(gòu)結(jié)構(gòu)來存儲(chǔ)集合。下面我們會(huì)介紹這種數(shù)據(jù)結(jié)構(gòu)。
FP-growth 算法步驟
基于數(shù)據(jù)構(gòu)建FP樹
從FP樹種挖掘頻繁項(xiàng)集
FP樹 介紹
FP樹的節(jié)點(diǎn)結(jié)構(gòu)如下:
class treeNode:
def __init__(self, nameValue, numOccur, parentNode):
self.name = nameValue # 節(jié)點(diǎn)名稱
self.count = numOccur # 節(jié)點(diǎn)出現(xiàn)次數(shù)
self.nodeLink = None # 不同項(xiàng)集的相同項(xiàng)通過nodeLink連接在一起
# needs to be updated
self.parent = parentNode # 指向父節(jié)點(diǎn)
self.children = {} # 存儲(chǔ)葉子節(jié)點(diǎn)
閱讀全文:http://ml.apachecn.org/mlia/fp-growth/