Target Encoding

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} XiSi=Pi(YX=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+efnk1
    如上函数,超参数为 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)nikLiYk+(1λ(ni))nTRk=1NTRYk
  • 多分类问题:
    m分类问题,产生 m − 1 m-1 m1个特征,每一个特征分别表示第 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)

你可能感兴趣的:(机器学习)