在分类及预测任务中对高维类别(category)变量的预处理方法

时间:2024-11-08 15:52:13
*先采用诸如层次聚类的聚类算法,有效地将N个原始数据聚类成K个簇
*再将K个簇二值化
然后论文就说了下这些通用方法的缺点啊,不足啊,又吹捧了下自己提出的方法。
##使用目标统计方法来对类别属性进行编码
终于来到正文了,首先说下,接下来提到的方法,就如我们章节标题所写,是个典型的统计学方法,而且历史悠久,应用领域颇多,但是,在类似这些分类预测任务中作为预处理方法的应用,其他文献没有提到过,所以文章还是有一定创新性的。
这一章节将按照目标变量的类型分成三个小节:二值型变量、连续型变量、多类别变量
###二值型变量
当目标属性 Y Y Y是二值的, Y ∈ { 0 , 1 } Y\in\{0,1\} Y{01},将高维类别属性 X X X的一个值 X i X_i Xi映射成一个标量 S i S_i Si,其中 S i S_i Si就代表给定 X = X i X=X_i X=Xi的条件下 Y = 1 Y=1 Y=1的概率估计:
X i → S i ≅ P ( Y ∣ X = X i ) ( 1 ) X_i \to S_i \cong P(Y|X=X_i) \tag{$1$} XiSiP(YX=Xi)(1)
有了这个映射关系,接下来就需要来算出这个“概率估计”了。这里我们假设训练集有 n T R n_{TR} nTR个样本,测试集有 n T S n_{TS} nTS个样本。既然概率估计是在训练模型过程中的一部分(即概率估计是发生在模型训练的过程中,而不是测试模型时),那么概率估计只与训练数据的 n T R n_{TR} nTR个样本有关。
假如训练样本足够大,那么概率估计直接可以用下面的公式计算:
S i = n i Y n i ( 2 ) S_i=\frac{n_{iY}}{n_i} \tag{$2$} Si=niniY(2)
其中 n i n_i ni X i X_i Xi的数量, n i Y n_{iY} niY Y = 1 Y=1 Y=1的数量。
但是在实际场景中, n i n_i ni的数量很小,因此公式(2)来计算后验概率并不是很可信。为了削弱某些样本个数较小带来的影响,文章提出了一种计算混合概率的方法:将公式(2)的后验概率与Y的先验概率同时利用起来。方法如下:
S i = λ ( n i ) n i Y n i + ( 1 − λ ( n i ) ) n Y n T R ( 3 ) 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 Y n_Y nY Y = 1 Y=1 Y=1的训练样本数,权重因子 λ ( n i ) \lambda(n_i) λ(ni)是边界为0,1的单调递增函数。
n i n_i ni的数量很大的时候, λ ≅ 1 \lambda \cong 1 λ1,我们给后验概率分配更多的权重,此时等价于公式(2);但是如果 n i n_i ni的数量很小, λ ≅ 0 \lambda \cong 0 λ0,我们直接采用先验概率。
其中可以给权重因子指定一个函数,例如:
λ ( n ) = 1 1 + e − n − k f ( 4 ) \lambda(n) = \frac{1}{1+e^{-\frac{n-k}{f}}} \tag{$4$} λ(n)=1+efnk1(4)
很显然,该函数是个sigmoid函数变种。当n=k时,函数大小为0.5,此处为S型曲线的拐点。参数 f f f控制该函数在拐点处的斜率。
公式(3)在统计与精算学中有着很长的一段历史。事实上公式(3)是贝叶斯概率的分支之一被称作经验贝叶斯(Empirical Bayesian)。
公式如下: P i = B i y i + ( 1 − B i ) y ˉ ( 5 ) P_i = B_iy_i+(1-B_i)\bar{y}\tag{$5$} Pi=Biyi+(1Bi)yˉ(5)
其中 y ˉ \bar{y} yˉ指先验概率, y i y_i yi指后验概率。 B i B_i Bi称作shrinkage因子( 0 < B < 1 0< B<1 0<B<1)。假设数据及后验估计的概率分布均满足高斯分布,那么 B i B_i Bi采用如下形式:
B i = n i τ 2 σ 2 + n i τ 2 ( 6 ) B_i=\frac{n_i\tau^2}{\sigma^2+n_i\tau^2}\tag{$6$} Bi=σ2+niτ2niτ2(6)
其中 σ 2 \sigma^2 σ2 X = X i X=X_i X=Xi数据集方差, τ 2 \tau^2 τ2是整个样本的方差。 n i n_i ni X = X i X=X_i X=Xi数据集的大小。很显然 B i B_i Bi λ ( n ) \lambda(n) λ(n)的一种特殊形式, B i B_i Bi不仅考虑了样本大小,还考虑了数据集的方差。