数据分析实战项目:SQL分析淘宝用户行为
文章目錄
- 一、項目背景及目的
- 1.1 項目背景
- 1.2 項目目的
- 1.3 數據集來源與介紹
- 二、數據導入
- 2.1 圖形界面工具導入
- 2.2 以系統命令行導入
- 三、數據清洗
- 3.1 刪除重復值
- 3.2 查看缺失值
- 3.3 時間格式轉換
- 3.4 過濾異常值
- 四、數據分析
- 4.1 基于用戶行為轉化漏斗模型分析用戶行為
- 4.1.1 常見電商指標分析
- 4.1.1.1 UV、PV、UV/PV
- 4.1.1.2 復購率
- 4.1.1.3 跳失率
- 4.1.2 用戶行為轉化漏斗模型分析
- 4.2 從時間維度分析用戶行為
- 4.2.1 每天的用戶行為分析
- 4.2.2 每時的用戶行為分析
- 4.3 從商品維度分析用戶行為
- 4.3.1 商品排行榜分析
- 4.3.1.1 商品銷量排行榜前10
- 4.3.1.2 商品瀏覽量排行榜前10
- 4.3.2 商品四象限劃分
- 4.3.4 “二八定律”or“長尾理論”分析
- 4.4 基于RFM用戶分層模型分析用戶行為
- 4.4.1 基于RFM模型的用戶分層
- 4.4.1.1 R維度分析
- 4.4.1.2 F 維度分析
- 4.4.1.3 用戶分層
- 4.4.2 高價值用戶行為分析
- 五、結論與建議
一、項目背景及目的
1.1 項目背景
移動互聯網企業從粗放式到精細化運營管理過程中,需要結合市場、渠道、用戶行為等數據分析,對用戶開展有針對性的運營活動,提供個性化、差異化的運營策略,以實現運營業務指標。本項目利用sql對淘寶用戶行為數據進行分析,通過用戶行為分析業務問題,提供針對性的運營策略。
1.2 項目目的
本次分析的目的是想通過對淘寶用戶行為數據分析,為以下問題提供解釋和改進建議:
1.分析用戶使用APP過程中的常見電商分析指標,建立用戶行為轉化漏斗模型,確定各個環節的流失率,找到需要改進的環節
2.研究用戶在不同時間尺度下的行為規律,找到用戶在不同時間周期下的活躍規律,在用戶活躍時間點推出相應營銷策略
3.找到用戶對不同種類商品的偏好,找到針對不同商品的營銷策略
4.找出最具價值的核心付費用戶群,對這部分用戶的行為進行分析
1.3 數據集來源與介紹
- 數據集來自阿里云天池:數據鏈接
- 本數據集包含了2017年11月25日至2017年12月3日之間,有行為的約一百萬隨機用戶的所有行為(行為包括點擊、購買、加購、喜歡)。數據集的組織形式和MovieLens-20M類似,即數據集的每一行表示一條用戶行為,由用戶ID、商品ID、商品類目ID、行為類型和時間戳組成,并以逗號分隔。關于數據集中每一列的詳細描述如下:
| 列名稱 | 說明 |
| 用戶ID | 整數類型,序列化后的用戶ID |
| 商品ID | 整數類型,序列化后的商品ID |
| 商品類目ID | 整數類型,序列化后的商品所屬類目ID |
| 行為類型 | 字符串,枚舉類型,包括(‘pv’, ‘buy’, ‘cart’, ‘fav’) |
| 時間戳 | 行為發生的時間戳 |
| 行為類型 | 說明 |
| pv | 商品詳情頁pv,等價于點擊 |
| buy | 商品購買 |
| cart | 將商品加入購物車 |
| fav | 收藏商品 |
二、數據導入
兩種導入方式:
- 1、使用圖形界面工具導入,例如Navicat(操作簡單)
- 2、cmd中以系統命令行導入(速度更快)
2.1 圖形界面工具導入
新建數據庫
導入數據表
選擇導入前1000000行數據
需要注意源數據集中不包含字段名稱行,導入時字段名行設置為0,第一個數據行設置為1。
設置字段類型
導入完成,耗時1分21秒
修改字段名
- 注意:源數據集中,時間存儲格式是從新紀元開始后的秒數,需要進行進行數據格式轉換。
2.2 以系統命令行導入
使用命令行連接MySQL,并進入到taobao數據庫
創建新表user
載入源數據
- 速度更快,導入3835331行數據,僅用27.88秒,但是相比于圖形界面工具操作更復雜。
三、數據清洗
3.1 刪除重復值
# 統計重復值 SELECT * FROM userbehavior GROUP BY user_id,item,category,time HAVING count(user_id)>1;
從查詢結果可知,數據中不存在重復記錄。
3.2 查看缺失值
# 統計缺失值 SELECT count(user_id),count(item),count(category),count(behavior),count(time) FROM userbehavior;
從查詢結果來看,不存在缺失值,數據質量高。
3.3 時間格式轉換
# 新增date、hour時間字段 ALTER TABLE userbehavior ADD date VARCHAR(20), ADD hour VARCHAR(20); # 時間格式轉換 UPDATE userbehavior SET date = FROM_UNIXTIME(time,"%Y-%m-%d"); UPDATE userbehavior SET hour = FROM_UNIXTIME(time,"%H"); UPDATE userbehavior SET time = FROM_UNIXTIME(time); # 調整一下time字段數據的樣式 UPDATE userbehavior SET time = SUBSTRING_INDEX(time,'.',1);3.4 過濾異常值
由于數據集時間范圍為2017-11-25至2017-12-3,因此需要對不在該時間范圍內的異常數據進行過濾。
# 篩選異常數據 SELECT * FROM userbehavior WHERE date < '2017-11-25' or date > '2017-12-03'; # 過濾異常數據 DELETE FROM userbehavior WHERE date < '2017-11-25' or date > '2017-12-03';
總共過濾掉470條異常記錄。
四、數據分析
- 分析框架
4.1 基于用戶行為轉化漏斗模型分析用戶行為
4.1.1 常見電商指標分析
4.1.1.1 UV、PV、UV/PV
# UV、PV、UV/PV指標統計 SELECT count(DISTINCT user_id) as UV,sum(case when behavior='pv' then 1 else 0 end) as PV,sum(case when behavior='buy' then 1 else 0 end) as Buy,sum(case when behavior='cart' then 1 else 0 end) as Cart,sum(case when behavior='fav' then 1 else 0 end) as Fav,sum(case when behavior='pv' then 1 else 0 end)/count(DISTINCT user_id) as 'PV/UV' FROM userbehavior;
訪問用戶總數(UV):9739
頁面總訪問量(PV):895636
9天時間內平均每人頁面訪問量(UV/PV):約為92次
- tips:該段SQL代碼的功能類似于pandas中get_dummies()函數,構建獨熱編碼,再利用count()函數進行字段的求和。
4.1.1.2 復購率
- 復購率定義:在某時間窗口內重復消費用戶(消費兩次及以上的用戶)在總消費用戶中占比(按天非去重)。復購率與回購率的區別
從結果來看,復購率高達66.21%,反映淘寶的用戶忠誠度較高。
4.1.1.3 跳失率
- 跳失率定義:僅僅訪問了單個頁面的用戶占全部訪問用戶的百分比,或者指從首頁離開網站的用戶占所有訪問用戶的百分比。
- 跳出率可以反映用戶對APP\網站內容的認可程度,或者說網站\APP是否對用戶有吸引力。網站\APP的內容是否能夠對用戶有所幫助留住用戶也直接可以在跳出率中看出來,所以跳出率是衡量網站\APP內容質量的重要標準。
統計結果表明,9天時間內,沒有一名用戶僅瀏覽一次頁面就離開淘寶,跳失率為0。反映出商品或者商品詳情頁的內容對于用戶具有足夠的吸引力,讓用戶在淘寶駐留。
4.1.2 用戶行為轉化漏斗模型分析
漏斗分析模型已經廣泛應用于各行業的數據分析工作中,用以評估總體轉化率、各個環節的轉化率,以科學評估促銷專題活動效果等,通過與其他數據分析模型結合進行深度用戶行為分析,從而找到用戶流失的原因,以提升用戶量、活躍度、留存率,并提升數據分析與決策的科學性等。
- 知識點:電商行業轉化率算法
- 常用漏斗模型:首頁—商品詳情頁—加入購物車—提交訂單—支付訂單
- 本數據集只包含商品詳情頁(pv)、加入購物車(cart)、支付訂單(buy)數據,因此將漏斗模型簡化為:商品詳情頁—加入購物車—支付訂單。
用戶總行為(PV)的轉化漏斗
用戶總行為轉化漏斗圖:
獨立訪客(UV)的轉化漏斗
綜合用戶總行為轉化漏斗圖與獨立訪客轉化漏斗圖,可以發現:
- (1)從瀏覽商品詳情頁PV到有購買意向只有6.19%的轉化率,但從瀏覽商品詳情頁UV到有購買意向有75.46%的轉化率,說明用戶在購買商品前會大量的去點擊瀏覽商品詳情頁(pv/buy=895636/20359=44次)進行對比篩選,這一環節是指標提升的重點環節,盡量做到精準推薦,減少用戶尋找信息的成本。
- (2)支付訂單用戶數占瀏覽商品詳情頁用戶數的68.92%,反映淘寶APP用戶購買轉化率較高,即淘寶APP上的商品能滿足絕大部分用戶的購買需求。
針對上述環節改善轉化率的建議:
- (1)優化電商平臺的搜索匹配度和推薦策略,主動根據用戶喜好推薦相關的商品,優化商品搜索的準確度和聚合能力,對搜索結果排序優先級進行優化。
- (2)在商品詳情頁的展示上突出用戶關注的重點信息,精簡信息流的呈現方式,減少用戶尋找信息的成本。
題外話:大家在使用淘寶購物時,有沒有過被店鋪利用優惠券引導收藏加購的經歷呢?為什么店鋪愿意花一定的代價去做這件事?原因就是淘寶收藏加購的好處意義是直接提升寶貝權重排名,人氣權重這個維度在搜索排序維度中權重占比有很大提升。淘寶收藏加購多了,會增加淘寶店鋪權重,從而提升寶貝排名,流量自然也就多了。
4.2 從時間維度分析用戶行為
4.2.1 每天的用戶行為分析
# 每天的用戶行為分析 SELECT date,count(DISTINCT user_id) as '每日用戶數',sum(case when behavior='pv' then 1 else 0 end) as '瀏覽數',sum(case when behavior='cart' then 1 else 0 end) as '加購數',sum(case when behavior='fav' then 1 else 0 end) as '收藏數',sum(case when behavior='buy' then 1 else 0 end) as '購買數' FROM userbehavior GROUP BY date;
每日用戶行為數據變化:
在2017年11月25日-2017年12月3日統計窗口內,11月25-26日與12月2-3日為周末。
通過每日用戶行為數據變化曲線可以分析:11月25日至12月1日,數據波動變化范圍很小,在12月2-3日(周末),各項數據指標明顯上漲,高于前7天的各項數據指標。由于在上一個周末(11月25-26日)的各項數據指標并未存在明顯漲幅,因此推測在12月2-3日數據指標上漲可能與淘寶雙12預熱活動相關。
4.2.2 每時的用戶行為分析
# 每時的用戶行為分析 SELECT hour,count(DISTINCT user_id) as '每時用戶數',sum(case when behavior='pv' then 1 else 0 end) as '瀏覽數',sum(case when behavior='cart' then 1 else 0 end) as '加購數',sum(case when behavior='fav' then 1 else 0 end) as '收藏數',sum(case when behavior='buy' then 1 else 0 end) as '購買數' FROM userbehavior GROUP BY hour;
每時用戶行為數據變化:
結果顯示:在凌晨2-5點左右,各項數據指標進入低谷期;在9-18點之間,數據呈現一個小高峰,波動變化較小;在20-23點間,各數據指標呈現一個大高峰,并且在21點左右達到每日數據最大峰值,數據的變化趨勢比較符合正常用戶的作息規律。在制定運營策略時,可以利用這個規律來進行創收,選擇在每天用戶最活躍的時間段推出各種網店直播、直播帶貨等互動營銷手段。
4.3 從商品維度分析用戶行為
關于“受歡迎”的商品,可以從銷量與瀏覽量兩個維度(用戶行為)去分析。但有的瀏覽量高的商品可能是因為被頁面或廣告等吸引而來,或者只是感興趣,用戶并不一定會購買;而銷量高的產品有可能是用戶真正需要的,搜索和點擊購買的目標也比較明確。因此需要同時結合銷量與瀏覽量兩個維度去進行分析。
4.3.1 商品排行榜分析
4.3.1.1 商品銷量排行榜前10
# 商品銷量排行榜前10 SELECT item, count(behavior) as '購買次數' FROM userbehavior WHERE behavior='buy' GROUP BY item ORDER BY count(behavior) DESC limit 10;
從商品銷量排行榜可以發現,在被下單的17565件商品中,單個商品銷量最多不超過17次,且僅有5件商品銷量超過10次,反映出在分析的數據集中,并沒有出現賣的比較火爆的商品。
4.3.1.2 商品瀏覽量排行榜前10
# 商品瀏覽量排行榜前10 SELECT item, count(behavior) as '瀏覽次數' FROM userbehavior WHERE behavior='pv' GROUP BY item ORDER BY count(behavior) DESC limit 10;
對銷量前10與瀏覽量前10的商品進行表連接:
結果顯示:商品銷量榜單與商品瀏覽量榜單之間對應性差(僅有2件商品銷量與瀏覽量同時進入前20榜單),反映瀏覽量高的商品其銷量不一定高,銷量高的商品其瀏覽量不一定高,因此需要同時結合銷量與瀏覽量兩個維度去進行分析。下面將以商品瀏覽量和銷量兩個維度指標來對商品進行四象限劃分,分析不同類型商品對應的用戶行為,并提出相應的改進措施。
4.3.2 商品四象限劃分
商品銷量與瀏覽量兩個維度的界限值分別選取3、20(需要根據實際業務場景來確定界限值),將商品按照銷量與瀏覽量劃分為四個象限:
第Ⅰ象限: 商品瀏覽量與銷量都高,說明商品購買轉化率高,屬于受用戶歡迎的商品。
- 改進措施:由于該象限內的商品有對應的市場,電商平臺應該重點進行推送,并且可以多做活動,吸引更多的潛在用戶。
第Ⅱ象限: 商品的銷量高,但是瀏覽量較低。產生這種現象可能有以下兩種原因(B端與C端兩個角度):一是 該象限內的商品可能屬于某類特定群體的剛需產品,這類特定群體搜索和瀏覽的目標比較明確;二是 該象限內的商品受眾廣,但是引流入口數量少。
- 改進措施:收集目前購買與瀏覽該象限內商品的用戶信息,分析用戶畫像,并結合商品的特點,核實產品是否存在某類特征明顯的消費群體。如果存在,則電商平臺可以集中向該類特征消費用戶進行定向推送、精準推送;如果不存在,則可以對該象限內商品的多做推廣,提高曝光率,并增加引流入口,流量上來了,銷量可能會有提升。
第Ⅲ象限: 商品的瀏覽量低,銷量也低。原因主要需要從B端進行分析:一是 該象限內商品的引流入口數量;二是 該象限內商品是否符合用戶的需求?對用戶的吸引力如何?
- 改進措施:需要根據具體原因對癥下藥。
第Ⅳ象限: 商品的瀏覽量高,但是銷量偏低,商品購買轉化率低。其原因也可以分為B/C端進行分析:在B端方面,是否是廣告的投放人群或者商品的推送目標有問題,并沒有獲取到對應商品的目標用戶;是否是商品的定價與定位的原因,價格太貴且不符合主流消費群體的胃口;是否是商品詳情頁的圖片、描述以及商品的評價較差;是否是客服的服務不到位、APP操作更新流程復雜等因素。在C端方面,用戶的消費能力可能會對商品的銷量有影響。
- 改進措施:需要根據具體原因對癥下藥。
4.3.4 “二八定律”or“長尾理論”分析
知識點:
- (1)互聯網+經濟下的——長尾模式
- (2)什么是互聯網長尾效應
按照商品銷量對商品分類統計:
# 按照商品銷量對商品進行分類統計 SELECT a.`購買次數`, count(a.item) as '商品量' FROM(SELECT item, count(behavior) as '購買次數'FROM userbehaviorWHERE behavior='buy'GROUP BY item ORDER BY count(behavior) DESC) a GROUP BY a.`購買次數` ORDER BY count(a.item) DESC;
繪制不同銷量對應商品量柱狀圖:
根據不同銷量對應商品量數據,在被下單的17565件商品中,只購買一次的商品有15536件,占下單總商品的88.45%,說明在互聯網環境下,以淘寶為代表的電商平臺,其商品售賣主要是依靠長尾商品的累計效應,并非爆款商品的帶動。
4.4 基于RFM用戶分層模型分析用戶行為
4.4.1 基于RFM模型的用戶分層
基于RFM模型進行用戶分層分析,由于數據集中不包含訂單金額,故本次分析中不考慮M維度,只分析R、F兩個維度,對兩個維度的指標進行分級打分,最終按照綜合得分對用戶分層。
4.4.1.1 R維度分析
計算用戶的最近消費時間間隔R值(R值越小,說明用戶最后消費時間越近),并對R值進行打分。根據R值結果,將其分為三個區間[0:2],[3:5]以及[6:8],分別賦予R_Score值3、2、1分。
# RFM模型——R維度分析 CREATE VIEW r_value as SELECT user_id, min(時間間隔) as R FROM(SELECT user_id, DATEDIFF('2017-12-03',date) as '時間間隔'FROM userbehaviorWHERE behavior='buy') a GROUP BY user_id; # 進行R維度打分 SELECT user_id, R,case when R BETWEEN 0 and 2 then 3when R BETWEEN 3 and 5 then 2else 1 end as R_Score FROM r_value
統計不同R_Score占比:
從R_Score占比中可以發現,超過半數用戶會在購物當天的后兩天內就再次購買,可以看出淘寶已經成為人們的日常購物習慣。
4.4.1.2 F 維度分析
計算用戶的消費頻率F值,并對F值進行打分。根據F值結果(最大值72次),將其分為6個區間[1:9],[10:19],[20:29],[30:39],[40:49]以及[50:72],分別賦予F_Score值1、2、3、4、5、6分。
# RFM模型——F維度分析 CREATE VIEW f_value as SELECT user_id, count(behavior) as F FROM userbehavior WHERE behavior='buy' GROUP BY user_id ORDER BY count(behavior) DESC; # 進行F維度打分 SELECT user_id, F,case when F BETWEEN 1 and 9 then 1when F BETWEEN 10 and 19 then 2when F BETWEEN 20 and 29 then 3when F BETWEEN 30 and 39 then 4when F BETWEEN 40 and 49 then 5else 6 end as F_Score FROM f_value
統計不同F_Score占比:
從R_Score占比中可以發現,在統計窗口的9天時間內,96.76%的用戶在淘寶平臺消費1-9次。
4.4.1.3 用戶分層
RF綜合打分:
# 進行R維度打分 CREATE VIEW r_score as SELECT user_id, R,case when R BETWEEN 0 and 2 then 3when R BETWEEN 3 and 5 then 2else 1 end as R_Score FROM r_value # 進行F維度打分 CREATE VIEW f_score as SELECT user_id, F,case when F BETWEEN 1 and 9 then 1when F BETWEEN 10 and 19 then 2when F BETWEEN 20 and 29 then 3when F BETWEEN 30 and 39 then 4when F BETWEEN 40 and 49 then 5else 6 end as F_Score FROM f_value # RF綜合打分 CREATE VIEW rf_score as SELECT a.user_id, a.R_Score, b.F_Score, a.R_Score+b.F_Score as RF_Score FROM r_score a JOIN f_score b on a.user_id=b.user_id
根據RF_Score值,對用戶進行分層:劃分為2-3分,4-5分,6-7分,8-9分四個等級,分別對應易流失用戶、挽留用戶、發展用戶、忠誠用戶。
統計不同類型用戶占比:
用戶分層結果:
- 重點挽留用戶的比例最高,而且這部分客戶給平臺帶來的潛在價值也很大,應該對這部分用戶進行定期上新提醒、價格激勵、訂單搭配推薦等措施,留住用戶并提高其消費頻次;
- 易流失用戶占比也相對較高,這部分客戶可能已經找到替代品或對該公司產品不感興趣了,可采取價格激勵、發放優惠券等方式進行流失召回;
- 忠誠用戶占比最少,這部分用戶屬于平臺的 高價值用戶,需要制定相應的運營策略來保持用戶粘性;
- 重點發展用戶占比也較低,對這部分用戶發送提醒或促銷活動郵件、促進其消費頻次。
用戶分層效果分析: 從不同用戶占比上來看,本次用戶分層的效果不佳,可能有以下兩個方面原因:1、兩個維度的打分區間劃分的不合理,并沒有用戶很好的分開,應該在做區間劃分時提前看一下各維度的用戶分布情況,結合實際業務場景需求,去確定區間界限值;2、兩個維度劃分的區間數不一致,且賦予的分值區間差異較大,這種操作其實相當于給兩個維度賦予了不同的比重。
在本次用戶分層中,可能采取RF兩個維度的四象限劃分更簡單明了,且效果會更好。
4.4.2 高價值用戶行為分析
以user_id為107932的用戶為例,對其進行深入分析:
# user_id為107932用戶行為分析 SELECT date,sum(case when behavior='pv' then 1 else 0 end) as '瀏覽數',sum(case when behavior='cart' then 1 else 0 end) as '加購數',sum(case when behavior='fav' then 1 else 0 end) as '收藏數',sum(case when behavior='buy' then 1 else 0 end) as '購買數',sum(case when behavior='buy' then 1 else 0 end)/sum(case when behavior='pv' then 1 else 0 end) as '購買轉化率' FROM userbehavior WHERE user_id = 107932 GROUP BY date;
結果表明:該用戶幾乎每天都有消費,購買轉化率也很高,但從未使用過收藏功能,購物車的使用頻率也極低。對于高價值用戶,可以分析其常購買的商品類型,再進行相關的商品推薦。由于商品種類數據為脫敏數據,本文無法分析該用戶購買的商品類型。
五、結論與建議
本文從4個維度分析了淘寶用戶行為數據共100萬條,結論和建議如下:
- 1、淘寶平臺的商品對用戶具有足夠的吸引力(跳失率),且能夠滿足絕大部分用戶的需求(購買轉化率)。淘寶用戶的忠誠度較高,復購率高達66.21%。從瀏覽商品詳情頁PV到有購買意向僅有6.19%的轉化率,這一環節是指標提升的重點環節,盡量做到精準推薦,減少用戶尋找信息的成本。
針對上述環節改善轉化率的建議:
(1)優化電商平臺的搜索匹配度和推薦策略,主動根據用戶喜好推薦相關的商品,優化商品搜索的準確度和聚合能力,對搜索結果排序優先級進行優化。
(2)在商品詳情頁的展示上突出用戶關注的重點信息,精簡信息流的呈現方式,減少用戶尋找信息的成本。 - 2、用戶的各種行為數據指標在周末和工作日的差別不大,但是受雙12等大型平臺活動影響較大。每天晚上的20-23點間是用戶活躍度最高的時間段,各數據指標呈現一個大高峰,并且在21點左右達到每日數據最大峰值。在制定運營策略時,可以利用這個規律來進行創收,選擇在每天用戶最活躍的時間段推出各種網店直播、直播帶貨等互動營銷手段。
- 3、商品銷量與商品瀏覽量之間相關性較差,瀏覽量高的商品其銷量不一定高,銷量高的商品其瀏覽量不一定高,結合商品四象限劃分結果,各象限商品都可從B端與C端兩個角度去分析原因,并針對性的進行改善。
- 4、淘寶平臺商品售賣主要是依靠長尾商品的累計效應,并非爆款商品的帶動。
建議:長尾效應的確能帶來一部分收益,但是,繁多的種類對于商家來說其實是一種經營負擔,成本也較高。二八定律告訴我們,商家其實可以通過打造爆款商品來獲利。打造爆款商品具體的建議是:品控上提高產品質量,宣傳上增大力度(直播、微淘、引流到其他平臺),展現上突出產品優勢等(主圖、詳情頁、評論)。 - 5、通過RFM模型對用戶進行分層,找出RF評分高的作為高價值用戶,并對不同類型的用戶采取不用的運行策略。
總結
以上是生活随笔為你收集整理的数据分析实战项目:SQL分析淘宝用户行为的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java面向对象
- 下一篇: mysql封包拦截修改工具_web封包拦