超越二元分類
當然,二元分類只是其中一種特殊情況。目標編碼可以應用到任何型別的目標變數:
- 對於「二元分類」,通常使用平均目標編碼(mean target encoding)
- 對於「迴歸」,平均值可以改用中位數、四分位數等
- 對於「多類別分類」,若有 N 個類別,會以 one-vs-all 的方式為每個類別建立 N 個以目標平均值計算的特徵
你先前建立的 mean_target_encoding() 函式可用於以上任一目標型別。現在把它用在 House Prices Kaggle 競賽的迴歸問題上。
你的目標是使用平均目標編碼來編碼類別型特徵 "RoofStyle"。train 與 test 兩個 DataFrame 已經在你的工作環境中可用。
本練習屬於課程
用 Python 拿下 Kaggle 競賽
練習說明
- 請為
mean_target_encoding()的呼叫補上所有缺少的參數。目標變數名稱為"SalePrice",將超參數 \(\alpha\) 設為 10。 - 記得
train與test參數要傳入訓練與測試的 DataFrame。 target與categorical參數則要傳入目標變數名稱與要編碼的特徵名稱。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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())