電商產(chǎn)品設(shè)計(jì):實(shí)現(xiàn)交叉銷(xiāo)售的Apriori算法
![](http://image.woshipm.com/wp-files/img/37.jpg)
在電商行業(yè)里,有一個(gè)著名的公式:銷(xiāo)售額=UV*轉(zhuǎn)化率*客單價(jià)。而提高客單價(jià)的一個(gè)有效手段就是關(guān)聯(lián)銷(xiāo)售或者叫交叉銷(xiāo)售(cross-selling)。常見(jiàn)的產(chǎn)品形態(tài)就是組合產(chǎn)品、套餐搭配、配件中心等。而不同的商品如何搭配組合才能激發(fā)用戶最大的購(gòu)買(mǎi)欲望就是一個(gè)關(guān)鍵的問(wèn)題。今天,就介紹下關(guān)聯(lián)規(guī)則的Apriori算法。
一、簡(jiǎn)介
Apriori算法是最常用的關(guān)聯(lián)規(guī)則挖掘算法。由RakeshAgrawal和Ramakrishnan Srikant兩位博士在1994年提出。關(guān)聯(lián)規(guī)則算法的目的就是在一個(gè)數(shù)據(jù)集中找出項(xiàng)與項(xiàng)之間的關(guān)系。在零售領(lǐng)域中,超市通過(guò)分析顧客的一張張訂單來(lái)指導(dǎo)商品的交叉銷(xiāo)售,所以也被稱為購(gòu)物藍(lán)分析 (Basket analysis)。關(guān)于關(guān)聯(lián)銷(xiāo)售最有名的例子就是啤酒與尿布(真實(shí)性無(wú)證實(shí))。講的是沃爾瑪員工通過(guò)訂單發(fā)現(xiàn)貨架相隔很遠(yuǎn)的啤酒和尿布經(jīng)常出現(xiàn)在一個(gè)訂單里,他們走訪了顧客,發(fā)現(xiàn)妻子總是在上班前叮囑丈夫記得下班后買(mǎi)尿布回來(lái),結(jié)果丈夫在買(mǎi)尿布的同時(shí)會(huì)順帶買(mǎi)一些啤酒。于是,沃爾瑪?shù)膯T工便把啤酒和尿布放在相鄰的位置,結(jié)果商品銷(xiāo)量大增。
Apriori算法的基本原理是用支持度表示關(guān)聯(lián)規(guī)則的強(qiáng)度,把具有關(guān)聯(lián)規(guī)則的商品看做一個(gè)集合。從最小的集合開(kāi)始,篩選出支持度大于某個(gè)值的集合,然后合并集合,再循環(huán),直到找不集合為止。
二、名詞定義
- 關(guān)聯(lián)規(guī)則(association rules):形如”如果…那么…(If…Then…)”,前者為條件,后者為結(jié)果。一般表示為A→B。衡量一個(gè)規(guī)則是否好,可以用支持度和置信度衡量。
- 支持度(support):某事件發(fā)生的概率。A的支持度就是A被購(gòu)買(mǎi)的概率:Support(A)=P(A)=num(A)/num(I)。A→B的支持度就是A和B同時(shí)購(gòu)買(mǎi)的概率:Support(A→B)= P(A∩B) =num(A∩B)/num(I);
- 置信度(confidence):在A條件下,A和B共同購(gòu)買(mǎi)的概率。Confidence(A→B)=P(B|A)=P(A∩B)/P(A)。
- 提升度(lift):相對(duì)于不用規(guī)則,使用規(guī)則可以提高多少。Lift(A→B)=Confidence(A→B)/Support(B)=P(B|A)/P(B)。
- K項(xiàng)集(K-itemset):同時(shí)購(gòu)買(mǎi)的K項(xiàng)集合。
- 頻繁K項(xiàng)集(frequent itemset):滿足最小支持度閾值的K項(xiàng)集合。
- 候選K項(xiàng)集(candidate itemset):通過(guò)連接形成的K項(xiàng)集合。
三、原理
步驟:
- 先計(jì)算1項(xiàng)集的支持度,篩選出頻繁1項(xiàng)集。
- 然后排列組合出2項(xiàng)集,計(jì)算出2項(xiàng)集的支持度,篩選出頻繁2項(xiàng)集。
- 然后通過(guò)連接和剪枝計(jì)算出3項(xiàng)集,計(jì)算出3項(xiàng)集的支持度,篩選出頻繁3項(xiàng)集。
- 然后依次類(lèi)推處理K項(xiàng)集,直到?jīng)]有頻繁集出現(xiàn)(具體例子參考首圖)。
關(guān)鍵:如何從K-1項(xiàng)集計(jì)算出K項(xiàng)集(K>=3,K=2時(shí)用組合公式C(2,n)即可)
- 連接:對(duì)K-1項(xiàng)集中的每個(gè)項(xiàng)集中的項(xiàng)排序,只有在前K-1項(xiàng)相同時(shí)才將這兩項(xiàng)合并,形成候選K項(xiàng)集(因?yàn)楸仨毿纬蒏項(xiàng)集,所以只有在前K-1項(xiàng)相同,第K項(xiàng)不相同的情況下才合并。)
- 剪枝:對(duì)于候選K項(xiàng)集,要驗(yàn)證所有項(xiàng)集的所有K-1子集是否頻繁(是否在K-1項(xiàng)集中),去掉不滿足的項(xiàng)集,就形成了K項(xiàng)集。
四、局限
- 傳統(tǒng)的Apriori算法的計(jì)算量很大,當(dāng)商品數(shù)據(jù)量大時(shí)更顯著,基本是不可計(jì)算的,不過(guò)后來(lái)有人用FP-Tree算法簡(jiǎn)化了計(jì)算量。
- 電商常用的關(guān)聯(lián)規(guī)則應(yīng)用是單品推薦單品,所以一般只需要知道頻繁2項(xiàng)集即可。K>=3的項(xiàng)集并沒(méi)有被挖掘價(jià)值。
- 商品并不是全部平等銷(xiāo)售的,僅使用支持度衡量,容易導(dǎo)致出現(xiàn)假性關(guān)聯(lián)。組合、搭售、買(mǎi)贈(zèng)、企業(yè)采購(gòu)等訂單都會(huì)影響。
五、改進(jìn)
- 支持度表示在歷史中A和B同時(shí)購(gòu)買(mǎi)的概率,置信度表示A推薦B的可信程度。由此可以認(rèn)為支持度*置信度表示A推薦B而A和B同時(shí)購(gòu)買(mǎi)的概率。這樣相比于單純使用支持度更全面,同時(shí)避免了支持度中等或置信度中等的關(guān)聯(lián)規(guī)則被淘汰。
- 因?yàn)樘嵘缺硎咎嵘龁纹焚?gòu)買(mǎi)概率的程度,所以可以使用提升度作為最終推薦依據(jù),避免組合、搭售、買(mǎi)贈(zèng)關(guān)系的假性關(guān)聯(lián)。
本文由 @劉鑫(微信公眾號(hào):pm-wolf)原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理?,未經(jīng)許可,禁止轉(zhuǎn)載。
沙發(fā) ??