经典与统计学习

关联规则学习(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算法