検証データを含めないでTarget encoding

注意してtarget encodingしないと、leakageが発生するらしい。

よくやるのが、検証データを含めてtarget encodingをしてしまうこと。

この状態でデータを学習してしまうと、leakageを起こす。

何故ならば、target encodingした特徴量に検証データ(未来のデータ)が含まれているためである。

 

そのため、訓練データと検証データを分離してからtarget encodingを行う必要がある。

sklearn.model_selectionのKFoldを使用して、target encodingしてみた。

平均を求めるとき、検証データを使用しないように気をつける。

参考

Target Mean Encoding - Qiita

Likelihood encoding of categorical features | Kaggle

Python target encoding for categorical features | Kaggle