關(guān)聯(lián)規(guī)則推薦算法的原理及實現(xiàn)
關(guān)聯(lián)規(guī)則用來發(fā)現(xiàn)數(shù)據(jù)間潛在的關(guān)聯(lián),最典型的應(yīng)用是電商網(wǎng)站的購物車分析。本文將通過一個簡單的例子來說明關(guān)聯(lián)規(guī)則中各個術(shù)語的含義以及具體的計算方法。
這是一些用戶的購物數(shù)據(jù),uid是用戶的ID,后面是每個用戶具體購買的商品名稱,我們使用字母進(jìn)行標(biāo)識。下面我們將使用關(guān)聯(lián)規(guī)則對這些數(shù)據(jù)進(jìn)行分析,挖掘不同商品間的聯(lián)系。
首先將前面的一維的購物車流水?dāng)?shù)據(jù)轉(zhuǎn)換為二維的列表。然后在這個基礎(chǔ)上計算不同商品及商品組成出現(xiàn)的頻率。
在關(guān)聯(lián)規(guī)則中,有三個重要的術(shù)語,分別為支持度(Support),可信度(Confidence)和作用度(Lift)。***個屬于是支持度,支持度是一件商品在所有購物車中出現(xiàn)的頻率。如果我們希望分析的是兩件商品的關(guān)聯(lián),那么支持度就是這兩件商品同時出現(xiàn)的頻率。支持度的作用是用來衡量關(guān)聯(lián)規(guī)則重要性的指標(biāo),簡單來說就是我們所要挖掘的關(guān)系有多大的普遍性,普遍性越大這條關(guān)聯(lián)規(guī)則越重要。第二個術(shù)語是可信度,可信度是指兩件商品中當(dāng)***件出現(xiàn)時,第二件商品同時出現(xiàn)的頻率。可信度用來衡量關(guān)聯(lián)規(guī)則的準(zhǔn)確性。第三個術(shù)語是作用度,作用度用來衡量關(guān)聯(lián)規(guī)則對于商品出現(xiàn)頻率的影響。只有作用度大于1的關(guān)聯(lián)規(guī)則才有實際的應(yīng)用意義。下面我們分別介紹這三個術(shù)語的計算方法。
支持度(Support)
支持度是兩件商品在所有購物車中同時出現(xiàn)的概率,可以記錄為P(A U B)。支持度的計算公式為A,B兩件物品同時出現(xiàn)的次數(shù)與購物車總數(shù)的比率。對于前面例子中,如果我們要計算商品A和B在5條購物車記錄中的支持度,具體的計算公式為1/5。商品A和B在5條購物車記錄中只在uid1中同時出現(xiàn)過。
單件商品的支持度的計算方法與兩件商品一樣,如果我們要計算商品A的支持度,具體的計算公式為3/5。商品A在5條購物車記錄中共出現(xiàn)了3次。單件商品的支持度描述了在沒有其他商品影響的情況下,商品在購物車中出現(xiàn)的次數(shù)。
可信度(Confidence)
可信度是一個條件概率,兩件商品其中一件出現(xiàn)在購物車中時,另一件也會出現(xiàn)的概率??梢杂涗洖镻(B|A)。對于前面的例子中,如果要計算A和B兩件物品的可信度,具體的計算公式為1/3。商品A出現(xiàn)的3次,商品B同時出現(xiàn)的次數(shù)為1次。
作用度(Lift)
作用度通過衡量使用規(guī)則后的提升效果來判斷規(guī)則是否可用,簡單來說就是使用規(guī)則后商品在購物車中出現(xiàn)的次數(shù)是否高于商品單獨出現(xiàn)在購物車中的頻率。如果大于1說明規(guī)則有效,小于1則無效。對于前面的例子中,如果要計算規(guī)則A-B是否有效,計算公式為(1/5)/(3/5*3/5)=(0.2)/(0.6*0.6)=0.2/0.36=0.55。作用度小于1說明A-B規(guī)則對于商品B的提升沒有效果。
按照前面的計算公式我們分別對下面的四個規(guī)則進(jìn)行了計算,在獲得支持度,可信度后計算出了四個規(guī)則的作用度。其中A-D規(guī)則作用度大于1,說明對購物車中已經(jīng)包含商品A的用戶推薦商品D,購買概率是單獨推薦D的1.11倍。