開始使用免費開始

超越二元分類

當然,二元分類只是其中一種特殊情況。目標編碼可以應用到任何型別的目標變數:

  • 對於「二元分類」,通常使用平均目標編碼(mean target encoding)
  • 對於「迴歸」,平均值可以改用中位數、四分位數等
  • 對於「多類別分類」,若有 N 個類別,會以 one-vs-all 的方式為每個類別建立 N 個以目標平均值計算的特徵

你先前建立的 mean_target_encoding() 函式可用於以上任一目標型別。現在把它用在 House Prices Kaggle 競賽的迴歸問題上。

你的目標是使用平均目標編碼來編碼類別型特徵 "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())
編輯並執行程式碼