电商用户行为分析与挖掘(MYSQL数据分析+SPSS构建RFM模型)
前言
毫不夸張的說在中國除了嬰幼兒及七八十以上的老年人,都有過網購經歷。電商公司就如雨后春筍般迅速發展。了解用戶的網購行為,有助于商家定品類,定營銷方案等。利用數據分析與挖掘,爭取做到比顧客自己還了解TA自己。
 
文章目錄
- 前言
- 一、背景
- Ⅰ 數據來源
- Ⅱ 數據背景
- Ⅲ 分析目的
 
- 二、探索性分析
- Ⅰ 數據導入
- Ⅱ 數據類型
- Ⅲ 描述性統計
- 1、缺失值處理
- 2、異常值處理
- 3、重復值處理
 
 
- 三、數據分析
- Ⅰ 商品銷售規律
- a、時間
- b、日期
- c、商品品類
- d、國家
 
- Ⅱ 用戶行為習慣
- a、購買排行
- b、退貨排行
 
- Ⅲ 數據挖掘
- RFM模型
 
 
一、背景
Ⅰ 數據來源
該數據集來自The UCI Machine Learning Repository,為了更貼合我的分析目的,我自己在這個基礎進行了一些修改。對不需要的數據進行了刪除,添加了一些需要的數據。
Ⅱ 數據背景
該數據集是英國某電商在2010-12-01到2011-12-09的全部在線銷售數據,采用的是我進行整改后的數據,包含541904個樣本和九個特征值,分別是發票編號,商品品類,購買日期,購買時間,數量,單價,總價,客戶編號,國家。發票編號前面有c的訂單為退貨,數據為負的也代表退貨。
Ⅲ 分析目的
二、探索性分析
Ⅰ 數據導入
一、創建數據表
CREATE TABLE `users` (`InvoiceNo` varchar(30) DEFAULT NULL,`GOODS` varchar(30) DEFAULT NULL,`Dates` date DEFAULT NULL,`Times` time DEFAULT NULL,`Quantity` int(11) DEFAULT NULL,`UnitPrice` float DEFAULT NULL,`Total` float DEFAULT NULL,`CustomerID` varchar(30) DEFAULT NULL,`Country` varchar(30) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8二、插入數據
LOAD DATA INFILE 'D:UsersBehavior.csv' INTO TABLE users CHARACTER SET utf8 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\n' ignore 1 lines;Ⅱ 數據類型
DESCRIBE users; -- 或者 DESC users; -- 或者 SHOW COLUMNS FROM users;Ⅲ 描述性統計
a.購買
SELECT MIN(DISTINCT Quantity)AS 最小值,MAX(DISTINCT Quantity)AS 最大值,AVG(Quantity)AS 平均值 FROM users WHERE Quantity>0 UNION SELECT MIN(DISTINCT total),MAX(DISTINCT total),AVG(total)FROM users WHERE total>0 UNION SELECT MIN(DISTINCT unitprice),MAX(DISTINCT unitprice),AVG(unitprice) FROM users;
 b.退貨
## Ⅳ 數據預處理
1、缺失值處理
 不存在缺失值,不需要進行額外處理
2、異常值處理
a、價格,看是否有負數
SELECT unitprice FROM users WHERE unitprice<0;
 只有兩個為負數的價格,直接刪除。
b、時間,看有沒有超過時間范圍的
SELECT MIN(dates),MAX(dates) FROM users;
 時間范圍正確,數據較干凈。
3、重復值處理
由于在這次數據中,一張發票編號可能對應多種商品,所以允許重復值的存在。沒有設立“主鍵”。
三、數據分析
Ⅰ 商品銷售規律
a、時間
1)哪個時間段購買最多,哪個最少。
SELECT times,COUNT(InvoiceNo)FROM users WHERE Quantity>0 GROUP BY times ORDER BY COUNT(invoiceno)DESC;
 結果顯示,在下午十二點到四點左右是訂單最多的時候,早上六七點和晚上六七點是訂單最少的時候,可根據這個時間規律合理安排客服人員,快速處理訂單。
 2)哪個時間段退貨最多,哪個最少。
 結果顯示,在上午十二點到下午兩點左右是退貨訂單最多的時候,早上六點到八點和晚上六七點是退貨訂單最少的時候,可根據這個時間規律合理安排客服人員,快速處理訂單。
 綜合來說就是上午應該讓處理退貨能力強的客服值班,爭取讓退貨訂單少一點;下午則促成訂單能力強客服值班,最大可能促成多的訂單。
b、日期
1)購買
SELECT dates,SUM(Quantity)AS 日購買量,SUM(total)AS 日購買金額 FROM users WHERE Quantity>0 GROUP BY dates ORDER BY SUM(quantity)DESC;
 觀察結果發現,在第三第四季度銷量遙遙領先,推測可能是在兩個季度促銷力度較大,也有可能是商品屬性決定。
 2)退貨
 基本上退貨與售出數量成正比關系,但是前面數據存在幾個異常數據。重點觀察這幾個數據找出原因,看是偶然原因,還是必然。找到造成其異常的本質,從根源解決問題。
