見出し画像

【非エンジニアのための機械学習】サービスのチャーン(顧客の解約)を予測する

対象

本記事は、エンジニアやプログラマー以外でもできるように、と意識して記述しています。
あまりデータサイエンスの用語は使わないようにしています。
(ちょこちょこ出てしまっているところはご了承ください。。)

お願い

データ分析と機械学習を多くの方に体験して頂きたいと考えていますので、是非とも読むだけでなく、実際に手を動かしてみて欲しいです。

その方が肌感覚で理解できると思いますし、理解できないところや足りない知識も明確になります。

はじめに

チャーンの予測については、日本語の記事があまりないので鉄板ネタではありますが記事にしてみました。

多くのサービスにおいて、新規顧客の獲得よりもチャーンを可能な限り減らすことの方がコストもかからず、かつサービスとしての価値を高められますので効果的です。

機械学習だけは完全にチャーンを予測して防ぐことは難しいかもしれませんが、解約が増えている理由がよくわかならい場合などにおいては、その理由を見つけるために有益な武器になるのではないかと思います。

同じような考え方で、従業員の離職予測などにも応用することができるでしょう。

使うツール

VARISTA

データをアップロードするだけで、簡易的なデータの可視化や機械学習ができるツールです。なによりUIがかっこいいです。
画像28

画像29

イイ!

データの用意

リアルなデータを使えると一番いいのですが、今回はオープンデータを利用して進めます。
KaggleにあるTelco Customer Churnのデータを使います。https://www.kaggle.com/blastchar/telco-customer-churn

是非、Kaggleに登録をしてデータをダウンロードしてみてください。スクリーンショット 2020-06-13 0.43.20

結構綺麗なデータですが、実際のデータはここまで綺麗ではありません。。

データの説明

元はIBMが提供していたのデータのようです。
各行は顧客を表し、各列には顧客の属性が含まれています。
データセットには以下の情報が含まれています。

● 先月退会した顧客 - この列は「Churn」と呼ばれています。
● 各顧客が契約したサービス:
 電話、複数回線、インターネット、オンラインセキュリティ、
 オンラインバックアップ、デバイス保護、技術サポート、
 テレビや映画のストリーミングなど
● 顧客のアカウント情報:
 契約期間、契約、支払い方法、
 ペーパーレス請求、月額料金、合計料金
● 顧客に関する人口統計学的情報:
 性別、年齢、パートナーと扶養家族がいるか否か

VARISTAにデータをアップロード

登録は、こちらから。使うのはフリープランです。
https://www.varista.ai/

まずはVARISTAで新しくプロジェクトを作成してデータをアップロードします。3ステップで完了です。

プロジェクト名は任意で構いません。例えば、「チャーン予測」などがいいでしょう。

画像1

データをアップロードします。
アップロードするファイルはKaggleからダウンロードした
WA_Fn-UseC_-Telco-Customer-Churn.csv
です。

画像2

続いて、予測したい列を選択します。Chrunが自動で選択されていますので、OKを押して設定を完了します。

画像3

データの解析が完了するとこのような画面が表示されるのでSTARTをクリックします。

画像4

データの確認

まずはデータの中身を見てみましょう。
メニューのデータを選択して先ほどアップロードしたデータをクリックします。

スクリーンショット 2020-06-12 22.21.50

スクリーンショット 2020-06-12 22.22.49

クリックするとデータの詳細を確認することができます。

画像6

全部で7,043行(顧客数)、21列(特徴)のデータであることがわかります。

データの可視化

データの画面からビジュアライズをクリックすると、データの分布をみることができます。
スクリーンショット 2020-06-12 22.29.32

どのデータはどれくらいあるか、などを俯瞰して見ることができます。

画像24

一部をピックアップしてみてみます。

解約件数

全体の顧客のうち、1,869の解約があるデータのようです。

画像8

契約
契約は月払いが多く、少し離れて2年払いと年払いとなっています。

画像9

AIモデル構築後に更に詳しくみてみますので、これくらいにしておきますが、興味のある方は色々みてみてください。

機械学習によるAIモデルの構築

