周志华第三章线性模型

线性模型

谈及线性模型,其实我们很早就已经与它打过交道,还记得高中数学必修3课本中那个顽皮的“最小二乘法”吗?这就是线性模型的经典算法之一:根据给定的(x,y)点对,求出一条与这些点拟合效果最好的直线y=ax+b,之前我们利用下面的公式便可以计算出拟合直线的系数a,b,从而对于一个新的x,可以预测它所对应的y值。在机器学习的术语中,当预测值为连续值时,称为“回归问题”,离散值时为“分类问题”。本篇先从线性回归任务开始,接着讨论分类和多分类问题。
b = x 1 y 1 + x 2 y 2 + ⋯ + x n y n − n x ‾ y ‾ x 1 2 + x 2 2 + ⋯ + x n 2 − n x ‾ 2 b=\frac{x_1y_1+x_2y_2+\cdots+x_ny_n-n\overline{x}\overline{y}}{x_1^2+x_2^2+\cdots+x_n^2-n\overline{x}^2} b=x12+x22++xn2nx2x1y1+x2y2++xnynnxy

a = y ‾ − b x ‾ a=\overline{y}-b\overline{x} a=ybx

线性回归

线性回归问题就是试图学到一个线性模型尽可能准确地预测新样本的输出值,例如:通过历年的人口数据预测2017年人口数量。在这类问题中,往往我们会先得到一系列的有标记数据,例如:2000–>13亿…2016–>15亿,这时输入的属性只有一个,即年份;也有输入多属性的情形,假设我们预测一个人的收入,这时输入的属性值就不止一个了,例如:(学历,年龄,性别,颜值,身高,体重)–>15k。

