《机器学习》(周志华) 第3章 线性模型 学习心得 笔记

第3章 线性模型 学习心得

基本形式

线性模型是试图学习通过样本属性/特征的线性构成的假设函数的模型。即:
f ( x ) = w 1 x 1 + w 2 x 2 + … + w d x d + b f(\boldsymbol{x})=w_{1} x_{1}+w_{2} x_{2}+\ldots+w_{d} x_{d}+b f(x)=w1x1+w2x2++wdxd+b
通常记为向量形式:
f ( x ) = w T x + b f(\boldsymbol{x})=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b f(x)=wTx+b
线性模型是机器学习中基础的模型,很多非线性模型无非是在线性模型基础上引入层级结构或者高维映射而得到。

线性回归

最小二乘法(least square method)

基于均方误差最小化进行模型求解的方法称为最小二乘法。

多元线性回归(multivariate linear regression)

数据集:
X = ( x 11 x 12 … x 1 d 1 x 21 x 22 … x 2 d 1 ⋮ ⋮ ⋱ ⋮ ⋮ x m 1 x m 2 … x m d 1 ) = ( x 1 T 1 x 2 T 1 ⋮ ⋮ x m T 1 ) \mathbf{X}=\left(\begin{array}{ccccc}x_{11} & x_{12} & \ldots & x_{1 d} & 1 \\ x_{21} & x_{22} & \ldots & x_{2 d} & 1 \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ x_{m 1} & x_{m 2} & \ldots & x_{m d} & 1\end{array}\right)=\left(\begin{array}{cc}\boldsymbol{x}_{1}^{\mathrm{T}} & 1 \\ \boldsymbol{x}_{2}^{\mathrm{T}} & 1 \\ \vdots & \vdots \\ \boldsymbol{x}_{m}^{\mathrm{T}} & 1\end{array}\right) X= x11x21xm1x12x22xm2x1dx2dxmd111 = x1Tx2TxmT111
对应weight:
w ^ = ( w ; b ) \hat{\boldsymbol{w}}=(\boldsymbol{w} ; b) w^=(w;b)
由最小二乘法/均方误差最小化:
w ^ ∗ = arg ⁡ min ⁡ w ^ ( y − X w ^ ) T ( y − X w ^ ) \hat{\boldsymbol{w}}^{*}=\underset{\hat{\boldsymbol{w}}}{\arg \min }(\boldsymbol{y}-\mathbf{X} \hat{\boldsymbol{w}})^{\mathrm{T}}(\boldsymbol{y}-\mathbf{X} \hat{\boldsymbol{w}}) w^=w^argmin(yXw^)T(yXw^)
通过凸函数偏导数为0取得极值可得:
∂ E w ^ ∂ w ^ = 0 − X T y − X T y + ( X T X + X T X ) w ^ ∂ E w ^ ∂ w ^ = 2 X T ( X w ^ − y ) \begin{array}{c}\frac{\partial E_{\hat{\boldsymbol{w}}}}{\partial \hat{\boldsymbol{w}}}=0-\mathbf{X}^{\mathrm{T}} \boldsymbol{y}-\mathbf{X}^{\mathrm{T}} \boldsymbol{y}+\left(\mathbf{X}^{\mathrm{T}} \mathbf{X}+\mathbf{X}^{\mathrm{T}} \mathbf{X}\right) \hat{\boldsymbol{w}} \\ \frac{\partial E_{\hat{\boldsymbol{w}}}}{\partial \hat{\boldsymbol{w}}}=2 \mathbf{X}^{\mathrm{T}}(\mathbf{X} \hat{\boldsymbol{w}}-\boldsymbol{y})\end{array} w^Ew^=0XTyXTy+(XTX+XTX)w^w^Ew^=2XT(Xw^y)
其中用到了:
∂ a T x ∂ x = ∂ x T a ∂ x = a , ∂ x T A x ∂ x = ( A + A T ) x \frac{\partial \boldsymbol{a}^{\mathrm{T}} \boldsymbol{x}}{\partial \boldsymbol{x}}=\frac{\partial \boldsymbol{x}^{\mathrm{T}} \boldsymbol{a}}{\partial \boldsymbol{x}}=\boldsymbol{a}, \frac{\partial \boldsymbol{x}^{\mathrm{T}} \mathbf{A} \boldsymbol{x}}{\partial \boldsymbol{x}}=\left(\mathbf{A}+\mathbf{A}^{\mathrm{T}}\right) \boldsymbol{x} xaTx=xxTa=a,xxTAx=(A+AT)x
从而:
w ^ ∗ = ( X T X ) − 1 X T y \hat{\boldsymbol{w}}^{*}=\left(\mathbf{X}^{\mathrm{T}} \mathbf{X}\right)^{-1} \mathbf{X}^{\mathrm{T}} \boldsymbol{y} w^=(XTX)1XTy
这里默认了 X T X \mathbf{X}^{\mathrm{T}} \mathbf{X} XTX是满秩/正定的,而实际情况有时并不如此,则会有多解(方程个数小于未知数个数的线性方程组情况),通常可以通过加入正则化项,使得学习有一定的偏好。

