Target Encoding
target encoding又名mean encoding。正如其名,实际上是把。
在kaggle的S5E2和这个月正在进行的S5E4等比赛都获得了耀眼的表现。
最简单的形式是
1 |
|
注意到,有多个库提供了“target encoder”,但它们实际上并不是完全同一个东西。
sklearn中的相当于category_encoders中的JamesSteinEncoder,cuml中的相当于category_encoders中的M-estimate Encoder。JamesSteinEncoder事实是可以当做一种特殊的M-estimate Encoder,所以我们先从JamesSteinEncoder介绍起。
JamesSteinEncoder
M-estimate Encoder
避免过拟合
显然地,target encoding直接利用了目标列的信息,这难免会过拟合,有以下几种方法可以避免过拟合,交叉验证、加噪声。
参考资料:
https://www.econometrics.blog/post/not-quite-the-james-stein-estimator/
https://chris-said.io/2017/05/03/empirical-bayes-for-multiple-sample-sizes/
Target Encoding
https://lijianxiong.work/2025/20250425/