有时这些输入的属性值并不能直接被我们的学习模型所用,需要进行相应的处理,对于连续值的属性,一般都可以被学习器所用,有时会根据具体的情形作相应的预处理,例如:归一化等;对于离散值的属性,可作下面的处理:

  • 若属性值之间存在“序关系”,则可以将其转化为连续值,例如:身高属性分为“高”“中等”“矮”,可转化为数值:{1, 0.5, 0}。

  • 若属性值之间不存在“序关系”,则通常将其转化为向量的形式,例如:性别属性分为“男”“女”,可转化为二维向量:{(1,0),(0,1)}。

  1. 当输入属性只有一个的时候,就是最简单的情形,也就是我们高中时最熟悉的“最小二乘法”(Euclidean distance),线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线的欧氏距离之和最小,首先计算出每个样本预测值与真实值之间的误差并求和,通过最小化均方误差MSE,使用求偏导等于零的方法计算出拟合直线y=wx+b的两个参数w和b,计算过程如下所示:
    ( 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 x i − b ) 2 , 代 入 y = w x + b \begin{aligned} (w^*,b^*)&=\underset{(w,b)}{\arg\min}\sum_{i=1}^m(f(x_i)-y_i)^2 ,求均方误差最小的参数\\ &=\underset{(w,b)}{\arg\min}\sum_{i=1}^m(y_i-wx_i-b)^2 ,代入y=wx+b \end{aligned} (w,b)=(w,b)argmini=1m(f(xi)yi)2,=(w,b)argmini=1m(yiwxib)2,y=wx+b
    E ( w , b ) = ∑ i = 1 m ( y i − w x i − b ) 2 , 展 开 = ∑ i = 1 m ( w x i − ( y i − b ) ) 2 = ∑ i = 1 m ( w 2 x i 2 − 2 w x i ( y i − b ) + ( y i − b ) 2 ) = ∑ i = 1 m ( b − ( y i − w x i ) ) 2 = ∑ i = 1 m ( b 2 − 2 b ( y i − w x i ) + ( y i − w x i ) 2 ) \begin{aligned} E_{(w,b)}&=\sum_{i=1}^m(y_i-wx_i-b)^2,展开\\ &=\sum_{i=1}^m(wx_i-(y_i-b))^2\\ &=\sum_{i=1}^m(w^2x_i^2-2wx_i(y_i-b)+(y_i-b)^2)\\ &=\sum_{i=1}^m(b-(y_i-wx_i))^2\\ &=\sum_{i=1}^m(b^2-2b(y_i-wx_i)+(y_i-wx_i)^2) \end{aligned} E(w,b)=i=1m(yiwxib)2,=i=1m(wxi(yib))2=i=1m(w2xi22wxi(yib)+(yib)2)=i=1m(b(yiwxi))2=i=1m(b22b(yiwxi)+(yiwxi)2)

    E ( w , b ) E_{(w,b)} E(w,b) x 2 x^2 x2模式,为凸函数,所以导数为0时误差最小

    ∂ E ( w , b ) ∂ w = 2 ( w ∑ i = 1 m x i 2 + ∑ i = 1 m x i ( y i − b ) ) , 对 w 求 偏 导 ∂ E ( w , b ) ∂ b = 2 ( ∑ i = 1 m b − ∑ i = 1 m ( y i − w x i ) ) , 对 b 求 偏 导 = 2 ( m b − ∑ i = 1 m ( y i − w x i ) ) \begin{aligned} \frac{\partial{E_(w,b)}}{\partial{w}}&=2(w\sum_{i=1}^mx_i^2+\sum_{i=1}^mx_i(y_i-b)),对w求偏导\\ \frac{\partial{E_(w,b)}}{\partial{b}}&=2(\sum_{i=1}^mb-\sum_{i=1}^m(y_i-wx_i)),对b求偏导\\ &=2(mb-\sum_{i=1}^m(y_i-wx_i)) \end{aligned} wE(w,b)bE(w,b)=2(wi=1mxi2+i=1mxi(yib)),w=2(i=1mbi=1m(yiwxi)),b=2(mbi=1m(yiwxi))

    令 $\overline{x}=\frac1m\sum_{i=1}^mx_i $

    求解b
    2 ( m b − ∑ i = 1 m ( y i − w x i ) ) = 0 b = 1 m ∑ i = 1 m ( y i − w x i ) , 令 偏 导 = 0 = 1 m ∑ i = 1 m y i − w 1 m ∑ i = 1 m x i = 1 m ∑ i = 1 m y i − w x ‾ \begin{aligned} &2(mb-\sum_{i=1}^m(y_i-wx_i))=0\\ b&=\frac1m\sum_{i=1}^m(y_i-wx_i),令偏导=0\\ &=\frac1m\sum_{i=1}^my_i-w\frac1m\sum_{i=1}^mx_i\\ &=\frac1m\sum_{i=1}^my_i-w\overline{x} \end{aligned} b2(mbi=1m(yiwxi))=0=m1i=1m(yiwxi),=0=m1i=1myiwm1i=1mxi=m1i=1myiwx

    实际就是经过样本的均值点

    求解w
    2 ( w ∑ i = 1 m x i 2 + ∑ i = 1 m x i ( y i − b ) ) = 0 2(w\sum{i=1}^mx_i^2+\sum{i=1}^mx_i(y_i-b))=0 2(wi=1mxi2+i=1mxi(yib))=0

    w ∑ i = 1 m x i 2 = ∑ i = 1 m ( y i − b ) x i = ∑ i = 1 m ( x i y i − b x i ) = ∑ i = 1 m x i y i − b ∑ i = 1 m x i = ∑ i = 1 m x i y i − ∑ i = 1 m x i ( 1 m ∑ i = 1 m y i − w x ‾ ) = ∑ i = 1 m x i y i − 1 m ∑ i = 1 m x i ∑ i = 1 m y i − w x ‾ ∑ i = 1 m x i \begin{aligned} w\sum_{i=1}^mx_i^2&=\sum_{i=1}^m(y_i-b)x_i\\ &=\sum_{i=1}^m(x_iy_i-bx_i)\\ &=\sum_{i=1}^mx_iy_i-b\sum_{i=1}^mx_i\\ &=\sum_{i=1}^mx_iy_i-\sum_{i=1}^mx_i(\frac1m\sum_{i=1}^my_i-w\overline{x})\\ &=\sum_{i=1}^mx_iy_i-\frac1m\sum_{i=1}^mx_i\sum_{i=1}^my_i-w\overline{x}\sum_{i=1}^mx_i \end{aligned} wi=1mxi2=i=1m(yib)xi=i=1m(xiyibxi)=i=1mxiyibi=1mxi=i=1mxiyii=1mxi(m1i=1myiwx)=i=1mxiyim1i=1mxii=1myiwxi=1mxi
    w ( ∑ i = 1 m x i 2 − x ‾ ∑ i = 1 m x i ) = ∑ i = 1 m x i y i − 1 m ∑ i = 1 m x i ∑ i = 1 m y i w(\sum{i=1}^mx_i^2-\overline{x}\sum{i=1}^mx_i)=\sum{i=1}^mx_iy_i-\frac1m\sum{i=1}^mx_i\sum_{i=1}^my_i w(i=1mxi2xi=1mxi)=i=1mxiyim1i=1mxii=1myi

    w = ∑ i = 1 m x i y i − 1 m ∑ i = 1 m x i ∑ i = 1 m y i ∑ i = 1 m x i 2 − x ‾ ∑ i = 1 m x i = ∑ i = 1 m x i y i − x ‾ ∑ i = 1 m y i ∑ i = 1 m x i 2 − 1 m ∑ i = 1 m x i ∑ i = 1 m x i = ∑ i = 1 m y i ( x i − x ‾ ) ∑ i = 1 m x i 2 − 1 m ( ∑ i = 1 m x i ) 2 \begin{aligned} w&=\frac{\sum_{i=1}^mx_iy_i-\frac1m\sum_{i=1}^mx_i\sum_{i=1}^my_i}{\sum_{i=1}^mx_i^2-\overline{x}\sum_{i=1}^mx_i}\\ &=\frac{\sum_{i=1}^mx_iy_i-\overline{x}\sum_{i=1}^my_i}{\sum_{i=1}^mx_i^2-\frac1m\sum_{i=1}^mx_i\sum_{i=1}^mx_i}\\ &=\frac{\sum_{i=1}^my_i(x_i-\overline{x})}{\sum_{i=1}^mx_i^2-\frac1m(\sum_{i=1}^mx_i)^2} \end{aligned} w=i=1mxi2xi=1mxii=1mxiyim1i=1mxii=1myi=i=1mxi2m1i=1mxii=1mxii=1mxiyixi=1myi=i=1mxi2m1(i=1mxi)2i=1myi(xix)

  2. 当输入属性有多个的时候,例如对于一个样本有d个属性{(x1,x2…xd),y},则y=wx+b需要写成: y i = w 1 x i 1 + w 2 x i 2 + ⋯ + w d x i d + b y_i=w_1x_{i1}+w_2x_{i2}+\cdots+w_dx_{id}+b yi=w1xi1+w2xi2++wdxid+b
    通常对于多元问题,常常使用矩阵的形式来表示数据。在本问题中,将具有m个样本的数据集表示成矩阵X,将系数w与b合并成一个列向量,这样每个样本的预测值以及所有样本的均方误差最小化就可以写成下面的形式
    KaTeX parse error: Expected & or \\ or \cr or \end at position 34: …gin{pmatrix}w_1\̲ ̲w_2\ \cdots\ w_…

    KaTeX parse error: Expected & or \\ or \cr or \end at position 215: …\ \vdots&\vdots\̲ ̲x_{m}^T&1\\ \en…

    X ∗ w ^ = ( 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 ) ∗ ( w 1 w 2 ⋯ w d b ) = ( w 1 x 11 + w 2 x 12 + ⋯ + w d x 1 d + b w 1 x 21 + w 2 x 22 + ⋯ + w d x 2 d + b ⋯ w 1 x m 1 + w 2 x m 2 + ⋯ + w d x m d + b ) = ( f ( x 1 ) f ( x 2 ) ⋯ f ( x m ) ) \begin{aligned} X*\hat{w}&=\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}w_1\\ w_2\\ \cdots\\ w_d\\ b\end{pmatrix}\\ &=\begin{pmatrix} w_1x{11}+w_2x{12}+\cdots+w_dx_{1d}+b\\ w_1x{21}+w_2x{22}+\cdots+w_dx_{2d}+b\\ \cdots\\ w_1x{m1}+w_2x{m2}+\cdots+w_dx_{md}+b\\ \end{pmatrix}\\ &=\begin{pmatrix} f(x_1)\\ f(x_2)\\ \cdots\\ f(x_m)\\ \end{pmatrix} \end{aligned} Xw^=x11x21xm1x12x22xm2x1dx2dxmd111w1w2wdb=w1x11+w2x12++wdx1d+bw1x21+w2x22++wdx2d+bw1xm1+w2xm2++wdxmd+b=f(x1)f(x2)f(xm)
    w ^ ∗ = arg ⁡ min ⁡ w ^ ( y − x w ^ ) T ( y − x w ^ ) \hat{w}^*=\underset{\hat{w}}{\arg\min}(y-x\hat{w})^T(y-x\hat{w}) w^=w^argmin(yxw^)T(yxw^)
    同样地,我们使用最小二乘法对w和b进行估计,令均方误差的求导等于0,计算过程如下:

    E w ^ = ( y − x w ^ ) T ( y − x w ^ ) E_{\hat{w}}=(y-x\hat{w})^T(y-x\hat{w}) Ew^=(yxw^)T(yxw^)
    E w ^ = ( y T − ( X w ^ ) T ) ) ( y − x w ^ ) = ( y T − X T w ^ T ) ( y − x w ^ ) = ( X T w ^ T − y T ) ( x w ^ − y ) = w ^ T X T X w ^ − y T X w ^ − w ^ T X T y + y T y = w ^ T X T X w ^ − y T X w ^ − y T X w ^ + y T y , 此 处 每 一 个 单 项 式 的 结 果 都 是 1 ∗ 1 的 , 所 以 可 以 直 接 转 置 变 换 = w ^ T X T X w ^ − 2 y T X w ^ + y T y \begin{aligned} E_{\hat{w}}&=(y^T-(X\hat{w})^T))(y-x\hat{w})\\ &=(y^T-X^T\hat{w}^T)(y-x\hat{w})\\ &=(X^T\hat{w}^T-y^T)(x\hat{w}-y)\\ &=\hat{w}^TX^TX\hat{w}-y^TX\hat{w}-\hat{w}^TX^Ty+y^Ty\\ &=\hat{w}^TX^TX\hat{w}-y^TX\hat{w}-y^TX\hat{w}+y^Ty,此处每一个单项式的结果都是1*1的,所以可以直接转置变换\\ &=\hat{w}^TX^TX\hat{w}-2y^TX\hat{w}+y^Ty \end{aligned} Ew^=(yT(Xw^)T))(yxw^)=(yTXTw^T)(yxw^)=(XTw^TyT)(xw^y)=w^TXTXw^yTXw^w^TXTy+yTy=w^TXTXw^yTXw^yTXw^+yTy,11,=w^TXTXw^2yTXw^+yTy
    w ^ \hat{w} w^求导
    ∂ E w ^ ∂ w ^ = ( X T X + ( X T X ) T ) w ^ − 2 y T X , ∂ X T A X ∂ X = ( A + A T ) X = 2 X T X w ^ − 2 X T y \begin{aligned} \frac{\partial{E_{\hat{w}}}}{\partial{\hat{w}}}&=(X^TX+(X^TX)^T)\hat{w}-2y^TX,\frac{\partial{X^TAX}}{\partial{X}}=(A+A^T)X\\ &=2X^TX\hat{w}-2X^Ty \end{aligned} w^Ew^=(XTX+(XTX)T)w^2yTX,XXTAX=(A+AT)X=2XTXw^2XTy
    令上式=0,可得
    w ^ ∗ = ( X T X ) − 1 X T y \hat{w}^*=(X^TX)^{-1}X^Ty w^=(XTX)1XTy
    其中 ( X T X ) − 1 (X^TX)^{-1} (XTX)1 ( X T X ) (X^TX) (XTX)的逆矩阵, ( X T X ) (X^TX) (XTX)是满秩矩阵或非奇异矩阵
    x ^ i = ( x i , 1 ) \hat{x}_i=(x_i,1) x^i=(xi,1),则多元线性回归模型为
    f ( x ^ i ) = x i ^ T ( X T X ) − 1 X T y f(\hat{x}_i)=\hat{x_i}^T(X^TX)^{-1}X^Ty f(x^i)=xi^T(XTX)1XTy
    需要注意的是,当一个矩阵的行列式不等于0时,我们才可能对其求逆,因此对于下式,我们需要考虑矩阵(X的转置*X)的行列式是否为0,若不为0,则可以求出其解,若为0,则需要使用其它的方法进行计算,书中提到了引入正则化,此处不进行深入。

    另一方面,有时像上面这种原始的线性回归可能并不能满足需求,例如:y值并不是线性变化,而是在指数尺度上变化。这时我们可以采用线性模型来逼近y的衍生物,例如 ln ⁡ y \ln{y} lny,这时衍生的线性模型就是对数线性回归
    ln ⁡ y = w T x + b \ln{y}=w^Tx+b lny=wTx+b
    如下所示,实际上就是相当于将指数曲线投影在一条直线上,形式上还是线性回归的,但实质上已是在求取输入空间到输出空间的非线性函数映射
    对数线性回归
    更一般地,考虑所有y的衍生物的情形,就得到了“广义的线性模型”(generalized linear model),其中,g(*)称为联系函数(link function),是单调可微函数
    y = g − 1 ( w T x + b ) y=g^{-1}(w^Tx+b) y=g1(wTx+b)

