机器学习——线性模型

线性模型

基本形式

给定由 d d d个属性描述的示例 x = ( x 1 ; x 2 ; . . . ; x d ) \pmb{x}=(x_1;x_2;...;x_d) xxx=(x1;x2;...;xd),其中 x i x_i xi x \pmb{x} xxx在第 i i i个属性上的取值,线性模型试图学的一个通过属性的线性组合来进行预测的函数,即
f ( x ) = w 1 x 1 + w 2 x 2 + . . . + w d x d + b f(\pmb{x})=w_1x_1+w_2x_2+...+w_dx_d+b f(xxx)=w1x1+w2x2+...+wdxd+b
一般用向量形式写成
f ( x ) = w T x + b f(\pmb{x})=\pmb{w}^T\pmb{x}+b f(xxx)=wwwTxxx+b

线性模型形式简单、易于建模 w \pmb{w} www直观表达了各属性的重要性,因此线性模型有很好的可解释性

线性回归

对于给定数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } D=\{(\pmb{x}_1,y_1), (\pmb{x}_2,y_2), ... ,(\pmb{x}_m,y_m)\} D={(xxx1,y1),(xxx2,y2),...,(xxxm,ym)},线性回归试图学得 f ( x i ) = w T x i + b , 使 得 f ( x i ) ≃ y i f(\pmb{x}_i)=\pmb{w}^T\pmb{x}_i+b,使得f(\pmb{x}_i)\simeq y_i f(xxxi)=wwwTxxxi+b使f(xxxi)yi
均方误差是回归任务中最常用的性能度量,因此我们可以试图让均方误差最小化,即
( w ∗ , b ∗ ) = arg ⁡ min ⁡ ( w , b )    ∑ i = 1 m ( f ( x i ) − y i ) 2 = arg ⁡ min ⁡ ( w , b )    ∑ i = 1 m ( y i − w T x i − b ) 2 \begin{aligned} (\pmb{w}^*,b^*) &= \mathop{\arg\min}\limits_{(w,b)} \ \ \sum_{i=1}^{m}(f(\pmb{x}_i)-y_i)^2 \\ &= \mathop{\arg\min}\limits_{(w,b)} \ \ \sum_{i=1}^{m}(y_i-\pmb{w}^T\pmb{x}_i-b)^2 \end{aligned} (www,b)=(w,b)argmin  i=1m(f(xxxi)yi)2=(w,b)argmin  i=1m(yiwwwTxxxib)2
基于均方误差来求解模型的方法称为最小二乘法,就是试图找到一条直线( x x x是1维),使所有样本到所有直线上的欧式距离之和最小。
为便于讨论,我们把 w w w b b b吸收入向量形式 w ^ = ( w ; b ) \pmb{\hat{w}}=(\pmb{w}; b) w^w^w^=(www;b),相应的,把数据集D表示成一个 m × ( d + 1 ) m\times(d+1) m×(d+1)大小的矩阵 X \mathbf{X} X,最后一列元素恒置为1,即
X = ( x 1 1 x 1 2 ⋯ x 1 d 1 x 2 1 x 2 2 ⋯ 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}=\begin{pmatrix} x_11 & x_12 & \cdots & x_1d & 1\\ x_21 & x_22 & \cdots & x_2d & 1\\ \vdots & \vdots & \ddots & \vdots & \vdots \\ x_m1 & x_m2 & \cdots & x_md & 1 \end{pmatrix} =\begin{pmatrix} \pmb{x}_{1}^{T} & 1\\ \pmb{x}_{2}^{T} & 1\\ \vdots & \vdots\\ \pmb{x}_{m}^{T} & 1 \end{pmatrix} X=x11x21xm1x12x22xm2x1dx2dxmd111=xxx1Txxx2TxxxmT111
再把 y \pmb{y} yyy也同样改写成向量形式,我们可以得到优化目标:
w ^ ∗ = arg ⁡ min ⁡ w ^    ( y − X w ^ ) T ( y − X w ^ ) \hat{w}^*=\mathop{\arg\min}\limits_{\hat{w}}\ \ (\pmb{y}-\mathbf{X}\pmb{\hat{w}})^T(\pmb{y}-\mathbf{X}\pmb{\hat{w}}) w^=w^argmin  (yyyXw^w^w^)T(yyyXw^w^w^)
E w ^ = ( y − X w ^ ) T ( y − X w ^ ) E_{\hat{w}}=(\boldsymbol{y}-\mathbf{X} \hat{\boldsymbol{w}})^{\mathrm{T}}(\boldsymbol{y}-\mathbf{X} \hat{\boldsymbol{w}}) Ew^=(yXw^)T(yXw^),对 w ^ \hat w w^求导得到
∂ E w ^ ∂ w ^ = 2 X T ( X w ^ − y ) \frac{\partial E_{\hat{w}}}{\partial \hat{w}}=2 \mathbf{X}^{\mathrm{T}}(\mathbf{X} \hat{w}-\boldsymbol{y}) w^Ew^=2XT(Xw^y)

