特徴量を作成する
これで、回帰モデルに向けて、最新性(recency)、頻度(frequency)、金額(monetary value)などの顧客レベルの特徴量を作成する準備が整いました。Feature engineering は Machine Learning のプロセスで最も重要なステップです。この演習では、来月の顧客トランザクションを予測するために用いる、5つの顧客レベルの特徴量を作成します。これらの特徴量は、予測力の高い顧客行動パターンを捉えます。
pandas と numpy ライブラリはそれぞれ pd と np として読み込まれています。online_X データセットはすでにインポートされています。最新性の計算に使うスナップショット日を表す datetime オブジェクト NOW も用意されています。
この演習はコースの一部です
Pythonで学ぶマーケティングのための機械学習
演習の手順
- 最新の
InvoiceDateから現在日付を引いて、recency(最新性)を計算します。 - 請求書のユニーク件数を数えて、frequency(頻度)を計算します。
- すべての支出額を合計して、monetary value(金額)を計算します。
- quantity(数量)の平均と合計を計算します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Define the snapshot date
NOW = dt.datetime(2011,11,1)
# Calculate recency by subtracting current date from the latest InvoiceDate
features = online_X.___('CustomerID').agg({
'InvoiceDate': lambda x: (NOW - x.max()).days,
# Calculate frequency by counting unique number of invoices
'InvoiceNo': pd.Series.___,
# Calculate monetary value by summing all spend values
'TotalSum': np.___,
# Calculate average and total quantity
'Quantity': ['___', 'sum']}).reset_index()
# Rename the columns
features.columns = ['CustomerID', 'recency', 'frequency', 'monetary', 'quantity_avg', 'quantity_total']