1. 斯皮爾曼等級相關係數

2. 針對RAW DATA訓練之模型驗證

模型 train_score(訓練集準確度) test_score(測試集準確度) AUC(ROC曲線下面積) train_time(sec)
Gradient Boosting Classifier 97.5% 97.2% 98% 461.1
Random Forest 100.0% 97.2% 97% 421.8
Logistic Regression 95.7% 95.7% 95% 11.0
Naive Bayes 89.1% 89.1% 90% 0.5
Decision Tree 100.0% 95.6% 78% 4.9
Nearest Neighbors 95.5% 94.8% 67% 4.7
Neural Net 94.9% 94.9% 56% 18.1

小結:模型準確度過高,發現數據不平衡問題現象。


3. 經過數據對稱整理後的模型驗證

模型 Accuracy(準確度) Precision(精確率) Recall(召回率) Specificity(明確度) F1-score(F指標) AUC(ROC曲線下面積)
XGBoost 81.6% 83.6% 75.1% 87.2% 79.1% 89%
Neural Network 77.9% 79.6% 69.9% 84.7% 74.5% 84%
Linear Regression 77.6% 80.2% 68.2% 85.6% 73.7% 83%
Random Forest 81.4% 83.7% 74.4% 87.4% 78.8% 81%
Decision Tree 74.8% 72.9% 72.8% 76.6% 72.8% 75%
LightGBM 82.3% 84.9% 75.4% 88.4% 79.9% 82%
ROC Curve
Precision vs Recall (PR Curve)

4. 模型交叉驗證結果

模型 Precision(精確率) Recall(召回率) F1_score(F指標) AUC(ROC曲線下面積)
XGboost 84.1% 72.5% 77.8% 88.6%
Random Forest 83.5% 74.6% 78.8% 87.7%
Linear regression 80.0% 68.6% 73.9% 83.1%
Decision tree 73.2% 73.3% 73.2% 76.3%
Lightgbm 84.4% 76.4% 80.2% 89.5%
Gbdt 83.9% 72.9% 78.0% 88.6%

針對模型描述ROC曲線與PR曲線,可得到目前表現較佳之模型,並加入經處理之特徵後,對於流失/非流失目標有一定程度上之評判能力。

ROC Curve
PR Curve
K-S Curve
Precision-Recall-F1_score

5. 使用特徵(共15個)

特徵 欄位資訊
城市 共22種城市,raw data以不同編號分類
年齡 範圍1~99歲
性別 分類男、女
使用裝置 共有5種使用裝置,raw data以不同編號分類
離散使用方案的用戶 前次方案使用前是否有超過30天未訂閱任何KKBox服務
前次是否自動續約 本次與前次方案是否使用自動訂閱
獲得折扣次數 平均每位用戶使用折扣次數
使用方案的平均每日花費 --
長期用戶 使用總方案是否超過一年者
聽完整首歌的數量 --
平均聽歌總時間 --
總聽歌天數 --
最常使用付款方式 --
手動取消的次數 手動取消過方案的次數
交易次數 --


6. 視覺化(以XGBoost為例)

Number of Features Selected VS Accuracy of the Model

Threshold-based features selection VS Accuracy of the Model


名詞解釋

※ 模型評估指標

※ 評估指標—ROC(Receiver operating characteristic curve)曲線意義

  • 目的:判別模型對於流失率的鑑別能力(可用AUC面積鑑別)
  • 特點:任何一個在曲線上的點都會對應一個用於區分流失與非流失的分界點
  • 優點:考慮了所有可能的診斷臨界值的影響;全面客觀地評價診斷試驗的準確性

※ 評估指標—PR曲線

※ 評估指標—KS曲線

各模型KS Curve
Decision Tree
Gradient Boosting Decision Tree
Extreme Gradient Boosting
Linear Regression
Random Forest
LightBgm