推导过程:
两个矩阵求导重要公式:
∂ ( A T W T B ) ∂ W = B A T              ∂ ( A T W B ) ∂ W = A B T \frac{\partial\left(A^{T} W^{T} B\right)}{\partial W}=B A^{T}\ \ \ \ \ \ \ \ \ \ \ \ \frac{\partial\left(A^{T} W B\right)}{\partial{W}}=A B^{T} W(ATWTB)=BAT            W(ATWB)=ABT
具体推导过程如下:
∂ ( y T X W ) ∂ W = ( y T X ) T = X T y \frac{\partial\left(y^{T} X W\right)}{\partial W}=\left(y^{T} X\right)^{T}=X^{T} y W(yTXW)=(yTX)T=XTy
∂ ( W T X T y ) ∂ W = X T y \frac{\partial\left(W^{T} X^{T} y\right)}{\partial W}=X^{T} y W(WTXTy)=XTy
∂ ( W T X T X W ) ∂ W = X T X W + ( W T X T X ) T = 2 X T X W \frac{\partial\left(W^{T} X^{T} X W\right)}{\partial W}=X^{T} X W+\left(W^{T} X^{T} X\right)^{T}=2 X^{T} X W W(WTXTXW)=XTXW+(WTXTX)T=2XTXW
∂ ( y T y − y T X W − W T X T y + W T X T X W ) ∂ W = 2 X T X W − 2 X T Y \frac{\partial\left(y^{T} y-y^{T} X W-W^{T} X^{T} y+W^{T} X^{T} X W\right)}{\partial W}=2 X^{T} X W-2 X^{T} Y W(yTyyTXWWTXTy+WTXTXW)=2XTXW2XTY

令上式为零可得 w ^ \hat w w^最优解的闭式解
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
线性回归模型为
f ( x ^ i T ) = x ^ i T ( X T X ) − 1 X T y f(\hat x_i^ T)=\pmb{\hat x}_i^T\left(\mathbf{X}^{\mathrm{T}} \mathbf{X}\right)^{-1} \mathbf{X}^{\mathrm{T}} \boldsymbol{y} f(x^iT)=x^x^x^iT(XTX)1XTy
然而在现实任务中 X T X \mathbf{X}^{\mathrm{T}} \mathbf{X} XTX往往不是满秩矩阵。例如在许多任务中我们遇到大量的变量,或者样本数量少,导致 X \mathbf{X} X的列数多于行数。此时可解出多个 w ^ \hat w w^,选择哪个解作为输出由学习算法的归纳偏好决定,常见的方法是引入正则化项。

更一般的考虑可微函数 g ( ⋅ ) g(·) g(),令
y = g − 1 ( w T x + b ) y=g^{-1}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b\right) y=g1(wTx+b)
这样得到的模型称为“广义线性模型”。

对数几率回归(逻辑回归)

