Target Encoding

target encoding又名mean encoding。正如其名,实际上是把。

在kaggle的S5E2和这个月正在进行的S5E4等比赛都获得了耀眼的表现。

最简单的形式是

1
df.groupby("xxx").mean()

注意到,有多个库提供了“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/
作者
LJX
发布于
2025年4月25日
许可协议