VARISTAを使用した顧客のLTV予測

PUBLISHED
2021.01.10 (Sun)
CATEGORY
チュートリアル
TOPIC
サービス分析
READING TIME
8分55秒

この記事の目的

VARISTAを使った顧客の将来のLTVセグメントを予測するモデル構築の流れを把握して頂くことを想定しています。

流れ

  • 概要
  • データの準備
  • 教師データの作成(RMF分析)
  • 予測モデルの構築
  • 予測モデルの確認

ここでご紹介する方法は顧客が何を買ったかという情報がなくても、その顧客の少し先のLTVセグメントを予測することができます。

概要

顧客のライフタイムバリューを知ることは重要です。
今回は、オープンデータを利用して顧客の3ヶ月の購入情報から、次の6ヶ月でどの顧客セグメントになっているかを予測するモデルを構築します。

1*di8UmMCSQEj0j62IqqlGEQ

データの準備

データには最低限以下の項目が含まれている必要があります。

  • 顧客ID
  • 購入日
  • 購入金額 (個数、単価)

なお、今回はOnline Retail Data Setを利用して流れを解説します。
このデータには541,909件の購買情報が入っており、8つの特徴が含まれています。(下図)
1*n1c5DPMTH4K5Vq-V1rYohQ

まずはデータを加工してRFM分析を行い、ユーザーのランク分けを行います。
このデータには2010年12月1日から2011年12月9日までの情報がありますが、今回は3ヶ月に区切ってRFMを計算し、この計算結果と次の6ヵ月データをマージして教師データを作成します。
例) 2011年3月1日〜2011年5月31日の3ヶ月
2011年6月1日〜2011年12月1日の6ヶ月など
期間の区切りは、業界やサービスに依存しますのでモデルを作成し検証しながら期間を定める必要があります。
ただし、RFMは頻繁に購入が発生しない業態には向きませんのでご注意ください。(例えば、数年に1回しか購入しないような商品など)


教師データの作成

それでは任意の3ヶ月間を設定し、顧客ごとにRFM計算します。RFMはRecency, Frequency, Monetary (Revenue)としてそれぞれ変数に置き換えます。また、顧客ごとにR, F, Mの合計を計算しOverallScoreとして新しく特徴を追加します。SegmentはOverallScoreを使いk-Meanでクラスタリングし、Rank 1〜 Rank 3に分割します。
*このSegmentは後半に出現するLTVClusterとは別ですのでご注意ください。

1*0cQCtbSGMn8UVVHNyMzJmA

次に、顧客ごとに次の6ヶ月間のLTVを計算してデータに追加します。
単純に、UnitPrice × Quantityをした結果を6_Month_Revenueとして追加しています。
これにより、顧客の3ヶ月間の購買行動(RFM)の結果、6ヶ月後にどの程度の収益をもたらすかを関連づけることができます。
1*E28gm2l1IQnJnb8vmh0KwQ

続いて、顧客を6ヵ月後のLTVベースで3クラスにクラスタリングします。

  • 最終列にLTVClusterが追加されています。
    1*ecf4wvopacCCW0damfErVQ

各クラスタについて内訳がどのようになっているか確認してみます。
LTVCluster : 0〜2の値で、数値が小さいほどLTVが低いクラスタ
count: クラスタに含まれる顧客数
mean: クラスタにおけるLTV平均
下図を見るとクラスタ2は平均8,222ポンドの利益を産んでいるのに対し、クラスタ0は6ヶ月で平均396ポンドしか利益をうんでいないことがわかります。
1*Sul7RNJdjnIJrjVCmToaIw

それでは、先程作成したデータを元にモデル構築に進みます。
1*ecf4wvopacCCW0damfErVQ

しかし、6_Month_Revenueは今回予測したいLTVClusterをクラスタリングする際に変数として使用していますので、リークの原因となります。ですので、6_Month_Revenueは削除します。
また、VARISTAは自動でカテゴリ変数の変換を行ますが、学習速度を早めるためにOne Hot Encodingを行ます。
最終的には、このような教師データになります。
1*ng-yljoqP3dB2Rh0SCk43Q

予測モデルの構築

VARISTAのAutoML機能を利用して予測モデルを構築します。
プロジェクトを作成し、データをVARISTAにアップロードします。
早速ですがデータを可視化してみます。
下図はLTVClusterとの相関を表示しています。Revenueとの相関があり、またOverallScoreとの相関もありそうです。
1*tLf3bUosPy51oov6K41GeA

続いて、VARISTAのAuto MLを利用してモデルを構築します。
サイドバーのモデルを選択し、AIモデル作成 > 学習開始を選択します。
この時、予測する列がLTVClusterに設定されていることを確認してください。
1*PNlG6m-sSimVnvBmBVpKvQ

しばらくすると学習が完了し、VARISTAが構築したモデルが表示されます。データ数はそこまで多くないので学習は10〜20分程度で完了します。

予測モデルの確認

全体の正解率は80.5%と表示されています。0の正解率は95.4%ですが、1, 2についてはあまり精度が良くないようです。
VARISTAの場合は、学習データの20%(デフォルト値)を使って自動で交差検証を行ます。
さらに精度を改善するためには、データの変数を増やすか、さらに別の変数を作成することを検討します。
1, 2のデータ件数が0の件数に比べると大幅に少ないので、もし増やすことが可能であれば0と同程度まで増やすことも検討します。
1*y40bNQQyS9iGXEzJylL8bA
またVARISTAでは表示されている簡易的な情報の他に、学習に関する詳細な情報も確認することができます。
1*pdYUx0o7jIuWLjjDO1IM2A
VARISTAは基本機能は無料にて利用することができますので、ぜひ↓のリンクから登録して試してみてください!
また、データの作成などでご相談などございましたらご支援させて頂くことも可能ですのでお気軽に公式サイトのチャットからご連絡ください。


VARISTAは機械学習モデルの開発、管理をノーコードで効率的に行うことができる新しいプラットフォームです。
データをお持ちでしたらすぐに始められますので、是非ともご相談ください。
Made with
by VARISTA Team.
© COLLESTA, Inc. 2021. All rights reserved.