考虑二分类任务,其输出标记 y ∈ { 0 , 1 } y\in \{0,1\} y{0,1},而线性回归模型产生的预测值 z = w T x + b z=\pmb{w}^T\pmb{x}+b z=wwwTxxx+b是实值。根据广义线性模型:只需要一个单调可微函数将分类任务的真实标记 y y y与线性回归模型的预测值联系起来。于是,我们将实值 z z z转换为0/1值,最理想的是“单位阶跃函数”
y = { 0 , z < 0 0.5 , z = 0 1 , z > 0 y=\left\{\begin{array}{cc} 0, & z<0 \\ 0.5, & z=0 \\ 1, & z>0 \end{array}\right. y=0,0.5,1,z<0z=0z>0
即预测值 z z z若大于零就判为正例,小于零则判为反例,预测值为临界值零则可任意判别,如图所示:
在这里插入图片描述
从图中可以看出,单位阶跃函数并不连续,我们希望找到一个单调可微的函数,对数几率函数正式这样一个常用的替代函数:
y = 1 1 + e − z y=\frac{1}{1+e^{-z}} y=1+ez1
对数几率函数是一种“Sigmoid函数”,它将 z z z值转化为一个接近0或1的 y y y值,并且其输出值在 z = 0 z=0 z=0附近变化很陡,带入线性回归模型可以得到
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

一个事件的几率(odds)是指该事件发生的概率与该事件不发生的概率的比值。如果事件发生的概率是 p p p,那么该事件的几率是 p 1 − p \frac {p} {1-p} 1pp,该事件的对数几率(log odds)或logit函数是 l o g i t ( p ) = l o g p 1 − p logit(p) = log \frac {p} {1-p} logit(p)=log1pp

可以变化为
ln ⁡ y 1 − y = w T x + b \ln \frac{y}{1-y}=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b ln1yy=wTx+b
若将 y y y视为样本 x \pmb x xxx作为正例的可能性,则 1 − y 1-y 1y是其反例可能性,两者的比值 y 1 − y \frac{y}{1-y} 1yy称为“几率”,反映了x作为正例的相对可能性。

逻辑回归具有很多优点:直接对分类可能性建模,无需实现假设数据分布,这样就避免了假设分布不准确所带来的问题;不仅预测出“类别”,而是可得到近似概率预测,这对许多需利用概率辅助决策的任务很有用;求解的目标函数是任意阶可导的凸函数,易于求取最优解

y y y视为类后验概率估计 p ( y = 1 ∣ x ) p(y=1|\pmb x) p(y=1xxx),则可重写为:
ln ⁡ p ( y = 1 ∣ x ) p ( y = 0 ∣ x ) = w T x + b \ln \frac{p(y=1 \mid \boldsymbol{x})}{p(y=0 \mid \boldsymbol{x})}=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b lnp(y=0x)p(y=1x)=wTx+b
显然有
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
于是,我们可以通过“极大似然法”来估计 w \pmb w www b b b。给定数据集 { ( x i , y i ) } i = 1 m \left\{\left(\boldsymbol{x}_{i}, y_{i}\right)\right\}_{i=1}^{m} {(xi,yi)}i=1m,得到最大化对数似然函数:
ℓ ( w , b ) = ∑ i = 1 m ln ⁡ p ( y i ∣ x i ; w , b ) \ell(\boldsymbol{w}, b)=\sum_{i=1}^{m} \ln p\left(y_{i} \mid \boldsymbol{x}_{i} ; \boldsymbol{w}, b\right) (w,b)=i=1mlnp(yixi;w,b)
即令每个样本书育其真实标记的概率越大越好,为便于讨论,令 β = ( x ; b ) \boldsymbol{\beta}=(\pmb x;b) β=(xxx;b) x ^ = ( x ; 1 ) \hat{\pmb x}=(\pmb x;1) xxx^=(xxx;1),则 w T x + b \pmb w^T\pmb x+b wwwTxxx+b可简写为 β T x ^ \boldsymbol{\beta}^T\hat{\pmb x} βTxxx^。再令 p 1 ( x ^ ; β ) = p ( y = 1 ∣ x ^ ; β ) p_{1}(\hat{\boldsymbol{x}} ; \boldsymbol{\beta})=p(y=1 \mid \hat{\boldsymbol{x}} ; \boldsymbol{\beta}) p1(x^;β)=p(y=1x^;β) p 0 ( x ^ ; β ) = p ( y = 0 ∣ x ^ ; β ) = 1 − p 1 ( x ^ ; β ) p_{0}(\hat{\boldsymbol{x}} ; \boldsymbol{\beta})=p(y=0 \mid \hat{\boldsymbol{x}} ; \boldsymbol{\beta})=1-p_{1}(\hat{\boldsymbol{x}} ; \boldsymbol{\beta}) p0(x^;β)=p(y=0x^;β)=1p1(x^;β),则上式的似然项可重写为:
p ( y i ∣ x i ; w , b ) = y i p 1 ( x ^ i ; β ) + ( 1 − y i ) p 0 ( x ^ i ; β ) p\left(y_{i} \mid \boldsymbol{x}_{i} ; \boldsymbol{w}, b\right)=y_{i} p_{1}\left(\hat{\boldsymbol{x}}_{i} ; \boldsymbol{\beta}\right)+\left(1-y_{i}\right) p_{0}\left(\hat{\boldsymbol{x}}_{i} ; \boldsymbol{\beta}\right) p(yixi;w,b)=yip1(x^i;β)+(1yi)p0(x^i;β)
最大化似然公式等价于最小化
ℓ ( β ) = ∑ i = 1 m ( − y i β T x ^ i + ln ⁡ ( 1 + e β T x ^ i ) ) \ell(\boldsymbol{\beta})=\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) (β)=i=1m(yiβTx^i+ln(1+eβTx^i))
上式是关于 β \boldsymbol{\beta} β的高阶可导连续凸函数,根据凸优化理论,经典的数值优化算法如梯度下降法、牛顿法等都可以求得其最优解,于是就得到
β ∗ = arg ⁡ min ⁡ β ℓ ( β ) \boldsymbol{\beta}^{*}=\underset{\boldsymbol{\beta}}{\arg \min } \ell(\boldsymbol{\beta}) β=βargmin(β)

线性判别分析

线性判别分析(Linear Discriminant Analysis,简称LDA)是一种经典的线性学习方法。
LDA的思想非常朴素:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。如图所示。
在这里插入图片描述
给定数据集 D = { ( x i , y i ) } i = 1 m , y i ∈ { 0 , 1 } D=\left\{\left(\boldsymbol{x}_{i}, y_{i}\right)\right\}_{i=1}^{m}, y_{i} \in\{0,1\} D={(xi,yi)}i=1m,yi{0,1},令 X i , μ i , Σ i X_{i}, \boldsymbol{\mu}_{i}, \mathbf{\Sigma}_{i} Xi,μi,Σi分别表示第 i ∈ { 0 , 1 } i \in\{0,1\} i{0,1}类示例的集合、均值向量、协方差矩阵。若将数据投影到直线 w \pmb w www上,则两类样本的中心在直线上的投影分别为 w T μ 0 \boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{0} wTμ0 w T μ 1 \boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{1} wTμ1;若将所有样本点都投影到直线上,则两类样本的协方差分别为 w T Σ 0 w \boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{0} \boldsymbol{w} wTΣ0w w T Σ 1 w \boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{1} \boldsymbol{w} wTΣ1w。由于直线是一维空间,因此 w T μ 0 、 w T μ 1 , w T Σ 0 w \boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{0} 、 \boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{1}, \boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{0} \boldsymbol{w} wTμ0wTμ1,wTΣ0w w T Σ 1 w \boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{1} \boldsymbol{w} wTΣ1w均为实数。

上述公式均可通过点积方式推导出。其中协方差就是同一类中两个样本在直线投影结果的乘积。

想要使同类样例的投影点尽可能接近,可以让协方差尽可能小,即 w T Σ 0 w + w T Σ 1 w \boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{0} \boldsymbol{w}+\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{1} \boldsymbol{w} wTΣ0w+wTΣ1w尽可能小;而欲使异类样例的投影点尽可能远离,可以让类中心距离尽可能大,即 ∥ w T μ 0 − w T μ 1 ∥ 2 2 \left\|\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{0}-\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{1}\right\|_{2}^{2} wTμ0wTμ122尽可能大,同时考虑二者,则可得到欲最大化的目标。

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Σ1wwTμ0wTμ122=wT(Σ0+Σ1)wwT(μ0μ1)(μ0μ1)Tw
定义“类内散度矩阵”:
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
这就是LDA欲最大化的目标,即 S b \mathbf{S}_{b} Sb S w \mathbf{S}_{w} Sw的“广义瑞利商”。
不失一般性,令 w T S w w = 1 \boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{w} \boldsymbol{w}=1 wTSww=1,则优化目标变为:
min ⁡ w − w T S b w  s.t.  w T S w w = 1 \begin{aligned} \min _{\boldsymbol{w}} &-\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{b} \boldsymbol{w} \\ \text { s.t. } & \boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{w} \boldsymbol{w}=1 \end{aligned} wmin s.t. wTSbwwTSww=1
由拉格朗日乘子法,上式等价于
S b w = λ S w w \mathbf{S}_{b} \boldsymbol{w}=\lambda \mathbf{S}_{w} \boldsymbol{w} Sbw=λSww
注意到 S b w \mathbf{S}_{b} \boldsymbol{w} Sbw的方向恒为 μ 0 − μ 1 \mu_{0}-\mu_{1} μ0μ1,不妨令
S b w = λ ( μ 0 − μ 1 ) \mathbf{S}_{b} \boldsymbol{w}=\lambda\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right) Sbw=λ(μ0μ1)