对数线性回归

对于线性回归稍作推广,就可以得到非线性(对数)回归(log-linear regression):
ln ⁡ y = w T x + b \ln y=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b lny=wTx+b

广义线性模型(generalized linear model)

y = g − 1 ( w T x + b ) y=g^{-1}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b\right) y=g1(wTx+b)
其中 g g g为联系函数(link function)。上面的对数线性模型的 g g g即为 ln ⁡ \ln ln

对数几率回归/逻辑斯蒂回归(Logistic Regression)

对于线性模型产生的预测值,一般希望能够转化成二分类的标签,比如0/1,理想的一个转化是使用单位阶跃函数(unit-step function),也即delta函数的原函数:
y = { 0 , z < 0 0.5 , z = 0 1 , z > 0 y=\left\{\begin{array}{cl}0, & z<0 \\ 0.5, & z=0 \\ 1, & z>0\end{array}\right. y= 0,0.5,1,z<0z=0z>0
其中, z = w T x + b z=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b z=wTx+b。但是阶跃函数不连续,而我们希望其单调可微,因此需要一个替代函数(surrogate function),因此就有了对数几率函数(logistic function):
y = 1 1 + e − ( w T x + b ) y=\frac{1}{1+e^{-\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b\right)}} y=1+e(wTx+b)1
也就是相当于广义线性模型中 g − 1 ( z ) = 1 1 + e − z g^{-1}(z) = \frac{1}{1 + e^{-z}} g1(z)=1+ez1。那么由这个反函数得到原函数:
g ( y ) = ln ⁡ y 1 − y = w T x + b g(y) = \ln \frac{y}{1-y}=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b g(y)=ln1yy=wTx+b
从中可以看出,对数部分是一个相对的概率,是正例相对于反例概率的相对值,称为“几率”(odds),再加上对数运算,称为“对数几率”(log odds,或logit),所以线性回归模型逼近的就是真实标记的对数几率,因此称为对数几率回归(logistc regression,或logit regression)。
由相对概率(几率)可以定义正反例分别的概率:
p ( y = 1 ∣ x ) = e w T x + b 1 + e w T x + b p ( y = 0 ∣ x ) = 1 1 + e w T x + b \begin{array}{l}p(y=1 \mid \boldsymbol{x})=\frac{e^{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b}}{1+e^{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b}} \\ p(y=0 \mid \boldsymbol{x})=\frac{1}{1+e^{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b}}\end{array} p(y=1x)=1+ewTx+bewTx+bp(y=0x)=1+ewTx+b1
写成统一的形式:
p ( y i ∣ x i ; w , b ) = [ p 1 ( x ^ i ; β ) ] y i [ p 0 ( x ^ i ; β ) ] 1 − y i p\left(y_{i} \mid \boldsymbol{x}_{i} ; \boldsymbol{w}, b\right)=\left[p_{1}\left(\hat{\boldsymbol{x}}_{i} ; \boldsymbol{\beta}\right)\right]^{y_{i}}\left[p_{0}\left(\hat{\boldsymbol{x}}_{i} ; \boldsymbol{\beta}\right)\right]^{1-y_{i}} p(yixi;w,b)=[p1(x^i;β)]yi[p0(x^i;β)]1yi
从而可以得到对数似然函数:
ℓ ( β ) = ∑ i = 1 m ln ⁡ ( [ p 1 ( x ^ i ; β ) ] y i [ p 0 ( x ^ i ; β ) ] 1 − y i ) = ∑ i = 1 m [ y i ln ⁡ ( p 1 ( x ^ i ; β ) ) + ( 1 − y i ) ln ⁡ ( p 0 ( x ^ i ; β ) ) ] = ∑ i = 1 m { y i [ ln ⁡ ( p 1 ( x ^ i ; β ) ) − ln ⁡ ( p 0 ( x ^ i ; β ) ) ] + ln ⁡ ( p 0 ( x ^ i ; β ) ) } = ∑ i = 1 m [ y i ln ⁡ ( p 1 ( x ^ i ; β ) p 0 ( x ^ i ; β ) ) + ln ⁡ ( p 0 ( x ^ i ; β ) ) ] = ∑ i = 1 m [ y i ln ⁡ ( e β T x ^ i ) + ln ⁡ ( 1 1 + e β T x ^ i ) ] = ∑ i = 1 m ( y i β T x ^ i − ln ⁡ ( 1 + e β T x ^ i ) ) \begin{aligned} \ell(\boldsymbol{\beta}) &=\sum_{i=1}^{m} \ln \left(\left[p_{1}\left(\hat{\boldsymbol{x}}_{i} ; \boldsymbol{\beta}\right)\right]^{y_{i}}\left[p_{0}\left(\hat{\boldsymbol{x}}_{i} ; \boldsymbol{\beta}\right)\right]^{1-y_{i}}\right) \\ &=\sum_{i=1}^{m}\left[y_{i} \ln \left(p_{1}\left(\hat{\boldsymbol{x}}_{i} ; \boldsymbol{\beta}\right)\right)+\left(1-y_{i}\right) \ln \left(p_{0}\left(\hat{\boldsymbol{x}}_{i} ; \boldsymbol{\beta}\right)\right)\right] \\ &=\sum_{i=1}^{m}\left\{y_{i}\left[\ln \left(p_{1}\left(\hat{\boldsymbol{x}}_{i} ; \boldsymbol{\beta}\right)\right)-\ln \left(p_{0}\left(\hat{\boldsymbol{x}}_{i} ; \boldsymbol{\beta}\right)\right)\right]+\ln \left(p_{0}\left(\hat{\boldsymbol{x}}_{i} ; \boldsymbol{\beta}\right)\right)\right\} \\ &=\sum_{i=1}^{m}\left[y_{i} \ln \left(\frac{p_{1}\left(\hat{\boldsymbol{x}}_{i} ; \boldsymbol{\beta}\right)}{p_{0}\left(\hat{\boldsymbol{x}}_{i} ; \boldsymbol{\beta}\right)}\right)+\ln \left(p_{0}\left(\hat{\boldsymbol{x}}_{i} ; \boldsymbol{\beta}\right)\right)\right] \\ &=\sum_{i=1}^{m}\left[y_{i} \ln \left(e^{\boldsymbol{\beta}^{\mathrm{T}} \hat{\boldsymbol{x}}_{i}}\right)+\ln \left(\frac{1}{1+e^{\boldsymbol{\beta}^{\mathrm{T}} \hat{\boldsymbol{x}}_{i}}}\right)\right] \\ &=\sum_{i=1}^{m}\left(y_{i} \boldsymbol{\beta}^{\mathrm{T}} \hat{\boldsymbol{x}}_{i}-\ln \left(1+e^{\boldsymbol{\beta}^{\mathrm{T}} \hat{\boldsymbol{x}}_{i}}\right)\right) \end{aligned} (β)=i=1mln([p1(x^i;β)]yi[p0(x^i;β)]1yi)=i=1m[yiln(p1(x^i;β))+(1yi)ln(p0(x^i;β))]=i=1m{ yi[ln(p1(x^i;β))ln(p0(x^i;β))]+ln(p0(x^i;β))}=i=1m[yiln(p0(x^i;β)p1(x^i;β))+ln(p0(x^i;β))]=i=1m[yiln(eβTx^i)+ln(1+eβTx^i1)]=i=1m(yiβTx^iln(1+eβTx^i))
由于该函数是关于 β \beta β的凸函数,利用梯度下降、牛顿法等可以得到全局最优解,即极大值。

线性判别分析(linear discriminant analysis,LDA)

假设了各个类别的协方差矩阵相同且满秩。其思想十分简单,对于二分类问题,将样本投影到直线上,使得同类样本投影点尽可能接近,异类样本点投影尽可能远离。如图所示:
请添加图片描述

最大化目标函数为:
J = ∥ w T μ 0 − w T μ 1 ∥ 2 2 w T Σ 0 w + w T Σ 1 w = w T ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T w w T ( Σ 0 + Σ 1 ) w \begin{aligned} J &=\frac{\left\|\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{0}-\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{1}\right\|_{2}^{2}}{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{0} \boldsymbol{w}+\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{1} \boldsymbol{w}} \\ &=\frac{\boldsymbol{w}^{\mathrm{T}}\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)^{\mathrm{T}} \boldsymbol{w}}{\boldsymbol{w}^{\mathrm{T}}\left(\boldsymbol{\Sigma}_{0}+\boldsymbol{\Sigma}_{1}\right) \boldsymbol{w}} \end{aligned} J=wTΣ0w+wTΣ1w wTμ0wTμ1 22=wT(Σ0+Σ1)wwT(μ0μ1)(μ0μ1)Tw
其中分子部分表示的是将两类样本均值投影后,投影点的差距的 L 2 L_{2} L2范数,希望它尽可能大,分母为两类中各自的方差,希望各自小,从而分母整体小,从而整个目标函数尽可能大。定义类内散度矩阵(within-class scatter matrix) S w S_{w} Sw和类间散度矩阵(between-class scatter matrix) S b S_{b} Sb
S w = Σ 0 + Σ 1 = ∑ x ∈ X 0 ( x − μ 0 ) ( x − μ 0 ) T + ∑ x ∈ X 1 ( x − μ 1 ) ( x − μ 1 ) T \begin{aligned} \mathbf{S}_{w} &=\boldsymbol{\Sigma}_{0}+\boldsymbol{\Sigma}_{1} \\ &=\sum_{\boldsymbol{x} \in X_{0}}\left(\boldsymbol{x}-\boldsymbol{\mu}_{0}\right)\left(\boldsymbol{x}-\boldsymbol{\mu}_{0}\right)^{\mathrm{T}}+\sum_{\boldsymbol{x} \in X_{1}}\left(\boldsymbol{x}-\boldsymbol{\mu}_{1}\right)\left(\boldsymbol{x}-\boldsymbol{\mu}_{1}\right)^{\mathrm{T}} \end{aligned} Sw=Σ0+Σ1=xX0(xμ0)(xμ0)T+xX1(xμ1)(xμ1)T
S b = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T \mathbf{S}_{b}=\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)^{\mathrm{T}} Sb=(μ0μ1)(μ0μ1)T
则:
J = w T S b w w T S w w J=\frac{\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{b} \boldsymbol{w}}{\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{w} \boldsymbol{w}} J=wTSwwwTSbw
又称为广义瑞利商。可以发现w大小不影响结果,可约束分母为0,利用拉格朗日乘子法可得:
S b w = λ S w w \mathbf{S}_{b} \boldsymbol{w}=\lambda \mathbf{S}_{w} \boldsymbol{w} Sbw=λSww
在不考虑w大小的原则下,可最终取为:
w = S w − 1 ( μ 0 − μ 1 ) \boldsymbol{w}=\mathbf{S}_{w}^{-1}\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right) w=Sw1(μ0μ1)
实践中,为了数值解稳定性,通常要对 S w \mathbf{S}_{w} Sw进行SVD,得到 S w = U Σ V T \mathbf{S}_{w} = \mathbf{U} \boldsymbol{\Sigma} \mathbf{V}^{\mathrm{T}} Sw=UΣVT,从而 S w − 1 = V Σ − 1 U T \mathbf{S}_{w}^{-1}=\mathbf{V} \boldsymbol{\Sigma}^{-1} \mathbf{U}^{\mathrm{T}} Sw1=VΣ1UT

