請教推薦演算法中關聯規則的最小支持度和最小置信度如何確認呢?

小弟現在研一,最近在看推薦演算法方面的文章,在看到關聯規則這個演算法的論文或文章時,大部分都是直接給出了最小支持度/置信度,並未說如何確認的,對此很不解,請大神釋疑。

另外,請教一下像我這種剛剛接觸推薦演算法的,除了看相關論文之外,還有哪些網站或博客or論壇能學到推薦演算法方面的知識么?求推薦,3Q~


關聯規則在推薦演算法中是最長被使用,效果也是相對較好的演算法之一。關聯規則中的最重要的東西就是支持度和置信度:1、支持度,{X,Y}同時出現的概率,即所有事件中,同時出現X,Y的事件佔總事件數的比例;2、置信度,出現X時,同時出現Y的概率,稱(X->Y)的置信度,即在X條件下,Y的條件概率。

要說明X、Y之間存在關係,就需要讓X->Y的支持度和置信度滿足一定的條件,也即要大於最小支持度和最小置信度。舉例來說,如果在10w個事件中,X、Y同時出現的事件只有一條,或者有X的事件有1w個,而X、Y同時出現的事件只有一條,這兩種情況下都不能說X、Y存在關係。

但最小支持度和最小置信度是沒有一個固定值的,要根據訓練數據和場景的接受程度來給定。這兩個閾值給的越大,得到的有相關性的item就越好,但item的數量也越少。也就是說,數量多,但相關性會差。所以主要根據需要給出的推薦item的數量及item間的相關性來決定這兩個參數的值。

此外,關聯規則無法給出所有item的相關推薦結果。這是因為關聯規則的數據是用戶的操作數據,但用戶操作的item也就是那麼些,相當多的item是沒有用戶操作的。


這是閾值都是主觀確定的。或者說關聯規則挖掘的結果不是抽象的,而是具體的。怎麼理解?

你的結論不能是:」啤酒 ——&>尿布「就完了,這是錯誤的,關聯規則挖掘的結果不可能是:「啤酒 ——&>尿布」。

正確的結果是:

「啤酒 ——&>尿布;support=0.1,confidence=0.8,lift=5」,這才是關聯規則結果的正確表達。

所以,support,confidence設成多少都沒問題,只要它符合人的要求,但關鍵問題是,你的結果要具體在support和confidence的條件下。

參考:

在R語言關聯規則挖掘中,官方給出的example是挖掘超市的購物籃數據。在這裡他們設定的兩個量分別為:

support=0.06,confidence=0.5

當然,每個問題和每個問題都是不同的。


對於推薦方面的接觸,我也僅限於一些簡單、常見的推薦邏輯,因此我自己片面的得出一個結論「推薦演算法都是樸素的」。

最經典的、也是被舉爛的栗子,就是沃爾瑪的「啤酒和尿布」的故事。支持度就是所有非單商品交易中,啤酒(b)和尿布(d)同時出現的概率;置信度就是所有出現b的交易中又出現了d的概率(有些很嚴格的領域,通常會限制「如果d和b同時出現,那麼能只包含這兩個」,這是強關聯)。

置信度是單向的,簡單的說,「大部分購買尿布的人,同時會購買啤酒」的結論和「大部分購買啤酒的人同時會買幾塊尿布」的結論是不同的,而且根據結論來分析合理性,也會覺得前一個結論更加合理。

下面根據個人的經驗以及理解,說說支持度和置信度的分析和選擇(僅供參考,不負責^_^)。

一、支持度

支持度就是所有我們分析的交易中,某兩種(若干種)商品同時(這裡的同時,一般意味著同單或者一次獨立的交易)被購買的概率(比率)。我們選擇支持度的最終目的就是找出同時被購買的兩個商品,可以提高我們的推薦轉換率,從而增加收入。那麼可以選出支持度最高的前n對(以下分析僅考慮兩種商品,簡稱「對」)商品,我通常是選擇總對數的萬分之一或者是前20個。這樣的數量不會很多,可以比較快的進行下一步分析,而且做推薦,要記住一點,「不能急功近利」。

根據萬分之一或者前20,可以得到一個支持度,其實這個時候的支持度閥值,對本次分析已經意義不大了,主要是用於後續推薦系統的智能學習提供一個參考值。

二、置信度

置信度就是根據某一個條件,得到一個結論的可信程度、可靠程度。例子中,「購買了尿布」這個條件,可以推出「同時也會購買啤酒」這個結論的可靠程度很高,百度百科關聯規則_百度百科 中分析的數據表明沃爾瑪尿布到啤酒的置信度高達70%。

在分析支持度得到的前20對商品中,分別計算雙向置信度(購買a同時購買b和購買b同時購買a的置信度都要算),然後篩選中前n個置信度較高的置信度,分析其對應的結論。通過有經驗的業務人員,從中共同選出最合理的一對商品,來進行單向的購物車推薦。這時得到的一個置信度,可以作為今後機器學習的參考值。

個人覺得機器學習要做到全自動,幾乎不可能,特別是對於我這種初學者,現在還接觸不到。因此個人比較偏向半自動和人工分析輔助來完成一些功能。

關於推薦的學習的資料,我其實真正買的書就一本《web智能演算法》智能Web演算法_百度百科。其餘的信息都是自己在網上搜出來的,碰到一些難點、概念就去網上查查資料,順帶看看相關的博客。

以上分析僅供參考。


設:所有客戶為C,產品A,產品B。

求兩個產品同時出現的概率,也就是支持度。

1. 集合A,集合B,AB交集為C,

2. C/S

求購買A產品的人,同時購買B的概率

C/A

1. 把同時出現的產品,作為項集。

2. 支持度:兩個項集同時出現的次數。


關聯規則的最小支持度和置信度 基本是靠經驗判斷和嘗試出來的。。。至少我們老師是這麼教的 因為這兩個都是比較主觀的度量 就是說 多少百分比的你能接受呀 多少百分比的你就相信啦。。。

所以沒有什麼很嚴格的計算過程 基本都是先用經驗摸索個大致範圍 然後幾個值都試試。。。

嗯 以上


推薦閱讀:

推薦系統中用到的熱傳導演算法和物質擴散是怎麼用的?
閱讀、電影和音樂的推薦演算法,哪一個更難做?為什麼?
知乎對用戶有權重判斷嗎?如果有,是以什麼樣的機制來判斷的?
什麼叫基於模型的推薦演算法?
推薦系統如何解決對於使用頻率較低的產品的用戶特徵冷啟動的問題?

TAG:推薦 | 演算法 | 數據挖掘 | 推薦演算法 |