r036_logo
資料科學
2025-11-05

FP-Growth 演算法(Frequent Pattern Growth Algorithm)

摘要

FP-Growth 演算法是一種高效的頻繁項目集挖掘方法,可以應對更大型交易資料集,避免像是 Apriori 演算法多次生成候選集與全資料掃描的低效。

FP-Growth 演算法以 壓縮樹狀結構(FP-tree) 保存交易資料中項目之間的共現(co-occurrence)關係,並透過 遞迴模式成長(pattern growth) 直接挖掘所有頻繁項目集。

對於壓縮樹狀結構可以理解成,原先樹在最不理想的狀態下,可以展開所有的組合,但是當資料一據頻繁項目進行排序時,樹的結構則呈現特定頻繁項目的組合。

介紹

FP-Growth 的目標是找出所有支持度大於支持度門檻的項目,該項目集合為頻繁項目集,透過建立 FP-tree,將多筆交易中重疊的項目前綴(Prefix)合併壓縮,以減少冗餘計算,並透過條件模式基與條件 FP-tree 遞迴生成頻繁模式

下圖示意樹結構壓縮的原理,如果當一個資料集的項目以隨機順序排列,那麼最壞的情況,該樹狀結構可能展開為所有的組合,而當項目依據頻繁度排序後,樹的分支將重疊共用,形成具壓縮性的結構。 RENODE 重構節點 人工智慧資訊網站

方法論

1. 計算項目頻率(Item Frequency)

計算每個項目在交易資料集中的出現次數,僅保留支持度(Support)≥ minsup 的項目。

此步驟確定哪些項目為頻繁項目,當 minsup=4 ,計算每個單獨項目是滿足成為頻繁項目的條件。 RENODE 重構節點 人工智慧資訊網站

2. 頻率排序(Frequency Ordering)

將項目依全域頻率(Global Frequency)由高到低排序,每筆交易中的項目依此順序排列。

此排序可讓共享前綴的交易合併,減少 FP-tree 節點結構冗餘。

RENODE 重構節點 人工智慧資訊網站


3. FP-tree 建構(FP-tree Construction)

FP-tree(Frequent Pattern Tree)用來壓縮交易資料並保留頻率資訊,並且建立項目索引表(Header Table),項目索引表可以用來紀錄錄每個頻繁項目的總出現次數,並連結至樹中對應節點的位置 RENODE 重構節點 人工智慧資訊網站

  • 將每筆交易依排序後的項目插入樹中:

  • 若前綴分支存在 → 節點計數累加

  • 否則建立新節點

  • 同時維護 Header Table,連結相同項目的節點


4. 條件模式基(Conditional Pattern Base)

條件模式基用於收集某基準項目(後綴,Suffix)的頻繁前綴(Prefix)資訊: RENODE 重構節點 人工智慧資訊網站

  • 對每個基準項目,取出包含該項目的所有路徑

  • 擷取每條路徑上方的前綴節點(Prefix)及其計數

  • 條件模式基提供該項目的局部資料,供建立條件 FP-tree 使用


5. 條件 FP-tree(Conditional FP-tree)

條件 FP-tree 是從條件模式基建構的局部 FP-tree: RENODE 重構節點 人工智慧資訊網站

  • 節點僅保留支持度 ≥ minsup 的項目

  • 用於遞迴挖掘基準項目的頻繁模式

  • 節點計數直接提供支持度,避免重新掃描原始交易集


6. 模式成長(Pattern Growth)

模式成長是 FP-Growth 的核心步驟,用於從 條件 FP-tree(Conditional FP-tree) 中遞迴生成所有頻繁項目集(Frequent Itemsets)。

對每個頻繁項目(基準項目,Suffix Item)建立對應的條件 FP-tree,並以遞迴方式將 前綴(Prefix)後綴(Suffix) 結合,逐層擴展出新的頻繁模式。 RENODE 重構節點 人工智慧資訊網站

此步驟遞迴完成後,即可得到所有滿足最小支持度的頻繁模式。


演算法應用

FP-Growth 廣泛應用於:

  • 購物籃分析(Market Basket Analysis)

  • 推薦系統(Recommendation Systems)

  • 關聯規則挖掘(Association Rule Mining)