推广到多分类

假设有N个分类,第i个类的个数为 m i m_{i} mi,重新定义类内散度矩阵(within-class scatter matrix) S w S_{w} Sw和类间散度矩阵(between-class scatter matrix) S b S_{b} Sb
S w = ∑ i = 1 N S w i S w i = ∑ x ∈ X i ( x − μ i ) ( x ˙ − μ i ) T \begin{array}{c}\mathbf{S}_{w}=\sum_{i=1}^{N} \mathbf{S}_{w_{i}} \\ \mathbf{S}_{w_{i}}=\sum_{\boldsymbol{x} \in X_{i}}\left(\boldsymbol{x}-\boldsymbol{\mu}_{i}\right)\left(\dot{\boldsymbol{x}}-\boldsymbol{\mu}_{i}\right)^{\mathrm{T}}\end{array} Sw=i=1NSwiSwi=xXi(xμi)(x˙μi)T
S t = S b + S w = ∑ i = 1 m ( x i − μ ) ( x i − μ ) T \begin{aligned} \mathbf{S}_{t} &=\mathbf{S}_{b}+\mathbf{S}_{w} \\ &=\sum_{i=1}^{m}\left(\boldsymbol{x}_{i}-\boldsymbol{\mu}\right)\left(\boldsymbol{x}_{i}-\boldsymbol{\mu}\right)^{\mathrm{T}} \end{aligned} St=Sb+Sw=i=1m(xiμ)(xiμ)T
S b = S t − S w = ∑ i = 1 N m i ( μ i − μ ) ( μ i − μ ) T \begin{aligned} \mathbf{S}_{b} &=\mathbf{S}_{t}-\mathbf{S}_{w} \\ &=\sum_{i=1}^{N} m_{i}\left(\boldsymbol{\mu}_{i}-\boldsymbol{\mu}\right)\left(\boldsymbol{\mu}_{i}-\boldsymbol{\mu}\right)^{\mathrm{T}} \end{aligned} Sb=StSw=i=1Nmi(μiμ)(μiμ)T
其中 S t \mathbf{S}_{t} St为全局散度矩阵。
从而可以推广广义瑞利商:
max ⁡ W ∑ i = 1 N − 1 w i T S b w i ∑ i = 1 N − 1 w i T S w w i = max ⁡ W tr ⁡ ( W T S b W ) tr ⁡ ( W T S w W ) \max _{\mathbf{W}} \frac{\sum_{i=1}^{N-1} \boldsymbol{w}_{i}^{\mathrm{T}} \mathbf{S}_{b} \boldsymbol{w}_{i}}{\sum_{i=1}^{N-1} \boldsymbol{w}_{i}^{\mathrm{T}} \mathbf{S}_{w} \boldsymbol{w}_{i}}= \max _{\mathbf{W}} \frac{\operatorname{tr}\left(\mathbf{W}^{\mathrm{T}} \mathbf{S}_{b} \mathbf{W}\right)}{\operatorname{tr}\left(\mathbf{W}^{\mathrm{T}} \mathbf{S}_{w} \mathbf{W}\right)} Wmaxi=1N1wiTSwwii=1N1wiTSbwi=Wmaxtr(WTSwW)tr(WTSbW)
其中, W = ( w 1 , w 2 , … , w i , … , w N − 1 ) ∈ R d × ( N − 1 ) , w i ∈ R d × 1 \mathbf{W}=\left(\boldsymbol{w}_{1}, \boldsymbol{w}_{2}, \ldots, \boldsymbol{w}_{i}, \ldots, \boldsymbol{w}_{N-1}\right) \in \mathbb{R}^{d \times(N-1)}, \boldsymbol{w}_{i} \in \mathbb{R}^{d \times 1} W=(w1,w2,,wi,,wN1)Rd×(N1)wiRd×1
可求最优化问题:
min ⁡ w − tr ⁡ ( W T S b W )  s.t.  tr ⁡ ( W T S w W ) = 1 \begin{array}{ll}\min _{\boldsymbol{w}} & -\operatorname{tr}\left(\mathbf{W}^{\mathrm{T}} \mathbf{S}_{b} \mathbf{W}\right) \\ \text { s.t. } & \operatorname{tr}\left(\mathbf{W}^{\mathrm{T}} \mathbf{S}_{w} \mathbf{W}\right)=1\end{array} minw s.t. tr(WTSbW)tr(WTSwW)=1
从而得到:
∂ L ( W , λ ) ∂ W = − ∂ ( tr ⁡ ( W T S b W ) ) ∂ W + λ ∂ ( tr ⁡ ( W T S w W ) − 1 ) ∂ W = − ( S b + S b T ) W + λ ( S w + S w T ) W = − 2 S b W + 2 λ S w W \begin{aligned} \frac{\partial L(\mathbf{W}, \lambda)}{\partial \mathbf{W}}=&-\frac{\partial\left(\operatorname{tr}\left(\mathbf{W}^{\mathrm{T}} \mathbf{S}_{b} \mathbf{W}\right)\right)}{\partial \mathbf{W}}+\lambda \frac{\partial\left(\operatorname{tr}\left(\mathbf{W}^{\mathrm{T}} \mathbf{S}_{w} \mathbf{W}\right)-1\right)}{\partial \mathbf{W}} \\=&-\left(\mathbf{S}_{b}+\mathbf{S}_{b}^{\mathrm{T}}\right) \mathbf{W}+\lambda\left(\mathbf{S}_{w}+\mathbf{S}_{w}^{\mathrm{T}}\right) \mathbf{W} \\ =& -2 \mathbf{S}_{b} \mathbf{W}+2 \lambda \mathbf{S}_{w} \mathbf{W} \end{aligned} WL(W,λ)===W(tr(WTSbW))+λW(tr(WTSwW)1)(Sb+SbT)W+λ(Sw+SwT)W2SbW+2λSwW
从而:
S b W = λ S w W \mathbf{S}_{b} \mathbf{W}=\lambda \mathbf{S}_{w} \mathbf{W} SbW=λSwW
W \mathbf{W} W的闭式解为 S w − 1 S b \mathbf{S}_{w}^{-1} \mathbf{S}_{b} Sw1Sb d ′ d^{\prime} d个最大非零广义特征值对应的特征向量组成的矩阵, d ′ ≤ N − 1 d^{\prime} \le N-1 dN1