c、商品品類
1)購買訂單
SELECT goods,SUM(Quantity)FROM users WHERE Quantity>0 GROUP BY goods ORDER BY SUM(Quantity)DESC;
 A類賣出最多,在對庫存進行管理的時候,A類產品可多進一些,根據售賣規律找到庫存臨界點,一到那個點就趕快進貨。
 2)退貨訂單
 B類產品退貨最多,但是只從數據其他品類也相差不大,聯系實際售出則會發現B、E的退貨率較高,可進行訂單跟蹤為什么會有這么高的退貨率。是商品質量不行,還是市場不受歡迎等原因。
d、國家
1)售出
SELECT country,SUM(Quantity),SUM(total)FROM users WHERE Quantity>0 GROUP BY Country ORDER BY SUM(total)DESC;
 
 排名前十和后十,差距較明顯,呈現一個兩極趨勢,可研究前十的剩余市場價值,及后十為什么銷售只有這么一點,為什么只有這么一點銷售額,比如廣告營銷不到位、本身市場已經飽和。
Ⅱ 用戶行為習慣
a、購買排行
SELECT customerid,country,SUM(Quantity),SUM(total)FROM users WHERE Quantity>0 GROUP BY customerid ORDER BY SUM(total)DESC;
 符合二八定律,即20%的客戶貢獻了80%的銷售額。采用多項會員優惠措施維護好老客戶,贈券等開發新客戶。
b、退貨排行
SELECT customerid,country,SUM(Quantity),SUM(total)FROM users WHERE Quantity<0 GROUP BY customerid ORDER BY SUM(total);
 對比來看,購買多的客戶也可能退貨多,重點關注這些客戶為什么退貨,做好售后服務,增強黏性。
Ⅲ 數據挖掘
RFM模型
1)利用SPSS中針對營銷行為的直銷模塊完成RFM分析,將數據庫中的users表導入到SPSS中。
 
 2)選擇【直銷】【選擇方法】,在【直銷】對話框中,單擊【幫助標識我的最佳聯系人(RFM分析)】,然后單擊【繼續】按鈕。【RFM分析:數據格式】對話框中選擇【交易數據】。在【交易數據RFM分析】的【變量】選項卡中,將變量移動到對應的位置,如圖所示。
 
 3)在【輸出】選項卡中,勾選全部選項。然后點擊【確認】。隨后生成了如下的數據文件。
 
 輸出結果中“RFM分箱計數”圖,顯示了分箱分布。每個條形都表示被賦予每個組合RFM得分的客戶數。希望獲得相當均勻的分布,即所有(或大多數)條形的高度大致相同,但其實也會產生一定程度的偏差。從分箱結果來看,分箱的頻數分布相對均勻。
 
 觀察值處理摘要。對2305個客戶進行分析,沒有缺失值。
 
 RFM交叉表。是將“RFM分箱計數”圖,以表格的形式展示出來。
 
 RFM熱圖,用顏色深淺表示交易金額的大小。可以發現,隨著最后一次交易間隔的得分和交易總次數的得分的分值越大,顏色越深,即右側的顏色比左側深,上方的顏色比下方深,說明客戶最近一次交易時間間隔越近,交易次數越多,其平均交易金額越多。
 
 “RFM分布直方圖”。顯示了最近一次交易時間、交易總次數和交易金額的頻率分布,以此來判斷各自的客戶人群分布的情況,橫軸的排列順序較小的值在左邊,較大的在右邊,頻率和貨幣兩項的橫坐標是對數刻度。
 
 “RFM散點圖”,是最近一次交易時間、交易總次數和交易金額之間的散點圖。通過散點圖可以清晰、直觀地看到三個分析指標兩兩之間的關系。可以看出,交易總次數和交易金額存在一定程度上的正相關性,而最近一次交易時間和另外兩個分析指標之間的存在較為明顯的正相關性,但相關性較弱。
 
 對評分進行描述統計。結果如下表所示。更多關注的是均值。
 
 將每個客戶的R_S,F_S,M_S與均值比較,如果低于均值就定義為“低”,如果高于均值就定義為“高”。
 
 在【轉換】菜單中的【重新編碼為不同變量】,分別將最后一次交易間隔的得分,交易總次數的得分,交易總金額的得分的值按“高”與“低”確定新的變量,“高”用2表示,“低”用1表示。
 【轉換】菜單中的【計算變量】:
 (1)單擊“轉換”菜單,選擇“計算變量”,彈出“計算變量”對話框,在“目標變量”下的方框中輸入“客戶分類”,在右側的“數字表達式”下的方框中輸入“1”,先生成“客戶分類=1”的數據。
 (2)單擊左下方的“如果”,彈出“計算變量:if個案”對話框,選擇“在個案滿足條件時包括”項。
 (3)在右側的表達式中輸入“R_S分類=2&F_S分類=2&M_S分類=2”,就是上面表格的三個分類定義,輸入完成之后,單擊繼續按鈕,返回,單擊“確定”按鈕,這樣滿足條件的個案,它的“客戶分類”就是1了,然后重復上面的步驟,知道8個分類全部完成。
 
 在【數據】菜單中的【定義變量屬性】中,將1-8分別定義為8種客戶類型。
 
 
 圖形圖表構造器
 
 
 
 重點挽留客戶及潛在客戶、一般保持客戶、一般價值客戶占比達到70%。說明與客戶之間黏性不足,可開發的客戶價值還很高,需要加大運營力度提高銷售額。
 
總結
以上是生活随笔為你收集整理的电商用户行为分析与挖掘(MYSQL数据分析+SPSS构建RFM模型)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: linux python命令无反应_Py
- 下一篇: 离散系数的计算公式_如何求不同变量之间的
