← 所有文章2025.06.13 · MSBD 5002 · 資料探勘與知識發現

Association Rules:從 Apriori 剪枝到 FP-Growth

先分清 support、confidence、lift,再理解 Apriori 與 FP-Growth 如何用不同方式省下搜尋成本。

Association mining 想找的是「哪些 item 比預期更常一起出現」。coffee -> milk 的 confidence 很高,不代表 rule 有用,因為 milk 可能本來就出現在幾乎所有 basket。

指標 問題
Support 完整 itemset 出現多常?
Confidence 有左側的 basket 中,多少也有右側?
Lift 兩者共同出現,比 independent assumption 高多少?

Lift 大於 1 代表 positive association,但不等於 causality,也不保證有商業價值。

Apriori:用 downward closure 剪枝

若 itemset 是 frequent,它的每個 subset 必然 frequent。反過來,只要 subset 不 frequent,包含它的 superset 全都可以刪掉。Apriori 逐層產生 candidate,在真正 counting 前先剪掉不可能的 branch。

它的弱點是 repeated database scan;transaction 很寬或 support threshold 很低時,candidate 數量也可能爆炸。

FP-Growth:壓縮重複 prefix

FP-Growth 先計算 frequent item、建立固定 order,再把 transaction 插入 FP-tree;共同 prefix 共用 node。之後透過 conditional pattern base mining,不必明確產生所有 candidate。

Tree 不是保證有效的魔法壓縮:transaction 結構若很少重複,它仍可能很大。選擇要看 sparsity、support threshold、memory 與 incremental update 需求。

白話來說: Apriori 問「哪些組合還有可能?」;FP-Growth 問「哪些 transaction prefix 可以共用儲存?」

真正上線前,還要排除 trivial consequent、用之後的 time window 驗證,並估計對 false association 採取行動的成本。統計上頻繁的 pattern,營運上可能完全沒用。

複習卡

  • Support 看普遍程度;confidence 是 conditional frequency。
  • Lift 修正 consequent 本身很熱門的問題。
  • Apriori 以 subset monotonicity 剪 candidate。
  • FP-Growth 用 compressed tree 取代大量 candidate generation。
  • Association 是 hypothesis generator,不是因果證明。