Skip to content
Last updated

CLTV予測

CLTV予測ソリューションノートブックは、Buy Till You Die (BTYD)モデルを実装するためのオープンソースPythonライブラリLifetimesを使用して、顧客生涯価値(CLTV)を予測します。

BTYDは以下を使用して実装されます:

  • BG/NBD(Beta-Geometric/Negative Binomial Distribution)モデルは、購入頻度の分布と過去の購入後のエンゲージメント低下を記述するトランザクション履歴曲線に適合します。
  • Gamma-Gammaモデルは、トランザクションあたりの平均支出を予測するために使用されます。

想定される入力

このノートブックは、RFM分析ノートブックと同じ入力形式を取ります。input_tableオプションで指定されたトランザクションテーブルで、以下のようにuser_columntstamp_column、および_amount_column_カラムを持ちます:

usertstampamount
31052859682011-04-05115
18509857342011-11-231037
2743828082011-04-2517
3582731442011-04-0260
.........

Treasure Dataは、_tstamp_カラムに対して、dateutilでサポートされる様々なISO-8601日時形式およびUNIXタイムスタンプを受け付けます。

CLTVノートブックは、CLTV予測に日付ベースの頻度/最新性を使用します。タイムスタンプ情報は24時間間隔の解像度で処理されます。時、分、秒は使用されません。

想定される出力

_output_table:_の内容:

  • frequencyrecency、および_tenure_は日数で測定されることに注意してください。
  • _tenure_は、顧客が最初にトランザクションを発行してからの日数を表します。
  • 今後1、3、6、12、24か月のCLTV(金額)がエクスポートされます。
  • パーセンタイルランクは0から100の値を取ります。
  • _automl_alive_prob_は、現在顧客が活動している確率を表します。
customeridfrequencyrecencytenuremonetary_valueautoml_cltv_1mautoml_cltv_1m_pctileautoml_cltv_3mautoml_cltv_3m_pctileautoml_cltv_6mautoml_cltv_6m_pctileautoml_cltv_12mautoml_cltv_12m_pctileautoml_cltv_24mautoml_cltv_24m_pctileautoml_alive_prob
123476365367599.7016679.75382.83228.9782.83257.08682.832110.85682.832209.20382.8320.998192
123483283358301.483.27736.9899.73436.98919.18136.98937.24636.98970.28636.9890.990166
123526260296368.2566677.20372.58121.39472.58142.15772.58181.86372.581154.48672.6160.996345
123562303325269.9052.62826.4877.80526.48715.3826.48729.86426.45256.35326.4870.990548
123581149150683.26.63269.17619.69869.17638.80969.17675.34569.14142.12569.140.947
1235932743311941.69333319.74695.0958.65295.09115.57495.09224.42495.09423.50295.0540.991769
123602148200789.249.19280.8627.30180.8653.79580.86104.45280.86197.07980.860.984178
................................................

入力パラメータとして_audience_name_が指定されている場合、指定されたペアレントセグメントの新しい属性として以下の値が作成されます。Xmは数か月後を表します。

  • automl_cltv_Xm
  • automl_cltv_Xm_pctile
  • automl_cltv_segment
  • automl_alive_prob

_automl_cltv_segmentは、automl_cltv_12m_を分位数を使用して5つのグループ(very low/low/medium/high/very high)に分割し、5つのCDPセグメントを生成します。

グラフ出力の例:

ワークフローの例

Treasure Boxesでサンプルワークフローを見つけることができます。

+run_cltv:
  ipynb>:
    notebook: CLTV
    input_table: ml_datasets.online_retail_txn
    output_table: ml_results.online_retail_cltv_result
    user_column: customerid
    tstamp_column: invoicedate
    amount_column: purchaseamount

パラメータ

パラメータ名説明必須データ型デフォルト値値の例
input_tableCLTV予測に使用するTDテーブルをdbname.table_nameのように指定しますはいstring (dbname.table_name)ml_dataset.td_txn
user_columnユーザーのカラム名を指定しますいいえstringuseruser
tstamp_columnタイムスタンプのカラム名を指定しますいいえstringtstamptime
amount_column購入金額などのトランザクション金額のカラム名を指定します。このカラムのデータは数値が期待されます。いいえstringamountpurchase_amount
output_tableCLTV予測結果をエクスポートするTDテーブルをdbname.table_nameとして指定しますいいえstring (dbname.table_name)ml_output.rfm
discount_rate0.0から1.0の範囲の月次調整割引率。0は調整なしを意味します。いいえfloat0.010.01
hide_table_contentsテーブルの内容の表示を抑制しますいいえbooleanfalsefalse
audience_name属性テーブルをマージするオーディエンス名いいえstringNonemaster_segment_name
foreign_keyオーディエンス統合に使用されるマスターセグメントの外部キーカラム名。設定されていない場合はuser_column値が使用されます。いいえstringNonetd_canonical_id
segment_time_horizonCLTVセグメントの時間範囲(1m/3m/6m/12m/24m)いいえstring12m6m

_discount_rate_パラメータは、DCF(割引キャッシュフロー)の概念に基づいています。将来の金額を割引率で割り引いて、そのキャッシュフローの現在価値を取得し、資本コストを調整します。資本コストを回避するには0に設定できます。