經典與統計學習

關聯規則學習(association rule learning)

/ uh-soh-see-AY-shun rool LER-ning /

關聯規則學習在成堆的交易記錄裡翻找「什麼和什麼搭著來」的潛規則。它的主場是超市收銀台:橫掃數百萬張小票,哪些商品總是出現在同一個購物籃裡?最有名(雖有爭議)的傳說是「買尿布的人也往往會買啤酒」。它產出的,是一組「如果—那麼」的規則——如果一個籃子裡有麵包和花生醬,那麼它往往也有果醬——全自動地發現,事先無需任何人去貼標籤。

三個數字讓規則保持誠實。支持度(support)問的是這個組合整體上有多常見——一條講「幾乎沒人會一起買」之物的規則,是瑣聞,而非洞見。置信度(confidence)問的是,在擁有第一件商品的籃子裡,有多大比例也擁有第二件——這條規則有多可靠。而提升度(lift)問的是那個關鍵問題:第一件商品真的讓第二件比碰運氣更可能出現嗎,還是它倆只是恰好都熱銷?提升度大於1意味著一股真實的牽引;接近1則意味著巧合。經典的Apriori演算法用一個樸素的洞察高效地找出這些規則:一個組合若想頻繁,它所有更小的組成部分也必須頻繁,這就讓它能把成山的沒指望的候選剪掉。

它驅動著推薦裡的那些輕推(「經常一起購買」)、店內貨架的佈局,以及醫學上症狀共現的分析。最要緊的誠實提醒是:關聯不等於因果。規則只說這些東西一起出現,而非其中一個導致了另一個——兩者也許都由第三個因素推動(一個節日、一個季節、一類共同的購物者)。而面對成千上萬種商品,你會挖出洪水般的規則,其中大多要麼顯而易見、要麼純屬偶然;真正的本事,是從雜訊裡篩出那寥寥幾條既出人意料、又可付諸行動的。

在10萬張小票裡,規則「薯片 → 莎莎醬」的支持度為8%(8%的籃子裡兩者都有)、置信度為70%(70%買薯片的人也順手拿莎莎醬)、提升度為3.5(買薯片的人比隨機顧客買莎莎醬的可能性高3.5倍)。高提升度意味著一條真實的關聯——值得把這兩樣擺到同一條貨架走道上。

支持度、置信度與提升度三者合起來,告訴你一條規則是真有其事,還是不過是熱銷的雜訊。

永遠要看提升度,而不只是置信度:一條規則可能僅僅因為第二件商品幾乎人人都買,就顯得很「強」。也永遠別忘了那條頭等告誡——這些規則揭示的是共現,絕非因果;兩件商品也許都搭在一個隱藏的第三因素上。

又稱
market basket analysisApriori algorithm关联规则關聯規則购物篮分析Apriori算法