多分类学习

很多情况下,多分类是利用二分类学习实现的,比如上面的推广本质还是二分类学习。通常对于多分类学习,可以拆解成二分类,通常的拆分方法有:

一对一(one vs. one, OvO)

将数据集中的类别两两配对进行学习,预测中最终取被分类器投票最多的类别。

一对其余(One vs. Rest,OvR)

每次将数据集中的一类作为正例,其余类别均为反例,进行学习,这样学习器个数比一对一时候少很多,但是每个学习器涉及的样本数更多,最终选择分类器中预测置信度最大的预测结果。

多对多(Many vs. Many,MvM)

每次将其中几类作为正例,另外几类作为反例,但是正反例选取不随意,需要特殊设计,书上介绍了一个最常用的技术:纠错输出码(error correcting output codes,ECOC),他将编码的思想引入类别拆分,从而使得解码中有一定的容错性(联想计算机组成原理中的汉明码)

ECOC 编码/学习

对于N个类别划分M次,每次让一部分为正类,一部分为负类,对应了M个分类器,从而有N个类各自的M位编码。学习之后形成“编码矩阵”(coding matrix),常用的为二元码和三元码(多一个停用类)。(如下图)

ECOC 解码/预测

对于要预测/测试的样本,将其经过M个分类器编码后,得到其M位编码,选择与该编码距离最小的类编编码作为对应的预测类别。(如下图)
请添加图片描述

