Target Encoding
- 二分类问题:
记号:
T a r g e t Y ∈ { 0 , 1 } , C a t e g o r i c a l f e a t u r e X i Target\text{ }Y\in\{0,1\}, Categorical \text{ }feature\text{ }X_i Target Y∈{0,1},Categorical feature Xi
对于这样的问题,我们将类别特征 X i X_i Xi转为为估计概率值:
(1) X i → S i = P i ( Y ∣ X = X i ) X_i\rightarrow S_i=P_i(Y|X=X_i)\tag{1} Xi→Si=Pi(Y∣X=Xi)(1)
进一步的:
(2) S i = n i Y n i S_i=\frac{n_{iY}}{n_i}\tag{2} Si=niniY(2)
n i Y n_{iY} niY表示 Y i = 1 Y_i=1 Yi=1在 X = X i X=X_i X=Xi的取值下的个数
在大多数情况下,由于特征的类别较多或者是数据分布不平均,采用如上估计方式将变得不可靠,可以采用如下方式进行计算:
(3) S i = λ ( n i ) n i Y n i + ( 1 − λ ( n i ) ) n Y n T R S_i=\lambda(n_i)\frac{n_{iY}}{n_i}+(1-\lambda(n_i))\frac{n_Y}{n_{TR}}\tag{3} Si=λ(ni)niniY+(1−λ(ni))nTRnY(3)
这种方式考虑后验与先验的加权形式,使用函数 λ ( n i ) \lambda(n_i) λ(ni)来加权, n i n_i ni越大则后验所占的比例越大 -
λ
\lambda
λ函数的选取:
λ ( n ) = 1 1 + e − n − k f \lambda(n)=\frac{1}{1+e^{-\frac{n-k}{f}}} λ(n)=1+e−fn−k1
如上函数,超参数为 k k k与 f f f, k k k决定了我们相信后验的n值的一半, f f f控制了先验与后验之间的转移速率, f f f越大越趋于平滑
λ ( n ) = n m + n \lambda(n)=\frac{n}{m+n} λ(n)=m+nn
超参数为只有一个 m m m,相对于上式的 f f f与 k k k更好调参 - 缺失值处理:
将缺失值看为新的一类,如 ( 3 ) (3) (3)一样计算
S 0 = λ ( n 0 ) n 0 Y n i + ( 1 − λ ( n 0 ) ) n Y n T R S_0=\lambda(n_0)\frac{n_{0Y}}{n_i}+(1-\lambda(n_0))\frac{n_Y}{n_{TR}} S0=λ(n0)nin0Y+(1−λ(n0))nTRnY - 连续值问题:
S i = λ ( n i ) ∑ k ∈ L i Y k n i + ( 1 − λ ( n i ) ) ∑ k = 1 N T R Y k n T R S_i=\lambda(n_i)\frac{\sum_{k\in L_i}Y_k}{n_i}+(1-\lambda(n_i))\frac{\sum_{k=1}^{N_{TR}}Y_k}{n_{TR}} Si=λ(ni)ni∑k∈LiYk+(1−λ(ni))nTR∑k=1NTRYk - 多分类问题:
m分类问题,产生 m − 1 m-1 m−1个特征,每一个特征分别表示第 i i i类的概率 - 层级结构问题:
有些类别特征存在层级结构,ip地址,邮政编码等,在处理这样的类别特征时可以做如下处理
假设层级存在 L 1 , L 2 , L k , . . . L_1,L_2,L_k,... L1,L2,Lk,...,数字越小表明层级越高,如中国( L 1 L_1 L1),江苏( L 2 L_2 L2),南京( L 3 L_3 L3)
S i 5 = λ ( n i ) n i 1 n i + ( 1 − λ ( n i ) ) n Y n T R S^5_i=\lambda(n_i)\frac{n_{i1}}{n_i}+(1-\lambda(n_i))\frac{n_{Y}}{n_{TR}} Si5=λ(ni)nini1+(1−λ(ni))nTRnY
S i 5 = λ ( n i ) n i 1 n i + ( 1 − λ ( n i ) ) S i 4 S^5_i=\lambda(n_i)\frac{n_{i1}}{n_i}+(1-\lambda(n_i))S_i^4 Si5=λ(ni)nini1+(1−λ(ni))Si4
S i 5 = λ ( n i 5 ) n i 1 5 n i 5 + ( 1 − λ ( n i 5 ) ) ( λ ( n i 4 ) n i 1 4 n i 4 + ( 1 − λ ( n i 4 ) ) n Y n T R ) S^5_i=\lambda(n^5_i)\frac{n_{i1}^5}{n^5_i}+(1-\lambda(n_i^5))(\lambda(n^4_i)\frac{n_{i1}^4}{n^4_i}+(1-\lambda(n_i^4))\frac{n_{Y}}{n_{TR}}) Si5=λ(ni5)ni5ni15+(1−λ(ni5))(λ(ni4)ni4ni14+(1−λ(ni4))nTRnY)