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

BTYDは以下を使用して実装されます:
- BG/NBD(Beta-Geometric/Negative Binomial Distribution)モデルは、購入頻度の分布と過去の購入後のエンゲージメント低下を記述するトランザクション履歴曲線に適合します。
- Gamma-Gammaモデルは、トランザクションあたりの平均支出を予測するために使用されます。
このノートブックは、RFM分析ノートブックと同じ入力形式を取ります。input_tableオプションで指定されたトランザクションテーブルで、以下のようにuser_column、tstamp_column、および_amount_column_カラムを持ちます:
| user | tstamp | amount |
|---|---|---|
| 3105285968 | 2011-04-05 | 115 |
| 1850985734 | 2011-11-23 | 1037 |
| 274382808 | 2011-04-25 | 17 |
| 358273144 | 2011-04-02 | 60 |
| ... | ... | ... |
Treasure Dataは、_tstamp_カラムに対して、dateutilでサポートされる様々なISO-8601日時形式およびUNIXタイムスタンプを受け付けます。
CLTVノートブックは、CLTV予測に日付ベースの頻度/最新性を使用します。タイムスタンプ情報は24時間間隔の解像度で処理されます。時、分、秒は使用されません。
_output_table:_の内容:
- frequency、recency、および_tenure_は日数で測定されることに注意してください。
- _
tenure_は、顧客が最初にトランザクションを発行してからの日数を表します。 - 今後1、3、6、12、24か月のCLTV(金額)がエクスポートされます。
- パーセンタイルランクは0から100の値を取ります。
- _
automl_alive_prob_は、現在顧客が活動している確率を表します。
| customerid | frequency | recency | tenure | monetary_value | automl_cltv_1m | automl_cltv_1m_pctile | automl_cltv_3m | automl_cltv_3m_pctile | automl_cltv_6m | automl_cltv_6m_pctile | automl_cltv_12m | automl_cltv_12m_pctile | automl_cltv_24m | automl_cltv_24m_pctile | automl_alive_prob |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 12347 | 6 | 365 | 367 | 599.701667 | 9.753 | 82.832 | 28.97 | 82.832 | 57.086 | 82.832 | 110.856 | 82.832 | 209.203 | 82.832 | 0.998192 |
| 12348 | 3 | 283 | 358 | 301.48 | 3.277 | 36.989 | 9.734 | 36.989 | 19.181 | 36.989 | 37.246 | 36.989 | 70.286 | 36.989 | 0.990166 |
| 12352 | 6 | 260 | 296 | 368.256667 | 7.203 | 72.581 | 21.394 | 72.581 | 42.157 | 72.581 | 81.863 | 72.581 | 154.486 | 72.616 | 0.996345 |
| 12356 | 2 | 303 | 325 | 269.905 | 2.628 | 26.487 | 7.805 | 26.487 | 15.38 | 26.487 | 29.864 | 26.452 | 56.353 | 26.487 | 0.990548 |
| 12358 | 1 | 149 | 150 | 683.2 | 6.632 | 69.176 | 19.698 | 69.176 | 38.809 | 69.176 | 75.345 | 69.14 | 142.125 | 69.14 | 0.947 |
| 12359 | 3 | 274 | 331 | 1941.693333 | 19.746 | 95.09 | 58.652 | 95.09 | 115.574 | 95.09 | 224.424 | 95.09 | 423.502 | 95.054 | 0.991769 |
| 12360 | 2 | 148 | 200 | 789.24 | 9.192 | 80.86 | 27.301 | 80.86 | 53.795 | 80.86 | 104.452 | 80.86 | 197.079 | 80.86 | 0.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_table | CLTV予測に使用するTDテーブルをdbname.table_nameのように指定します | はい | string (dbname.table_name) | ml_dataset.td_txn | |
| user_column | ユーザーのカラム名を指定します | いいえ | string | user | user |
| tstamp_column | タイムスタンプのカラム名を指定します | いいえ | string | tstamp | time |
| amount_column | 購入金額などのトランザクション金額のカラム名を指定します。このカラムのデータは数値が期待されます。 | いいえ | string | amount | purchase_amount |
| output_table | CLTV予測結果をエクスポートするTDテーブルをdbname.table_nameとして指定します | いいえ | string (dbname.table_name) | ml_output.rfm | |
| discount_rate | 0.0から1.0の範囲の月次調整割引率。0は調整なしを意味します。 | いいえ | float | 0.01 | 0.01 |
| hide_table_contents | テーブルの内容の表示を抑制します | いいえ | boolean | false | false |
| audience_name | 属性テーブルをマージするオーディエンス名 | いいえ | string | None | master_segment_name |
| foreign_key | オーディエンス統合に使用されるマスターセグメントの外部キーカラム名。設定されていない場合はuser_column値が使用されます。 | いいえ | string | None | td_canonical_id |
| segment_time_horizon | CLTVセグメントの時間範囲(1m/3m/6m/12m/24m) | いいえ | string | 12m | 6m |
_discount_rate_パラメータは、DCF(割引キャッシュフロー)の概念に基づいています。将来の金額を割引率で割り引いて、そのキャッシュフローの現在価値を取得し、資本コストを調整します。資本コストを回避するには0に設定できます。