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