關聯分析是資料探勘系統中重要的組成部分之一,其代表性的案例即為「購物籃分析」。我們以資料探勘軟體Clementine自備的一個購物籃分析的資料為例,從多個面向來探討這一方面的內容。
關聯分析要解決的主要問題是:一群使用者購買了許多產品之後,哪些產品同時購買的幾率比較高?買了A產品的同時買哪個產品的幾率比較高?可能是由於最初關聯分析主要是在超市應用比較廣泛,所以又叫“購物籃分析”,英文簡稱為MBA,當然此MBA非彼MBA,意為Market Basket Analysis。
如果在研究的問題中,一個使用者購買的所有產品假定是同時一次性購買的,分析的重點就是所有使用者購買的產品之間關聯性;如果假定一個使用者購買的產品的時間是不同的,而且分析時需要突顯時間先後上的關聯,如先買了什麼,然後再買什麼?那麼這類問題稱為序列問題,它是關聯問題的一種特殊情況。從某種意義上來說,序列問題也可以按照關聯問題來操作。
關聯分析有三個非常重要的概念,那就是「三度」:支持度、可信度、提升。假設有10000個人購買了產品,其中購買A產品的人是1000個,購買B產品的人是2000個,AB同時購買的人是800個。支持度指的是關聯的產品(假設A產品和B產品關聯)同時購買的人數佔總人數的比例,即800/10000=8%,有8%的用戶同時購買了A和B兩個產品;可信度指的是購買了一個產品之後購買另外一個產品的可能性,例如購買了A產品之後購買B產品的可信度=800/1000=80%,即80%的用戶在購買了A產品之後會購買B產品;提升度就是在購買A產品這個條件下購買B產品的可能性與沒有這個條件下購買B產品的可能性之比,沒有任何條件下購買B產品可能性=2000/10000 =20%,那麼提升度=80%/20%=4。 (http://bai.zhihao.blog.163.com/blog/static/5652272320118953220582/)
關聯分析最經典的案例是沃爾瑪的啤酒與尿布的故事:
沃爾瑪的超市管理人員分析銷售數據時發現了一個令人難以理解的現象:在某些特定的情況下,啤酒與尿布兩件看上去毫無關係的商品會經常出現在同一個購物籃中。原來,年輕的父親前去超市買尿布的同時,往往會順便為自己買啤酒。
沃爾瑪發現了這一獨特的現象,開始在賣場嘗試將啤酒與尿布擺放在相同的區域,讓年輕的父親可以同時找到這兩件商品,並很快地完成購物。而沃爾瑪超市也可以讓這些顧客一次購買兩件商品,而不是一件,從而獲得了更多的銷售收入。它向我們揭示商品之間是具有關聯關係的,發現並利用這些商品之間的關聯關係,可以在無法大幅增加門店客戶數的前提下,透過增加購物籃中的商品數量達到增加銷售額的目的,從而獲得更大的經營利益。
商品相關性是指商品在賣場中不是孤立的,不同商品在銷售中會形成相互影響關係,由於這種關係往往隱藏在數量龐大的商品群後面,平常我們無法發現,因此也稱之為商品之間的「暗戀關係」。
那我們要怎麼讓「暗戀關係」公開化呢?發現商品之間關聯關係的方法,稱為購物籃分析。對於傳統零售業來說,要進行商品的購物籃分析,需要採取一定的數據分析方法。
首先我們透過POS機收集的顧客購物數據,找出哪些商品常出現在同一個購物籃中。如果發現啤酒與尿佈出現在同一個購物籃的機率比較高,就可以認為啤酒與尿布之間具有關聯關係。這樣就可以提示賣場的管理者,將原本看上去不搭界的啤酒與尿布兩種商品陳列在一起,或者捆綁在一起促銷,使這種「暗戀關係」起到促進銷售的作用,使「暗戀關係」公開化。 (《啤酒與尿布》)
我們的數據包括這些內容:
購物籃摘要:
• cardid.購買此籃商品的顧客的忠誠卡識別碼。
• value.購物籃的總購買價格。
• pmethod.購物籃的支付方法。
卡持有者的個人詳細資料:
• sex
• homeown.卡持有者是否擁有住房。
• 收入
• age
購物籃內容 - 產品類別的出現標誌,數據中T表示購買,F表示未購買:
• fruitveg
• freshmeat
• dairy
• cannedveg
• cannedmeat
• frozenmeal
• beer
• wine
• softdrink
• fish
• confectionery
利用Clementine的web網絡作圖功能,可以得到以下結果:
在對關係強度顯示進行調整後,可以清楚的得到三個商品群體,可以理解為消費者更多地購買群體組合的產品,即同時購買同一群體內的產品。
這是採用GRI關聯模型得到的結果:
結果和網絡圖觀察到的結果基本上一致。
利用資料探勘的技術,此時我們也可以使用C5.0等相關演算法對相同問題進行建模,並對建模結果進行主觀評估與客觀準確性驗證。同時,我們可以將三類產品群的購買消費者篩選出來,繼續使用關聯分析的方法,考察人口統計變數對產品群體的影響,從而確定哪一類人群更喜愛同時購買哪些產品,為產品銷售提供支援。
下面,我們忽略此資料的實際意義,只考慮要對若干變數進行分類,不再考慮實際問題與統計方法的適合性,只看資料結構,使用傳統的統計學資料分析方法,我們是否仍然可以得出這些結論呢?
將資料匯入SPSS當中,將資料重新編碼,原來的T、F用數字1、0來代替,因為1、0是可以運算的數字,可以參加多種的數學建模。
相關分析的結果:
聚類的結果:
因素分析的結果:
所有結論一致性都很高!