目錄/分析思路:
01:? 項目介紹
02:問題分析
03:數據探索
04:數據預處理
05:建模分析
06:用戶畫像分析
壹、項目介紹
? 該項目是對某酒店預訂網在壹段時間內的客戶預定信息數據進行分析,通過算法預測客戶訪問的轉化結果,挖掘出影響用戶流失的關鍵因素,並深入了解用戶畫像及行為偏好,從而更好地完善產品設計,進行個性化營銷服務,以減少用戶流失,提升用戶體驗。
二、問題分析
這個項目是問題診斷型,要解決的問題是關於用戶流失的。在官方提供的字段和解釋中,有壹個label字段,這個是目標變量,也就是我們需要進行預測的值。label=1代表客戶流失,label=0代表客戶未流失,很顯然這是個分類的預測問題。
我們的目標就是在預測準確率高的同時最大化召回率,從業務角度出發,也就是將更多原本可能會流失的客戶最大概率地預測出來,以針對性進行挽留。因為通常來講,獲取新用戶的成本比挽留老用戶流失的成本要多得多。
三、數據探索
1、數據總體情況
本數據集合userlostprob_data.txt,為某酒店預訂網2016年5月16至21日期間壹周的訪問數據。
本數據集總的數據***有689945行,51列,包含樣本id,label以及49個變量特征。
考慮到保護用戶隱私,該數據經過了數據脫敏處理,和實際的訂單、瀏覽量、轉化率有壹些差距,但是並不影響問題的可解性。
2、數據指標梳理
觀察數據集,裏面的變量比較多。所以首先將數據字典中中文解釋替換對應變量名,增強可讀性,然後最好將指標進行梳理分類,然後逐個字段進行解析。
經過研究發現,指標大概可以分為三類:壹類是訂單相關的指標,如入住日期、訂單數、取消率等;壹類是與客戶行為相關的指標,如星級偏好、用戶偏好價格等;還有壹類是與酒店相關的指標,如酒店評分均值、酒店評分人數、平均價格等。
3、相關特征描述性分析
3.1? 訪問日期和入住時間
入住人數和訪問人數都在5月20日達到峰值,大概是“520”情人節的原因;5月21日之後入住人數大幅減少,後面的兩個小波峰,表明周末會比平日人多壹些。
3.2? 訪問時間段
可以觀察到,淩晨3-5點是訪問人數最少的時間段,因為大多數人這個時間都在睡覺;在晚上9-10點左右訪問人數是最多的。
3.3? 客戶價值
“客戶近1年價值”和“客戶價值”兩個特征非常相關,都可以用來表示客戶的價值;可以看到,大部分客戶的價值在0-100範圍;有些客戶價值高達600,後期需重點關註分析這類高價值客戶。
3.4?消費能力指數
基本呈現正態分布,大部分人的消費能力在30附近。消費能力達到近100的人數也很多,說明在我們酒店的訪問和入住客戶中,存在不少高消費水平群體。
3.5? 價格敏感指數
去掉極值,數據呈右偏分布,大部分客戶對價格不是很敏感,不用太費心定價;針對價格敏感指數100的客戶群體,可以采用打折的方式進行吸引。
3.6? 入住酒店平均價格
大部分人選擇酒店價格在1000以下,價格2000以上的酒店選擇的人非常少;排除“土豪”,可以看到,消費者對酒店價格的選擇,基本是壹個正偏態的分布,大部分人會選擇的平均價格在300元左右(大概是快捷酒店壹類)。
3.7?用戶年訂單數
大部分用戶的年訂單數在40以下,同時,也存在部分頻繁入住酒店的用戶,需要重點維護;
3.8?訂單取消率
用戶壹年內取消訂單率最多的是100%和0,對於百分百取消訂單的客戶可以結合訂單數了解壹下原因。
3.9?壹年內距離上次下單時長
可以觀察出,預定間隔時間越長的人數是遞減的,說明相當多的人訂酒店還是比較頻繁的;側面反映出“熟客”會經常性地選擇預定酒店,回頭客較多。
3.10?會話ID
服務器分配給訪問者的壹個id,1為新的訪客。
訪問客戶中老客戶占大多數;老客的預定概率比新客的預定概率稍微高壹點。
四、數據預處理
4.1 重復值處理
數據維度沒有發生 變化,說明該數據集沒有重復值。
4.2? 生成衍生字段
基於對業務的理解,考慮到用戶提前預定酒店時間這壹特征可能會比較重要,將兩個日期型特征轉化生成壹個新的特征,提高模型準確度和可解釋性。
4.3 缺失值處理
查看缺失值情況
***51個字段,缺失字段:44個
缺失值處理思路及過程
查看特征分布情況:
查看所有數值型特征的分布情況,根據數據分布合理選用處理方法,包括異常值、缺失值處理,同時有助於深入了解用戶行為。
***51個字段,缺失字段:44個,選擇合適的方法進行缺失值處理:
缺失比例80%以上:1個,“近7天用戶歷史訂單數”缺失88%,直接刪除該字段。
趨於正態分布的字段,使用均值填充;右偏分布的字段,使用中位數填充。
檢查缺失值填充情況
查看可知,缺失值數據已填充完畢。
4.4? 異常值處理
極值處理:
(後面基於實際業務思考,蓋帽法存在部分不合理,可能會過濾高價值用戶,需要調整)
負值處理:
4.5?標準化處理
距離類模型需要提前進行數據標準化。
五、建模分析
首先拆分訓練集和測試集
5.1? 邏輯回歸
[0.7366529216096935, 0.7016048745527705]
5.2? 決策樹
[0.8728884186420657, 0.8448881691422343]
5.3? 隨機森林
[0.8936581901455913, 0.9399374165108152]
5.4? 樸素貝葉斯
[0.6224554131126394, 0.6610756921767458]
5.5?XGBOOST
[0.8886143098362913, 0.9383456626294802]
5.6? 模型比較
畫出ROC曲線
可以看到,樸素貝葉斯表現最差,邏輯回歸的表現也不是很好,說明該數據不是線性可分的;隨機森林和xgboost模型的表現差不多,二者的AUC得分都在0.9以上,分類效果很好,隨機森林AUC值為0.94更高壹點,固采用隨機森林進行用戶流失預測。
5.7? 隨機森林模型優化
交叉驗證
學習曲線——取分類器為80
[0.9333570067179268, 0.97816699979759]
即根據這個隨機森林模型召回率可以達到97.8%,流失客戶預測準確率可以達到93.3%。
該模型可以直接上線用於用戶流失預測。
5.8 影響客戶流失的關鍵因素
用隨機森林分析影響客戶流失的因素:使用feature_importance方法,可以得到特征的重要性排序。
最重要的前10個特征: ?
年訪問次數、壹年內距上次訪問時長、昨日訪問當前城市同入住日期的app uv數、壹年內距離上次下單時長、昨日提交當前城市同入住日期的app訂單數、24小時內已訪問酒店可訂最低價均值、24小時內已訪問酒店商務屬性指數均值、24小時內已訪問次數最多酒店可訂最低價、24小時歷史瀏覽次數最多酒店評分人數、客戶價值 。
六、用戶畫像分析
接下來用K-Means聚類的方法將用戶分為3類,觀察不同類別客戶的特征。
K-means聚類
?
可以看到,聚出來的3類用戶有各自非常明顯的特征,針對不對類用戶的個性化營銷建議:
0類為中等群體: 消費水平和客戶價值都偏低,訪問和預定頻率較高,提前預定的時間是三類中最長的;花費非常多的時間進行瀏覽才能做出選擇,比較謹慎,推測可能為出門旅行的用戶。
建議:盡可能多地進行推送,因為此類客戶通常比較喜歡瀏覽;多推薦價格相對實惠的酒店;推送當地旅遊資訊,因為這類客戶旅遊出行的概率較大。
1類為低價值客戶: 消費水平和客戶價值極低,偏好價格較低,訪問和預定頻率很低; sid值很低,說明新客戶居多。
建議:按照流失客戶處理,不建議花費過多營銷成本,不做特定渠道運營;推薦促銷活動,價格折扣大的的低價酒店;新用戶占比較大,潛在客戶居多,可以維持服務推送。
2類為高價值客戶: 消費水平高,客戶價值大,追求高品質,價格敏感度高;登陸時間長,訪問次數多,提前預定時間短,但退單次數較多。
建議:為客戶提供更多差旅地酒店信息;? 推薦口碑好、性價比高的商務連鎖酒店房源吸引用戶; 在非工作日的11點、17點等日間流量小高峰時段進行消息推送。
壹些備註:
1、數據特征篩選時可以做相關性分析,因為可能某些特征之間存在高度相關,可以用相關性分析去掉和目標變量相關性小於0.01的變量,其他變量之間相關性高於0.9的可以刪除,再利用主成份分析對指標進行降維整合,可能會使模型效果達到最好。
2、如果想對用戶分類更加精細,可以使用RFM模型進行用戶價值分析。但本項目特征包含信息較多,用RFM可能損失信息量比較大。