早速ですが、AIモデルを構築してみましょう!
現在データ画面にいると思いますので、まずはメニューからAIモデルを選択します。次に、AIモデルの作成を押します。

スクリーンショット 2020-06-12 22.48.39

続いて、右にある学習開始をクリックしてください。

画像12

あとはVARISTAが自動でAIモデルを生成してくれます。

画像14

しばらく経過すると学習が完了します。
生成したAIモデルの情報が表示されます。なんのことやら?という印象ですが、ちょっとずつみていきます。

画像25

今回生成したAIモデルの性能は以下の通りです。
- 全体の正解率:78.1%
- 解約すると予測できた割合:75.7%
- 解約しないと予測できた割合:79%

画像14

続いて予測結果を見てみましょう。
機械学習ではこのように、一部のデータを使って出来上がったAIモデルの性能を確認します。

以下のスクリーンショットを言葉で表すと、、、ちょっと混乱させてしまうかもしれませんがこんな感じです。75% - 80%くらい正解している印象です。

- 実際に解約したユーザーを、予測できた数:283/374件 -> 75.67%
- 実際に解約したユーザーを、予測できなかった数:91/374件 -> 24.33%
- 実際に解約していないユーザーを、予測できた数:818/1035件 -> 79.03%
- 実際に解約したユーザーを、予測できなかった数:217/1035件 -> 20.97%

画像15

最後に、影響度の高い要因を見てみましょう。
VARISTAでの影響度の高い要因の説明はこの図のようになっています。

画像17

今回構築したAIモデルでは、Tenure(契約期間)が最も解約に影響しているようです。次に、月払いの場合も解約に繋がりやすいようです。
確かに私たちも年払いのケースは解約を忘れてしまったりしますよね。

画像16

値をクリックすると細かく見れるようなので見てみましょう。

画像19

契約期間
確かにtenureの値が高いとチャーンはされにくいようです。

画像18

契約
Month to Monthの場合は解約する可能性が高くなっています。
SaaSなどで年契約の方が割引率が高いのは、このあたりを考慮して年契約に誘導するための可能性がありますね。

画像20

InternetService
光ファイバーユーザーの解約する可能性が高いです。インターネットサービスを利用していない顧客は解約する可能性が低いです。ユーザーは光ファイバーサービスに不満を持っている可能性がありますので、実際にヒアリングやコールセンターに来ている情報などを調査をする必要がありそうです。

画像21

支払い方法
電子支払いを利用しているユーザーは、離脱する可能性が高いようです。
ユーザーに自動支払いに切り替えるためのなんらかの施策を打つといいのかもしれません。

画像22

オンラインセキュリティ
契約していないユーザーは解約する可能性が高く、インターネットサービスやオンラインセキュリティを利用していない顧客は退出する可能性が低くなっていました。
相関があるものの、因果があるかは確実に言えないので実際にユーザーにヒアリングをするなどして、情報の解像度を高くする必要がありそうです。

画像23

実際に予測

画面右上にあるこのモデルで予測するから、実際に学習に利用しなかった今度契約するユーザーの情報を追加してチャーンリスクの可能性を予測することができます。

画像26

以下の情報が入っているCSVやExcelデータをアップロードするとチャーンの可能性を%で出してくれます。

画像27

さいごに

この記事では、コードを書かずにVARISTAを使い機械学習が顧客の解約を予測するためにどのように利用できるかを試してみました。
簡易的な学習ですが、約80%の予測精度を出すことができました。

ユーザーの解約はサービスの売上に非常に高く影響します。
機械学習を使うことで、今まで目に見えていなかったチャーンの問題を明確にし、解決していくことでサービスをより収益性の高いものにすることができる可能性があります。

また、解約する要因で影響が高いものを確認することができ、さらに調査をすべき要因に優先順位をつけることができました。
ただし、これはあくまで取得できているデータからのみの判断になりますので、実際には運営しているサービスの特性などを考慮して、不足しているデータがば追加したりしてデータを都度更新していくことが必要になるでしょう。

この記事から、ざっと機械学習を活用してできることを体験して頂き、皆さんのサービスに役立てて頂けたら幸いです。





この記事が気に入ったらサポートをしてみませんか?