XGBoost を使った顧客離反分析

サンプルプログラムの内容

ここでは、Amazon SageMaker の ビルトインアルゴリズムである XGBoost アルゴリズムを使ったサンプルを実行します。このサンプルで実施する内容は AWS blog post にも記載されています。

携帯電話会社の顧客情報を用いた利用者の離反予測を行います。どのようなビジネスであっても、顧客を失うことは大きな損害です。もし、満足していない顧客を早期に見つけることができれば、そのような顧客をキープするためのインセンティブを提供できる可能性があるでしょう。このノートブックでは、満足していない顧客を自動で認識するために、機械学習アルゴリズムである XGBoost を使って予測する方法を説明します。このような顧客の離反分析は Customer Churn Prediction と呼ばれています。


XGBoost のサンプルプログラムを選択

amazon-sagemaker-examples-jp > xgboost_customer_churn > xgboost_customer_churn.ipynb を選択します

こちらで選択したプログラムに沿って、ハンズオンを進めていきましょう。


モデルの評価としきい値の決定について

5.ホスティング の項目では、4. で 学習 した 10クラス分類の XGBoost モデルに対して、顧客が離反する・しないの2値分類のモデルに変換するためのしきい値を設定しています。予測結果のヒストグラムを見てみると、0.1から0.9までの間で、しきい値を調整するにはちょうど良さそうです。

。機械学習モデルは完璧な予測を行えないので、このノートブックでは予測のエラーが生じたときの相対的なコストを考慮して、機械学習を利用したときの成果を金額で評価します。今回は、顧客が離反する 1 と離反しない 0 を予測しますので、この混同行列を作成します。

今回の問題設定では、False Negatives が一番問題で、なぜなら、離反していく顧客を正しく予測できないからです。顧客を失えば、再獲得するまでに多くのコストを払う必要もあり、例えば逸失利益、広告コスト、管理コスト、販売管理コスト、電話の購入補助金などがあります。インターネットを簡単に検索してみると、そのようなコストは数百ドルとも言われます。

ここでは False Negative のコストを $500、FP, TP のコストを $100 とします。コスト関数を設定することで、コストを最適化するしきい値が算出されますので、その閾値を採用することにします。