Target Encoding
- 二分类问题:
记号:
Target Y∈{0,1},Categorical feature XiTarget\text{ }Y\in\{0,1\}, Categorical \text{ }feature\text{ }X_iTarget Y∈{0,1},Categorical feature Xi
对于这样的问题,我们将类别特征XiX_iXi转为为估计概率值:
(1)Xi→Si=Pi(Y∣X=Xi)X_i\rightarrow S_i=P_i(Y|X=X_i)\tag{1}Xi→Si=Pi(Y∣X=Xi)(1)
进一步的:
(2)Si=niYniS_i=\frac{n_{iY}}{n_i}\tag{2}Si=niniY(2)
niYn_{iY}niY表示Yi=1Y_i=1Yi=1在X=XiX=X_iX=Xi的取值下的个数
在大多数情况下,由于特征的类别较多或者是数据分布不平均,采用如上估计方式将变得不可靠,可以采用如下方式进行计算:
(3)Si=λ(ni)niYni+(1−λ(ni))nYnTRS_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)
这种方式考虑后验与先验的加权形式,使用函数λ(ni)\lambda(n_i)λ(ni)来加权,nin_ini越大则后验所占的比例越大 - λ\lambdaλ函数的选取:
λ(n)=11+e−n−kf\lambda(n)=\frac{1}{1+e^{-\frac{n-k}{f}}}λ(n)=1+e−fn−k1
如上函数,超参数为kkk与fff,kkk决定了我们相信后验的n值的一半,fff控制了先验与后验之间的转移速率,fff越大越趋于平滑
λ(n)=nm+n\lambda(n)=\frac{n}{m+n}λ(n)=m+nn
超参数为只有一个mmm,相对于上式的fff与kkk更好调参 - 缺失值处理:
将缺失值看为新的一类,如(3)(3)(3)一样计算
S0=λ(n0)n0Yni+(1−λ(n0))nYnTRS_0=\lambda(n_0)\frac{n_{0Y}}{n_i}+(1-\lambda(n_0))\frac{n_Y}{n_{TR}}S0=λ(n0)nin0Y+(1−λ(n0))nTRnY - 连续值问题:
Si=λ(ni)∑k∈LiYkni+(1−λ(ni))∑k=1NTRYknTRS_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−1m-1m−1个特征,每一个特征分别表示第iii类的概率 - 层级结构问题:
有些类别特征存在层级结构,ip地址,邮政编码等,在处理这样的类别特征时可以做如下处理
假设层级存在L1,L2,Lk,...L_1,L_2,L_k,...L1,L2,Lk,...,数字越小表明层级越高,如中国(L1L_1L1),江苏(L2L_2L2),南京(L3L_3L3)
Si5=λ(ni)ni1ni+(1−λ(ni))nYnTRS^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
Si5=λ(ni)ni1ni+(1−λ(ni))Si4S^5_i=\lambda(n_i)\frac{n_{i1}}{n_i}+(1-\lambda(n_i))S_i^4Si5=λ(ni)nini1+(1−λ(ni))Si4
Si5=λ(ni5)ni15ni5+(1−λ(ni5))(λ(ni4)ni14ni4+(1−λ(ni4))nYnTR)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)