FP-Growth

FP-Growth可以高效地發(fā)現(xiàn)頻繁項集

發(fā)現(xiàn)事務(wù)數(shù)據(jù)中的公共模式

FP-Growth與Apriori相比,是基于Apriori的構(gòu)建,但是將數(shù)據(jù)集存儲在FP樹,這樣使得算法的執(zhí)行速度快于Apriori,通常性能要好兩個數(shù)量級以上。

FP-Growth只需要對數(shù)據(jù)庫進行兩次掃描,而Apriori對每個潛在的頻繁項集都會掃描數(shù)據(jù)集判定給定模式是否頻繁。FP過程如下:

1)構(gòu)建FP樹

2)從FP樹中挖掘頻繁項集

FP樹

同搜索樹不同的是,一個元素項可以在一顆FP樹中出現(xiàn)多次,F(xiàn)P樹會存儲項集出現(xiàn)的頻率,相似元素的集合會共享樹的一部分,只有當(dāng)集合間完全不同時才會分叉

在FP樹中Z出現(xiàn)了5次,集合{r,z}出現(xiàn)了1次,那么可以推出一定是z本身或者其他符號一起出現(xiàn)了4次。

FP-growth的工作流程是,首先建立FP樹,然后利用它來挖掘頻繁項集。為構(gòu)建FP樹需要對原始數(shù)據(jù)掃描兩遍,第一遍對所有元素項的出現(xiàn)次數(shù)進行計數(shù),如果某元素是不頻繁的,那么包含該元素的超級也是不頻繁的,所以就不用考慮這些元素的超級。

第一遍掃描統(tǒng)計出現(xiàn)的頻率,第二遍掃描只考慮那些頻繁的元素

第一次遍歷數(shù)據(jù)集會獲得每個元素項的出現(xiàn)頻率。接下來,去掉不滿足最小支持度的元素項。再下一步構(gòu)建FP樹。在構(gòu)建時,讀人每個項集并將其添加到一條已經(jīng)存在的路徑中。如果該路徑不存在,則創(chuàng)建一條新路徑。每個事務(wù)就是一個無序集合。假設(shè)有集合{z,x,y}和比{y,z,r} ,那么在FP樹 , 相同項會只表示一次。

為了解決此問題,在將集合添加到樹之前,需要對每個集合進行排序。排序基于元素項的絕對出現(xiàn)頻率來進行。使用圖12-2中的頭指針節(jié)點值,對表12-1中數(shù)據(jù)進行過濾、重排序后的數(shù)據(jù)顯示在表12-2中

對事務(wù)記錄進行過濾和排序之后就可以構(gòu)建FP樹了,從空集開始,向其中不斷添加頻繁項集,過濾、排序后的事務(wù)添加到樹中,如果樹中已存在現(xiàn)有元素,則增加現(xiàn)有元素值,否則則添加分支

----從一顆FP樹中挖掘頻繁項集

1. 從FP樹中獲得條件模式基

2. 利用條件模式基,構(gòu)建一個條件FP樹

3. 迭代重復(fù)1)2)直到樹只包含一個元素

--條件模式基

---創(chuàng)建條件FP樹


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容