本人理解:因为我们最后求得的 w \pmb w www,代表一个方向,所以乘以常数对结果没有影响。

可得
w = S w − 1 ( μ 0 − μ 1 ) \boldsymbol{w}=\mathbf{S}_{w}^{-1}\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right) w=Sw1(μ0μ1)

最后将LDA推广到多分类任务中,假定存在 N N N个类,且第 i i i类示例数位 m i m_i mi。我们先定义“全局散度矩阵”
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
其中 μ \boldsymbol{\mu} μ是所有示例的均值向量。将类内散度矩阵 S w \pmb S_w SSSw重定义为每个类别的散度矩阵之和,即
S w = ∑ i = 1 N S w i \mathbf{S}_{w}=\sum_{i=1}^{N} \mathbf{S}_{w_{i}} Sw=i=1NSwi
其中
S w i = ∑ x ∈ X i ( x − μ i ) ( x − μ i ) T \mathbf{S}_{w_{i}}=\sum_{x \in X_{i}}\left(\boldsymbol{x}-\boldsymbol{\mu}_{i}\right)\left(\boldsymbol{x}-\boldsymbol{\mu}_{i}\right)^{\mathrm{T}} Swi=xXi(xμi)(xμi)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
显然,多分类LDA可以有多种实现方法:使用 S b , S w , S t \mathbf{S}_{b}, \mathbf{S}_{w}, \mathbf{S}_{t} Sb,Sw,St三者中的任何两个即可,常见的一种实现是采用优化目标
max ⁡ W tr ⁡ ( W T S b W ) tr ⁡ ( W T S w W ) \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)} Wmaxtr(WTSwW)tr(WTSbW)
若将 W \mathbf W W视为一个投影矩阵,则多分类LDA将样本投影到 d d d维空间, W ∈ R d × n \mathbf{W} \in \mathbb{R}^{d \times n} WRd×n。于是可通过这个投影来减小样本点的维数,且投影过程中使用了类别信息,因此LDA也常被视为一种经典的监督降维技术。