线性几率回归

回归就是通过输入的属性值得到一个预测值,利用上述广义线性模型的特征,是否可以通过一个联系函数,将预测值转化为离散值从而进行分类呢?线性几率回归正是研究这样的问题。
最理想的是单位阶跃函数(unit-step function)
y = { 0 , z &lt; 0 0.5 , z = 0 1 , z &gt; 0 y=\begin{aligned} \begin{cases} 0,&amp;z&lt;0\\ 0.5,&amp;z=0\\1,&amp;z&gt;0 \end{cases} \end{aligned} y=0,0.5,1,z<0z=0z>0
然而单位阶跃函数不连续,不能直接用作 g − ( . ) g^{-}(.) g(.),所以可引入对数几率函数(logistic function)代替
y = 1 1 + e − z y=\frac{1}{1+e^{-z}} y=1+ez1
对数几率函数是一种sigmoid函数,是常用的替代函数(surrogate function),将预测值投影到0-1之间,从而将线性回归问题转化为二分类问题
单位阶跃函数和对数几率函数
将对数几率函数代入 g − ( . ) g^{-}(.) g(.)可得
y = 1 1 + e − ( w T x + b ) y=\frac{1}{1+e^{-(w^Tx+b)}} y=1+e(wTx+b)1
变化可得
ln ⁡ y 1 − y = w T x + b \ln{\frac{y}{1-y}}=w^Tx+b ln1yy=wTx+b
若将y看做样本为正例的概率,(1-y)看做样本为反例的概率,则上式实际上使用线性回归模型的预测结果器逼近真实标记的对数几率。因此这个模型称为“对数几率回归”(logistic regression),也有一些书籍称之为“逻辑回归”。下面使用最大似然估计的方法来计算出w和b两个参数的取值
ln ⁡ p ( y = 1 ∣ x ) p ( y = 0 ∣ x ) = w T x + b p ( y = 1 ∣ x ) = 1 − p ( y = 0 ∣ x ) 1 + e ( w T x + 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 \ln{\frac{p(y=1|x)}{p(y=0|x)}}=w^Tx+b\\ p(y=1|x)=1-p(y=0|x)\\ 1+e^{(w^Tx+b)}\\ p(y=1|x)=\frac{e^{w^Tx+b}}{1+e^{w^Tx+b}}\\ p(y=0|x)=\frac{1}{1+e^{w^Tx+b}} lnp(y=0x)p(y=1x)=wTx+bp(y=1x)=1p(y=0x)1+e(wTx+b)p(y=1x)=1+ewTx+bewTx+bp(y=0x)=1+ewTx+b1

l ( w , b ) = ∑ i = 1 m ln ⁡ p ( y i ∣ x i ; w , b ) l(w,b)=\sum_{i=1}^m\ln{p(y_i|x_i;w,b)} l(w,b)=i=1mlnp(yixi;w,b)

对数变乘为加,最大化释然

线性判别分析

线性判别分析(Linear Discriminant Analysis,简称LDA),其基本思想是:将训练样本投影到一条直线上,使得同类的样例尽可能近,不同类的样例尽可能远。如图所示:
LDA的二维示意图
给定数据集 D = { ( x i , y i ) } i = 1 m D=\{(x_i,y_i)\}_{i=1}^m D={(xi,yi)}i=1m y i ∈ { 0 , 1 } y_i\in\{0,1\} yi{0,1},令 X i 、 μ i 、 ∑ i X_i、\mu_i、\sum_i Xiμii分别表示第 i ∈ { 0 , 1 } i\in\{0,1\} i{0,1}类示例的集合、均值向量、协方差矩阵。若将数据投影到直线w上,则两类样本的中心在直线上的投影分别为 w T μ 0 w^T\mu_0 wTμ0 w T μ 1 w^T\mu_1 wTμ1;若将所有样本点都投影到直线上,则两类样本的协方差分别为 w T ∑ 0 w w^T\sum_0w wT0w w T ∑ 1 w w^T\sum_1w wT1w。由于直线是一维空间,因此 w T μ 0 w^T\mu_0 wTμ0 w T μ 1 w^T\mu_1 wTμ1 w T ∑ 0 w w^T\sum_0w wT0w w T ∑ 1 w w^T\sum_1w wT1w均为实数

原始数据
X i = [ x i y i ] μ i = [ x ‾ i y ‾ i ] c o v ( x , y ) = ∑ i = 1 n ( x i − x ‾ i ) ( y i − y ‾ i ) n − 1 ∑ i = [ c o v ( x , x ) c o v ( x , y ) c o v ( y , x ) c o v ( y , y ) ] = [ ∑ i = 1 n ( x i − x ‾ i ) ( x i − x ‾ i ) n − 1 ∑ i = 1 n ( x i − x ‾ i ) ( y i − y ‾ i ) n − 1 ∑ i = 1 n ( y i − y ‾ i ) ( x i − x ‾ i ) n − 1 ∑ i = 1 n ( y i − y ‾ i ) ( y i − y ‾ i ) n − 1 ] = 1 n − 1 ∑ i = 1 n [ ( x i − x ‾ i ) ( x i − x ‾ i ) ( x i − x ‾ i ) ( y i − y ‾ i ) ( y i − y ‾ i ) ( x i − x ‾ i ) ( y i − y ‾ i ) ( y i − y ‾ i ) ] = 1 n − 1 ∑ i = 1 n [ ( x i − x ‾ i ) ( y i − y ‾ i ) ] [ ( x i − x ‾ i ) ( y i − y ‾ i ) ] = 1 n − 1 ∑ i = 1 n ( X i − μ i ) ( X i − μ i ) T \begin{aligned} X_i&amp;=\begin{bmatrix}x_i\\y_i\end{bmatrix}\\ \mu_i&amp;=\begin{bmatrix}\overline{x}i\\\overline{y}i\end{bmatrix}\\ cov(x,y)&amp;=\frac{\sum{i=1}^n(x_i-\overline{x}i)(y_i-\overline{y}_i)}{n-1}\\ \sum_i&amp;=\begin{bmatrix}cov(x,x)&amp;cov(x,y)\\cov(y,x)&amp;cov(y,y)\end{bmatrix}\\ &amp;=\begin{bmatrix}\frac{\sum_{i=1}^n(x_i-\overline{x}i)(x_i-\overline{x}i)}{n-1}&amp;\frac{\sum_{i=1}^n(x_i-\overline{x}i)(y_i-\overline{y}i)}{n-1}\\\frac{\sum_{i=1}^n(y_i-\overline{y}i)(x_i-\overline{x}i)}{n-1}&amp;\frac{\sum_{i=1}^n(y_i-\overline{y}i)(y_i-\overline{y}i)}{n-1}\end{bmatrix}\\ &amp;=\frac{1}{n-1}\sum_{i=1}^n\begin{bmatrix}(x_i-\overline{x}i)(x_i-\overline{x}i)&amp;(x_i-\overline{x}i)(y_i-\overline{y}i)\\(y_i-\overline{y}i)(x_i-\overline{x}i)&amp;(y_i-\overline{y}i)(y_i-\overline{y}_i)\end{bmatrix}\\ &amp;=\frac{1}{n-1}\sum_{i=1}^n\begin{bmatrix}(x_i-\overline{x}i)\\(y_i-\overline{y}i)\end{bmatrix}\begin{bmatrix}(x_i-\overline{x}i)&amp;(y_i-\overline{y}_i)\end{bmatrix}\\ &amp;=\frac{1}{n-1}\sum_{i=1}^n(X_i-\mu_i)(X_i-\mu_i)^T \end{aligned} Xiμicov(x,y)i=[xiyi]=[xiyi]=n1i=1n(xixi)(yiyi)=[cov(x,x)cov(y,x)cov(x,y)cov(y,y)]=[n1i=1n(xixi)(xixi)n1i=1n(yiyi)(xixi)n1i=1n(xixi)(yiyi)n1i=1n(yiyi)(yiyi)]=n11i=1n[(xixi)(xixi)(yiyi)(xixi)(xixi)(yiyi)(yiyi)(yiyi)]=n11i=1n[(xixi)(yiyi)][(xixi)(yiyi)]=n11i=1n(Xiμi)(Xiμi)T

投影后 w T μ i , w T X i w^T\mu_i,w^TX_i wTμi,wTXi是在w方向上的投影
投 影 后 的 类 协 方 差 = ∑ i = 1 n ( w T X i − w T μ i ) ( w T X i − w T μ i ) T n − 1 = ∑ i = 1 n ( w T ) 2 ( X i − μ i ) ( X i − μ i ) T n − 1 = w T ∑ i = 1 n ( X i − μ i ) ( X i − μ i ) T w n − 1 = w T ∑ i w \begin{aligned} 投影后的类协方差&amp;=\frac{\sum_{i=1}^n(w^TX_i-w^T\mu_i)(w^TX_i-w^T\mu_i)^T}{n-1}\\ &amp;=\frac{\sum_{i=1}^n(w^T)^2(X_i-\mu_i)(X_i-\mu_i)^T}{n-1}\\ &amp;=\frac{w^T\sum_{i=1}^n(X_i-\mu_i)(X_i-\mu_i)^Tw}{n-1}\\ &amp;=w^T\sum_iw \end{aligned} =n1i=1n(wTXiwTμi)(wTXiwTμi)T=n1i=1n(wT)2(Xiμi)(Xiμi)T=n1wTi=1n(Xiμi)(Xiμi)Tw=wTiw

想让同类样本点的投影点尽可能接近,不同类样本点投影之间尽可能远,即:让各类的协方差之和尽可能小,不用类之间中心的距离尽可能大。基于这样的考虑,LDA定义了两个散度矩阵。

  • 类内散度矩阵(within-class scatter matrix)
    S w = ∑ 0 + ∑ 1 = ∑ x ∈ X 0 ( x − μ 0 ) ( x − μ 0 ) T + ∑ x ∈ X 1 ( x − μ 1 ) ( x − μ 1 ) T \begin{aligned} S_w&amp;=\sum_0+\sum_1\\ &amp;=\sum_{x\in{X_0}}(x-\mu_0)(x-\mu_0)^T+\sum_{x\in{X_1}}(x-\mu_1)(x-\mu_1)^T \end{aligned} Sw=0+1=xX0(xμ0)(xμ0)T+xX1(xμ1)(xμ1)T

    越小越好

  • 类间散度矩阵(between-class scaltter matrix)
    S b = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T S_b=(\mu_0-\mu_1)(\mu_0-\mu_1)^T Sb=(μ0μ1)(μ0μ1)T

    越大越好

因此得到了LDA的最大化目标:“广义瑞利商”(generalized Rayleigh quotient)。
J = ∣ ∣ w T μ 0 − w T μ 1 ∣ ∣ 2 2 w T ∑ 0 w + w T ∑ 1 w = ( w T μ 0 − w T μ 1 ) 2 w T ∑ 0 w + w T ∑ 1 w = ( w T ) 2 ( μ 0 − μ 1 ) 2 w T ( ∑ 0 + ∑ 1 ) w = w T ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T w w T ( ∑ 0 + ∑ 1 ) w = w T S b w w T S w w \begin{aligned} J&amp;=\frac{||w^T\mu_0-w^T\mu_1||_2^2}{w^T\sum_0w+w^T\sum_1w}\\ &amp;=\frac{(w^T\mu_0-w^T\mu_1)^2}{w^T\sum_0w+w^T\sum_1w}\\ &amp;=\frac{(w^T)^2(\mu_0-\mu_1)^2}{w^T(\sum_0+\sum_1)w}\\ &amp;=\frac{w^T(\mu_0-\mu_1)(\mu_0-\mu_1)^Tw}{w^T(\sum_0+\sum_1)w}\\ &amp;=\frac{w^TS_bw}{w^TS_ww} \end{aligned} J=wT0w+wT1wwTμ0wTμ122=wT0w+wT1w(wTμ0wTμ1)2=wT(0+1)w(wT)2(μ0μ1)2=wT(0+1)wwT(μ0μ1)(μ0μ1)Tw=wTSwwwTSbw

越大越好
矩阵的范数
∣ ∣ x ∣ ∣ p = ∑ i ∣ x i ∣ p p , p ∈ R ||x||_p=\sqrt[p]{\sum_i|x_i|^p},p\in R xp=pixip ,pR
从而分类问题转化为最优化求解w的问题,当求解出w后,对新的样本进行分类时,只需将该样本点投影到这条直线上,根据与各个类别的中心值进行比较,从而判定出新样本与哪个类别距离最近。求解w的方法如下所示,使用的方法为
拉格朗日乘子法
min ⁡ max ⁡ f s . t .     g = 0 即 求 解 { ∇ f = λ ∇ g g = 0 \begin{aligned} &amp;\min\max f\\ &amp;s.t.\ \ \ g=0\\ 即求解\\ &amp;\begin{cases} \nabla f=\lambda\nabla g\\ g=0 \end{cases}\\ \end{aligned} minmaxfs.t.   g=0{f=λgg=0

J(w)的分子分母都是关于w的二次项,所以其解与w的长度无关,只与方向有关
w T S w w = 1 w^TS_ww=1 wTSww=1,即目标函数J(w)化简为等于其分子部分,且受 w T S w w = 1 w^TS_ww=1 wTSww=1约束
min ⁡ w   − w T S b w s . t .     w T S w w = 1 ⇒ S b w = λ S w w S b w 方 向 恒 为 μ 0 − μ 1 , 令 S b w = λ ( μ 0 − μ 1 ) w = S w − 1 ( μ 0 − μ 1 ) \begin{aligned} &amp;\min_{w}\ -w^TS_bw\\ &amp;s.t.\ \ \ w^TS_ww=1\\ &amp;\Rightarrow S_bw=\lambda{S_ww}\\ S_bw方向恒为\mu_0-\mu_1,令&amp;S_bw=\lambda(\mu_0-\mu_1)\\ &amp;w=S_w^{-1}(\mu_0-\mu_1) \end{aligned} Sbwμ0μ1,wmin wTSbws.t.   wTSww=1Sbw=λSwwSbw=λ(μ0μ1)w=Sw1(μ0μ1)

若将w看做一个投影矩阵,类似PCA的思想,则LDA可将样本投影到N-1维空间(N为类簇数),投影的过程使用了类别信息(标记信息),因此LDA也常被视为一种经典的监督降维技术。

多分类学习

现实中我们经常遇到不只两个类别的分类问题,即多分类问题,在这种情形下,我们常常运用“拆分”的策略,通过多个二分类学习器来解决多分类问题,即将多分类问题拆解为多个二分类问题,训练出多个二分类学习器,最后将多个分类结果进行集成得出结论。最为经典的拆分策略有三种:“一对一”(OvO)、“一对其余”(OvR)和“多对多”(MvM),核心思想与示意图如下所示。

  • OvO:给定数据集D,假定其中有N个真实类别,将这N个类别进行两两配对(一个正类/一个反类),从而产生N(N-1)/2个二分类学习器,在测试阶段,将新样本放入所有的二分类学习器中测试,得出N(N-1)个结果,最终通过投票产生最终的分类结果。

  • OvR:给定数据集D,假定其中有N个真实类别,每次取出一个类作为正类,剩余的所有类别作为一个新的反类,从而产生N个二分类学习器,在测试阶段,得出N个结果,若仅有一个学习器预测为正类,则对应的类标作为最终分类结果。

OvO与OvR示意图

  • MvM:给定数据集D,假定其中有N个真实类别,每次取若干个类作为正类,若干个类作为反类(通过ECOC码给出,编码),若进行了M次划分,则生成了M个二分类学习器,在测试阶段(解码),得出M个结果组成一个新的码,最终通过计算海明/欧式距离选择距离最小的类别作为最终分类结果

ECOC编码示意图

类别不平衡问题

类别不平衡(class-imbanlance)就是指分类问题中不同类别的训练样本相差悬殊的情况,例如正例有900个,而反例只有100个,这个时候我们就需要进行相应的处理来平衡这个问题。常见的做法有三种:

  1. 在训练样本较多的类别中进行“欠采样”(undersampling),比如从正例中采出100个,常见的算法有:EasyEnsemble。
  2. 在训练样本较少的类别中进行“过采样”(oversampling),例如通过对反例中的数据进行插值,来产生额外的反例,常见的算法有SMOTE。
  3. 直接基于原数据集进行学习,对预测值进行“再缩放”处理。其中再缩放也是代价敏感学习的基础。

y ′ 1 − y ′ = y 1 − y × m − m + \frac{y&#x27;}{1-y&#x27;}=\frac{y}{1-y}\times\frac{m^-}{m^+} 1yy=1yy×m+m

参考

努力进行光合作用

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值