用户购物行为分析
淘寶用戶行為分析
- (一)項(xiàng)目數(shù)據(jù)來源
- (二)分析角度
- (三)分析正文
- 提出問題
- 理解數(shù)據(jù)
- 數(shù)據(jù)清洗
- (四)模型構(gòu)建
- 1. 用戶購物情況整體分析
- 2 用戶行為時(shí)間維度分析
- 3 商品銷售情況分析
- 4 用戶行為路徑分析
- 5 參照RFM模型,對(duì)用戶進(jìn)行分類找出有價(jià)值的用戶
- 6 聚類分析
- (五)結(jié)論及建議
(一)項(xiàng)目數(shù)據(jù)來源
項(xiàng)目數(shù)據(jù)來源于: https://tianchi.aliyun.com/dataset/dataDetail?dataId=649&userId=1。
用戶在網(wǎng)上進(jìn)行購物時(shí),會(huì)產(chǎn)生一系列的數(shù)據(jù),這些數(shù)據(jù)綜合起來既反映了用戶的行為偏好,也反映了商品的受歡迎程度,同時(shí)反映了在用戶和商品的交互過程中所產(chǎn)生的問題。
旨在通過此項(xiàng)目來學(xué)習(xí)電商數(shù)據(jù)的主要分析方法和分析思路,主要使用的工具為Mysql。
(二)分析角度
首先分為兩個(gè)角度:用戶和商品
用戶角度主要從時(shí)間維度來分析用戶的各種行為情況以及之間的關(guān)系:
商品角度主要銷量維度分析商品的賣點(diǎn)和銷售潛力
(三)分析正文
分析步驟如下:
提出問題- -理解數(shù)據(jù)- -數(shù)據(jù)清洗- -構(gòu)建模型- -分析結(jié)論
提出問題
根據(jù)之前的維度,有以下幾個(gè)分析角度:
? 用戶最活躍的日期及時(shí)段
? 用戶對(duì)商品有哪些購買偏好
? 用戶行為間的轉(zhuǎn)化情況
? 用戶分類,哪些是有價(jià)值的用戶
? 同一商品復(fù)購率和回購率排名
理解數(shù)據(jù)
本數(shù)據(jù)集包含了2017年11月25日至2017年12月3日之間,有行為的約一百萬隨機(jī)用戶的所有行為(行為包括點(diǎn)擊、購買、加購、喜歡)
用戶行為類型又分為四種:
pv:商品詳情頁pv,等價(jià)于點(diǎn)擊
buy:商品購買
cart:商品加入購物車
fav:收藏
數(shù)據(jù)清洗
包含數(shù)據(jù)導(dǎo)入(采用Navicat)、缺失值處理、一致化處理、異常值處理(2017.11.25到2017.12.3日內(nèi)的數(shù)據(jù))
為了之后的分析方便,在表中添加字段“datetime”“times”“dates”“hours”“weekday”“week”,分別存放時(shí)間戳轉(zhuǎn)化的日期時(shí)間,時(shí)間,日期,小時(shí),星期幾,第幾周。表達(dá)式為:
4. 異常值處理
因?yàn)樵摂?shù)據(jù)集為2017年11月25日至2017年12月3日之間產(chǎn)生的用戶行為,因此查詢不在此區(qū)間的數(shù)據(jù),共1944條,為異常值數(shù)據(jù)點(diǎn):
相對(duì)于總數(shù)據(jù)量3835330來說,占全體數(shù)據(jù)量的0.05%,可認(rèn)為對(duì)總樣本影響很小,可以直接刪去。
(四)模型構(gòu)建
1. 用戶購物情況整體分析
1.1 總的點(diǎn)擊量查詢,結(jié)果為3431905
SELECT count(*) FROM userbehavior WHERE behavior_type = 'pv';1.2 總的購買次數(shù)查詢,結(jié)果為76707
SELECT count(*) FROM userbehavior WHERE behavior_type = 'buy';1.3 總的加入購物車數(shù)查詢,結(jié)果為213634
SELECT count(*) FROM userbehavior WHERE behavior_type = 'cart';1.4 總的收藏量查詢,結(jié)果為111140
SELECT count(*) FROM userbehavior WHERE behavior_type = 'fav';2 用戶行為時(shí)間維度分析
2.1 點(diǎn)擊量時(shí)間段分布(每日訪客)查詢
SELECT dates,count(*) as 訪客 FROM userbehavior WHERE behavior_type = 'pv' GROUP BY dates;
查詢?nèi)掌诤蟀l(fā)現(xiàn),12月2日和12月3日為周六周日,訪客增多符合預(yù)期。但對(duì)比11月25日和11月26日(同樣是周末),雖然訪問量比工作日略有提升,但并不明顯,需要深入挖掘具體原因。
2.2 各個(gè)時(shí)段訪客量
SELECT hours,count(*) as 訪客 FROM userbehavior WHERE behavior_type = 'pv' GROUP BY hours ORDER BY hours asc;
可以看出,可大致分為4個(gè)等級(jí):
2.3 各個(gè)時(shí)段成交量查詢
SELECT hours,count(*) as 成交量 FROM userbehavior WHERE behavior_type = 'buy' GROUP BY hours ORDER BY hours asc;
與各個(gè)時(shí)段的訪問量不同,晚上(20:00-23:00)的購買量與白天(09:00-18:00)相比并沒有顯著的提升。認(rèn)為是晚上下班后休閑時(shí)客戶的瀏覽行為相比較于購買行為較白天增多,并且白天有工作購買的需求。
2.4對(duì)工作日白天夜間購買量進(jìn)行查詢
進(jìn)一步,我們對(duì)工作日白天的購買量進(jìn)行查詢驗(yàn)證猜想:
由此發(fā)現(xiàn),發(fā)現(xiàn),工作日白天消費(fèi)較多,占到一半以上,符合之前2.3的推測(cè)。
以上分析可以看出:
3 商品銷售情況分析
3.1 商品交易數(shù)總量,結(jié)果為56726
SELECTcount( DISTINCT item_id ) AS 交易商品數(shù) FROMuserbehavior WHEREbehavior_type = 'buy';3.2 商品每日成交量查詢
SELECTdates,COUNT( behavior_type ) AS 成交量 FROMuserbehavior WHEREbehavior_type = 'buy' GROUP BYdates;
可以看出,2017/11/25-2017/12/2之間的每日成交量變化幅度并不是很大,12/2與12/3兩個(gè)周末成交量有小幅度上漲,推測(cè)是這段時(shí)間處于雙11 與雙12之間,沒有特別大的購物活動(dòng),因而變化不明顯。
3.3 商品被購買次數(shù)排名查詢(取前20名)
SELECTa.* FROM(SELECTu.item_id,COUNT( u.behavior_type ) AS 被購買次數(shù) FROMuserbehavior AS u WHEREu.behavior_type = 'buy' GROUP BYu.item_id ORDER BY被購買次數(shù) DESC ) AS a LIMIT 20;
可以根據(jù)商品被購買次數(shù)后續(xù)進(jìn)行商品受歡迎程度對(duì)比(同一商品大類下),分析受歡迎商品的共同點(diǎn)。
4 用戶行為路徑分析
4.1 各類用戶行為人數(shù)查詢
SELECTbehavior_type,count( behavior_type ) AS 人數(shù) FROMuserbehavior GROUP BYbehavior_type;
4.2 用戶行為路徑分析
因?yàn)槲粗脩羰詹睾图尤胭徫镘嚨年P(guān)系,所以暫定兩者平行,分為
①點(diǎn)擊→收藏→購買
②點(diǎn)擊→加入購物車→購買
③點(diǎn)擊→購買
這三條行為路徑
第一條路經(jīng)
①收藏轉(zhuǎn)化率=添加收藏后購買的用戶數(shù)/添加收藏的用戶數(shù)
點(diǎn)擊用戶數(shù)為:37223
收藏用戶數(shù)為:14943
收藏后加購用戶數(shù)為:3233
收藏轉(zhuǎn)化率為:3233/14943 = 21.6%
而瀏覽收藏轉(zhuǎn)化率為:14943/37223 = 40.1%
第二條路經(jīng)
②購物車轉(zhuǎn)化率=加入購物車后購買的用戶數(shù)/加入購物車的用戶數(shù)
點(diǎn)擊用戶數(shù)為:37223
添加購物車用戶數(shù)為:28122
添加購物車后購買的用戶數(shù)為:8503
購物車轉(zhuǎn)化率:8503/28122 = 30.2%
而瀏覽加購物車轉(zhuǎn)化率為:28122/37223 = 75.6%
對(duì)比以上兩種路徑可以看出,用戶點(diǎn)擊到加入購物車的轉(zhuǎn)化率很高,達(dá)到了75.6%,說明大部分用戶點(diǎn)擊瀏覽后有購買意向,因此選擇加入購物車,但是只有30%的加入購物車商品立即實(shí)現(xiàn)了購買,推測(cè)產(chǎn)生此現(xiàn)象的原因是:
同時(shí)發(fā)現(xiàn),用戶點(diǎn)擊到加入購物車的轉(zhuǎn)化率(75.6%)遠(yuǎn)高于點(diǎn)擊到收藏的轉(zhuǎn)化率(40.1%),說明用戶有購買意向時(shí)更傾向于加入購物車,認(rèn)為原因是因?yàn)?strong>購物車方便下單購買,有直接付款的選項(xiàng),而收藏需要重新進(jìn)入商品頁面選擇,造成用戶的流失。
5 參照RFM模型,對(duì)用戶進(jìn)行分類找出有價(jià)值的用戶
5.1 顧客復(fù)購率查詢
a.總的產(chǎn)生購買行為的用戶數(shù)查詢,結(jié)果為:25400
SELECTCOUNT( DISTINCT user_id ) AS 購買人數(shù) FROMuserbehavior WHEREbehavior_type = 'buy';b.購買兩次以上的用戶數(shù)查詢,結(jié)果為:16712
SELECTCOUNT( * ) AS 購買人數(shù) FROM( SELECT COUNT( u.user_id ) AS 用戶購買次數(shù) FROM userbehavior AS u WHERE behavior_type = 'buy' GROUP BY u.user_id ) AS userbuy WHEREuserbuy.用戶購買次數(shù) > 1;因此復(fù)購率 = 16712/25400*100% = 65.8%
5.2 重復(fù)購買次數(shù)最多的用戶查詢(前20名)
SELECTuser_id,count( user_id ) AS 購買次數(shù) FROMuserbehavior WHEREbehavior_type = 'buy' GROUP BYuser_id ORDER BY購買次數(shù) DESC LIMIT 20;
這些用戶在9天里消費(fèi)了至少30次,上至84次,屬于高頻率消費(fèi)客戶,需要特別標(biāo)注。
5.3 RFM模型
RFM模型是衡量客戶價(jià)值和客戶創(chuàng)利能力的重要工具和手段。在眾多的客戶關(guān)系管理(CRM)的分析模式中,RFM模型是被廣泛提到的。該機(jī)械模型通過一個(gè)客戶的最近交易行為(Recency)、交易頻率(Frequency)以及交易金額(Monetary)3項(xiàng)指標(biāo)來描述該客戶的價(jià)值狀況。
最近一次消費(fèi) (Recency):最近一次消費(fèi)意指上一次購買的時(shí)候,它反映與顧客建立長(zhǎng)期的關(guān)系,讓顧客持續(xù)保持往來,并贏得他們的忠誠度的可能性。
消費(fèi)頻率 (Frequency):消費(fèi)頻率是顧客在限定的期間內(nèi)所購買的次數(shù)。它直接反映了顧客對(duì)商品的忠誠度。
消費(fèi)金額 (Monetary):指的是一段時(shí)間內(nèi)的消費(fèi)金額。它反映了顧客的消費(fèi)能力。(因?yàn)榇藬?shù)據(jù)不涉及商品金額,因此只對(duì)R和F進(jìn)行分析)
R(最近一次消費(fèi))查詢:
因?yàn)閿?shù)據(jù)集是從11月25日起始,因此可以把距離11月25日的時(shí)間作為R值標(biāo)準(zhǔn),距離越久,得分越高,最近一次消費(fèi)時(shí)間越近。
F(消費(fèi)頻率)查詢:
從上文復(fù)購率部分可知,購買次數(shù)最多的用戶購買次數(shù)為84次,與R檔位對(duì)應(yīng),從1-84劃分為4檔:[1-21],[22-42],[43-63],[64-84]分別對(duì)應(yīng)1,2,3,4分。
| 低 | 低 | 重要挽留以及一般挽留客戶 |
| 低 | 高 | 重要保持以及一般保持客戶 |
| 高 | 低 | 重要發(fā)展以及一般發(fā)展客戶 |
| 高 | 高 | 重要價(jià)值以及一般價(jià)值客戶 |
求得R平均值為:2.98
求得F平均值為:1.00
至此,我們就可以對(duì)所有的購買用戶進(jìn)行畫像分類。
順便,為了了解各個(gè)類型用戶數(shù)量情況,可以對(duì)此進(jìn)行查詢:
| 價(jià)值客戶 | 225 |
| 保持客戶 | 17 |
| 發(fā)展客戶 | 17154 |
| 挽留客戶 | 8004 |
可以看出,價(jià)值客戶與保持客戶較少,僅占比0.95%,因此需要及時(shí)針對(duì)不同類型客戶做出相應(yīng)的調(diào)整計(jì)劃:
- 對(duì)于價(jià)值客戶,他們是最優(yōu)質(zhì)的用戶,需要重點(diǎn)關(guān)注并保持,應(yīng)該提高滿意度,增加留存;
- 對(duì)于保持客戶,他們最近有購買,但購買頻率不高,可以通過活動(dòng)等提高其購買頻率;
- 對(duì)于發(fā)展客戶,他們雖然最近沒有購買,但以往購買頻率高,可以做觸達(dá),以防止流失;
- 對(duì)于挽留客戶,他們最近沒有購買,以往購買頻率也不高,特別容易流失,所以應(yīng)該贈(zèng)送優(yōu)惠券或推送活動(dòng)信息,喚醒購買意愿。
6 聚類分析
最后,借助python中的sklearn庫對(duì)用戶進(jìn)行行為聚類分析
#導(dǎo)入所需庫 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns from sklearn.cluster import KMeans from sklearn.preprocessing import StandardScaler#將上文中使用Mysql處理過的數(shù)據(jù)導(dǎo)出,并導(dǎo)入jupyter notebook df = pd.read_csv("C:/Users/Y/Desktop/淘寶用戶行為/userbehavior1.csv") #實(shí)例化Kmeans聚類器 estimator = KMeans(n_clusters=3,tol=0.001,init = 'k-means++')data_behavior = df.groupby(['user_id','behavior_type']).count()['item_id'].unstack().reset_index() data_behavior = data_behavior.fillna(0)#添加時(shí)間特征 data_daily = df.groupby(['user_id','times']).count()['item_id'].unstack().reset_index() data_daily = data_daily.fillna(0) estimator.fit(data_daily.iloc[:,1:]) y_daily = estimator.labels_ data_behavior['daily_feature'] = y_daily#添加星期特征 data_week = df.groupby(['user_id','weekday']).count()['item_id'].unstack().reset_index() data_week = data_week.fillna(0) estimator.fit(data_week.iloc[:,1:]) y_week = estimator.labels_ data_behavior['weekday_feature'] = y_week #數(shù)據(jù)查看 data_behavior.head() #整理數(shù)據(jù)特征后聚類 estimator1 = KMeans(n_clusters = 6,tol = 0.001,init = 'k-means++') estimator1.fit(data_behavior1.iloc[:,1:]) data_behavior['cluster'] = estimator1.labels_ merge_data = pd.merge(df,data_behavior, on='user_id',how='left') merge_data = merge_data[['user_id','item_id','behavior_type','times','buytimes','pvtimes','carttimes','favtimes','cluster']]ax = sns.countplot(x="cluster", hue="behavior_type", data=merge_data2)
這是6類的用戶分布情況,因點(diǎn)擊量與其他指標(biāo)數(shù)量差距過大,去除點(diǎn)擊量后重試
可以看出,不同類型的用戶之間的購物習(xí)慣各不相同,有的喜歡加入購物車,有的喜歡收藏,有的喜歡直接購買。
第一類和第5類人數(shù)最多,兩者之間的用戶行為模式也比較相似。
(五)結(jié)論及建議
總結(jié)
- 上一篇: 可汗学院统计学 task4
- 下一篇: coreldraw插件编写