多分类学习

考虑 N N N个类别, C 1 , C 2 , … , C N C_{1}, C_{2}, \ldots, C_{N} C1,C2,,CN,多分类学习的基本思路是“拆解法”,即将多分类任务拆分为若干个二分类任务求解。关键是如何对多分类任务进行拆分,以及如何对多个分类器进行集成。
最经典的拆分策略有三种:“一对一”(OvO)、“一对其余”(OvR)和“多对多”(MvM)。

给定数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x m , y m ) } , y i ∈ { C 1 , C 2 , … , C N } D=\left\{\left(\boldsymbol{x}_{1}, y_{1}\right),\left(\boldsymbol{x}_{2}, y_{2}\right), \ldots,\left(\boldsymbol{x}_{m}, y_{m}\right)\right\}, y_{i} \in\left\{C_{1}, C_{2}, \ldots, C_{N}\right\} D={(x1,y1),(x2,y2),,(xm,ym)},yi{C1,C2,,CN}。OvO将这 N N N个类别两两配对,从而产生 N ( N − 1 ) / 2 N(N-1)/2 N(N1)/2个二分类任务。对于新样本将同时交给所有分类器,于是我们得到 N ( N − 1 ) / 2 N(N-1)/2 N(N1)/2个分类结果,最终结果可通过投票产生:即把被预测得最多的类别作为最终分类结果。

OvR将每一个类的样例作为正例、所有其他类的样例作为反例来训练 N N N个分类器。在测试时若仅有一个分类器预测为正类,则对应的类别标记作为最终分类结果。若有多个分类器预测为正类,则通常考虑各分类器的预测置信度,选择置信度最大的类别标记作为分类结果。

OvR只需要 N N N个分类器,而OvO需训练 N ( N − 1 ) / 2 N(N-1)/2 N(N1)/2个分类器,但在训练时,OvR的每个分类器均使用全部训练样例,而OvO的每个分类器仅用到两个类的样例。

MvM是每次将若干个类作为正类,若干个其他类作为反类。显然,OvO和OvR是MvM的特例。一种常用的MvM技术:“纠错输出码”(ECOC)。主要过程分为两步:

  • 编码:对 N N N个类别做 M M M次划分,每次划分将一部分类别划分为正类,一部分划分为反类,从而形成一个二分类训练集。这样可以训练出 M M M个分类器。
  • 解码: M M M个分类器分别对测试样本进行预测,这些预测标记组成一个编码。将这个预测编码与每个类别各自的编码进行比较,返回其中距离最小的类别作为最终预测结果。

编码越长,纠错能力越强,意味着所需训练的分类器越多。同等长度的编码,任意两个类别之间的编码距离越远,则纠错能力越强。

类别不平衡问题

现有技术大体上有三种做法:

  • 欠采样,去除多余的样例,使正反样例数目接近。
  • 过采样,增加缺失的样例,使正反样例数目接近。
  • 再缩放,根据正反样例数目,调整阈值。

参考知乎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值