始める無料で始める

特徴量を作成する

これで、回帰モデルに向けて、最新性(recency)、頻度(frequency)、金額(monetary value)などの顧客レベルの特徴量を作成する準備が整いました。Feature engineering は Machine Learning のプロセスで最も重要なステップです。この演習では、来月の顧客トランザクションを予測するために用いる、5つの顧客レベルの特徴量を作成します。これらの特徴量は、予測力の高い顧客行動パターンを捉えます。

pandasnumpy ライブラリはそれぞれ pdnp として読み込まれています。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']
コードを編集して実行