SPSS Modeler——超市商品購買關聯分析
摘要
關聯分析,用於發現隱藏在大型資料集中的有意義的聯絡。這種聯絡反映一個事物與其他事物之間的相互依存性和關聯性。如果兩個或者多個事物之間存在一定的關聯關係,那麼,其中一個事物就能夠通過其他事物預測到。
超市在運營中儲存了交易明細帳資料,考慮根據顧客購買商品的情況,分析商品購買之間的關聯,從而為超市提供合理的建議。本次試驗主要有兩個分析方向,分別是分析商品之間的潛在聯絡和分析顧客可能還會購買的商品。
第一章 引言
1.1資料分析的背景
關聯分析,用於發現隱藏在大型資料集中的有意義的聯絡。這種聯絡反映一個事物與其他事物之間的相互依存性和關聯性。如果兩個或者多個事物之間存在一定的關聯關係,那麼,其中一個事物就能夠通過其他事物預測到。
超市在運營中儲存了交易明細帳資料,考慮根據顧客購買商品的情況,分析商品購買之間的關聯,從而為超市提供合理的建議。關聯分析可以處理兩個關鍵問題:(一)從大型事務資料集中發現模式可能在計算上要付出很高的代價—關聯分析的基本概念和用來有效地挖掘這種模式的演算法。(二)所發現的某些模式可能是虛假的,因為它們可能是偶然發生的—處理髮現模式的評估問題,以避免產生虛假結果。
1.2分析的目的與意義
給定一個事務集合 T, 關聯規則挖掘的目標是找出所有的滿足以下條件的規則:支援度 ≥ minsup 閾值、置信度 ≥ minconf 閾值。顧客在選購商品時,經常會同時選購若干商品,這些商品之間存在一定關聯。通過關聯分析,我們可以找出顧客購買商品之間的關聯,然後商家就可以根據我們得到的結果,對貨物的擺放進行更新,以便於更好的售出商品。
第二章 資料稽核與資料預處理
2.1原始資料表說明
在原始資料表中,我們可以看到,表中共有2800條記錄,有5個欄位,分別是會員ID,商品,數量,單價,小計。其中,商品這個欄位共有11個屬性,分別是凍肉、罐裝肉、罐裝蔬菜、牛奶、啤酒、葡萄酒、蔬菜水果、甜食、鮮肉、飲料、魚。如圖2-1所示。
圖2-1 原始表格資訊
2.2資料分佈與資料稽核
再觀察過原始資料表之後,對原始資料進行資料稽核,可以清楚地觀察到各個欄位的分佈情況及其資料型別。分別如圖2-2、2-3所示。在圖2-2中可以看到5個欄位的分佈情況,及其最小最大值、平均值標準差等指標。在圖2-3中可以看到各欄位的屬性,有連續型和名義型。從圖中可以看到,5個欄位的有效資料都是2800條,與總資料量是相同的,說明每條記錄都是可用的有效的記錄。
圖2-2 資料稽核結果之資料分佈
圖2-3 資料稽核結果之資料質量
2.3資料預處理
在2.2節中我們可以看到,“會員ID”欄位的屬性是連續型,但是作為一個對會員作區分的欄位,它並沒有實際意義,所以應該把會員ID的屬性更改為名義型。如圖2-4、2-5所示,在型別節點中進行修改,並將該欄位的小數點顯示位數改為0。這裡說一句額外的話,如果把會員ID更改為名義型別後自動變成無型別的,那就是流屬性的問題,在檔案選單裡面找到流屬性,將名義欄位的最大成員數前面的勾取消掉就可以了。
圖2-4 將會員ID型別修改為名義型
圖2-5 將會員ID的小數點位數修改為0
修改之後的結果,有利於接下來的分析過程,如圖2-6顯示了修改之後的資料表的顯示情況。
圖2-6 修改後的資料表
通過查詢“36405”這個會員ID,發現這個顧客購買了凍肉、啤酒和飲料三種商品。根據直觀觀察來看,原始的資料集中是以每個會員ID每購一件商品為一條記錄的,可能是以商品名為升序排列的。而購物籃分析是根據購物籃中的所有商品來分析其關聯關係的。於是,先根據會員ID將資料表進行排序。得到結果如圖2-7所示。
圖2-7 將表格按照“會員ID”排序
但是這仍然還達不到我們做關聯分析的需求,我們想要的資料形式是每行代表一個使用者,後面的欄位是商品名,資料表中能體現出該使用者是否購買了該商品。為了達到這個目的,選擇設為標誌節點進行處理,用商品欄位進行標誌操作,把名義變數的各類別設為多個新的變數,新變數的值出現為T,不出現F。過程和結果分別如圖2-8和2-9所示。
圖2-8 設定標誌節點
圖2-9 標誌節點的結果
因為新出現的欄位前面都有“商品_”字首,造成視覺上的冗餘,所以用過濾節點將之過濾掉。如圖2-10所示,結果不再用圖片展示,以免佔用篇幅。
圖2-10 過濾節點去掉冗餘字首
至此,資料預處理階段的工作已經全部完成了,下面將會對得到資料進行關聯分析。
第三章 資料分析
3.1總體思路
通過網路節點和模型,分析出這個商家售出的11中商品在被顧客購買時的關係,通過得到的結論,為商家提供建議。
第一步,用網路圖觀察商品之間的關聯關係;
第二步,用Apriori模型對商品做關聯分析。
3.2基於SPSS Modeler的資料分析過程
3.2.1使用網路圖節點進行分析
在前面資料預處理得到的資料基礎上,選擇網路節點,網路圖節點的基本功能是顯示兩個或多個名義或標誌欄位的值之間關係的緊密程度。設定的過程如圖3-1所示。
圖3-1 設定網路節點的屬性
網路節點的輸出結果,能夠反映出屬性之間的關聯程度,屬性與屬性之間連線線的粗細表示連線強度,如圖3-2所示。
圖3-2 網路節點的輸出結果
網路圖下方的閾值條限定圖中顯示連線的頻數值。拉動閾值條,將會得到新的網路圖,線條的粗細會有變化。在高閾值下限的時候,關聯程度低的商品就不會再顯示在網路圖中,示例如圖3-3所示。
圖3-3 高閾值下限時候的網路圖
在網路圖的輸出結果裡面,也可以看到彙總的資料,我將閾值下限拉倒100,再看新的結果,如圖3-4所示。
圖3-4 閾值下限100上限200的網路圖
網路圖中也可以只定向輸出自己觀測的商品之間的聯絡,例如啤酒、葡萄酒、飲料,得到圖3-5裡面的結果。
圖3-5 指定商品之間的網路圖
3.2.2選用Apriori模型進行關聯分析
接下來,將使用Apriori模型繼續對商品做關聯分析。首先新增“型別”節點,改變各欄位的角色為“任意”,表示在建模中各變數既是條件與是結果。如圖3-6所示。
圖3-6 型別節點改角色為任意
然後,在模型裡面選擇Apriori節點,執行結果如圖3-7所示。
圖3-7 Apriori模型的結果
從結果中可以看出,對已經購買了啤酒和罐裝蔬菜的顧客來說,他們很可能繼續購買凍肉。原因:在歷史資料中,我們發現同時購買啤酒和罐裝蔬菜的顧客有167人,佔總人數的17.785%,在這些顧客中,有146例即87.425%的顧客也同時購買了凍肉。同時購買了此三種商品的顧客佔比為15.548%,採用此規則向客戶推薦凍肉比隨機推薦該商品會提升效率2.718倍,該規則適用於2.236%的顧客 。
將Apriori模型的結果用表格形式輸出,可以看到結果是比較亂的,如圖3-8所示。
圖3-8 Apriori模型的表格
但是,為了讓結果更直觀,希望最終的結果只有會員ID號以及相應的推薦商品,於是進行過濾。如圖3-9所示。
圖3-9 過濾不需要的欄位
過濾之後,再使用選擇節點,使用@NULL(FIELD)函式:若當前觀測在變數FIELD上取系統缺失值$null$,則返回為真,否則返回為0。設定和結果分別如圖3-10和3-11所示。
圖3-10 設定選擇節點的函式
圖3-11 經過選擇過濾後的輸出結果
3.3完整資料流
圖3-12 完整資料流
至此,對於商品購買資料所做的關聯分析全部完成了,下面將會根據得到的結果,向商家提供一些建議。
第四章 結論及建議
4.1對商家提的對策和建議
優化商品佈局,通過網路圖,能夠分析出罐裝蔬菜、啤酒、凍肉很容易被同時購買,甜食和葡萄酒很容易被同時購買,蔬菜水果和魚很容易被同時購買,在超市進行商品排列時,可以把這些商品擺放得靠近一些,或者在同一通道內。既方便購買,又可能增加衝動購物。
設計促銷方案:依據商品關聯分析的結果,將關聯性強的商品可以設計捆綁促銷,如同時購買這兩種商品,可以優惠5%等。
快速商品推薦:顧客購買完商品後,通過關聯分析結果,可以推測該顧客還可能購買的商品,從而向他進行推薦。
4.2針對此次分析目的的結論
根據此次分析的結果可以看到,顧客在超市購物的時候,確確實實是存在購買某種商品後更容易購買其他商品的相關性,超市商家可以在這方面加強服務方式,以達到多賣商品的目的。
4.3其他發現
在做實驗的過程中,雖然有PPT可以參考,但是也有額外的小問題。其一,修改會員ID為名義型時,要把整個流屬性裡面限制名義型最大數的選項勾選掉。其二,在設為標誌的那一步,“F”後面在做的的時候多了一個空格,導致後面運算模型的時候運算失敗,把空格刪除後問題得到解決。