类别不平衡问题(class- imbalance)

通常在数据集中会出现一些类别偏多,一些类别偏少的情况。在理想情况下,假如训练集是真实分布的无偏采样,那么,直接引入观测率的影响即可:
y 1 − y > m + m − \frac{y}{1-y}>\frac{m^{+}}{m^{-}} 1yy>mm+
即,如果预测的正例相对反例几率(odds)大于观测概率就判为正例,或者可以转化为一个对于比值的再放缩(rescaling)或再平衡(rebalance):
y ′ 1 − y ′ = y 1 − y × m − m + \frac{y^{\prime}}{1-y^{\prime}}=\frac{y}{1-y} \times \frac{m^{-}}{m^{+}} 1yy=1yy×m+m
但是“无偏采样”实际往往并不如此或者也无法确认,因此常用的应对类别不平衡的技术主要有三种:

对过多类的类欠采样(undersampling)/下采样(downsampling)

对多的类少采样,从而使训练用的数据集中各类别数相当。欠采样要注意不要随意丢弃,因为可能丢掉一些关键信息,常用的算法是EasyEnsemble,利用集成学习机制,将过多的类样本划分为几个数据集,共不同的学习器使用,从而在学习器上进行了欠采样但总体没有丢失信息。

对过少的类过采样(oversampling)/上采样(upsampling)

对少的类多采样,从而使训练用的数据集中各类别数相当。过采样注意不是重复对正例样本采样,代表性算法为SMOTE,对训练集正例的样本进行插值产生额外正例,这样做可以防止过拟合。

预测时的阈值移动(threshold-moving)

训练时还是使用原始的类别不平衡的数据集,但是预测时,将观测几率(上式)考虑进去,从而相当于进行预测阈值的放缩/平移。

猜你喜欢

转载自blog.csdn.net/qq_26928055/article/details/125832911