始める無料で始める

二値分類を超えて

もちろん、二値分類は特殊なケースのひとつにすぎません。ターゲットエンコーディングはあらゆる種類の目的変数に適用できます。

  • 二値分類 では、通常はターゲットの平均によるエンコーディングを用います
  • 回帰 では、平均の代わりに中央値や四分位点などを用いることができます
  • 多クラス分類 では、クラス数 N に対して、one-vs-all 方式で各カテゴリのターゲット平均を用いた特徴量を N 個作成します

あなたが作成した mean_target_encoding() 関数は、上記のどの目的変数タイプにも利用できます。今回は、Kaggle の House Prices コンペティションを例に、回帰問題に適用してみましょう。

目標は、カテゴリカル特徴量 "RoofStyle" を平均ターゲットエンコーディングで変換することです。traintest の各 DataFrame はワークスペースにすでに用意されています。

この演習はコースの一部です

Pythonで挑むKaggleコンペティション

コースを見る

演習の手順

  • mean_target_encoding() の呼び出しで不足しているパラメータをすべて指定してください。目的変数名は "SalePrice"、ハイパーパラメータ \(\alpha\) は 10 に設定します。
  • traintest パラメータには、学習用とテスト用の各 DataFrame を渡すことを思い出してください。
  • targetcategorical パラメータには、目的変数名とエンコード対象の特徴量名を指定します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Create mean target encoded feature
train['RoofStyle_enc'], test['RoofStyle_enc'] = mean_target_encoding(train=train,
                                                                     test=____,
                                                                     target='____',
                                                                     categorical='____',
                                                                     alpha=____)

# Look at the encoding
print(test[['RoofStyle', 'RoofStyle_enc']].drop_duplicates())
コードを編集して実行