后续还要进行精简
“线性回归”(linear regression)
对离散属性,若属性值间存在 “序”(order) 关系,可通过连续化将其转换为连续值,例如“高”“矮”可转化为 { 1.0 , 0.0 } \{1.0,0.0\} {1.0,0.0},“高”“中”“低”可转为 { 1.0 , 0.5 , 0.0 } \{1.0,0.5,0.0\} {1.0,0.5,0.0}
若属性值不存在序关系,假定有k个属性值,则通常转化为k维向量,“西瓜”“南瓜”“黄瓜”可转化为 ( 0 , 0 , 1 ) ( 0 , 1 , 0 ) ( 1 , 0 , 0 ) (0,0,1)(0,1,0)(1,0,0) (0,0,1)(0,1,0)(1,0,0)。
线性回归试图学得
f ( x i ) = w x i + b , 使 得 f ( x i ) ≃ y i f(x_i)=wx_i+b,使得f(x_i)\simeq y_i f(xi)=wxi+b,使得f(xi)≃yi
求解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 \begin{aligned} (w^*, b^*)&=\underset {w,b}{\operatorname {arg\, min}}\sum_{i=1}^m(f(x_i)-y_i)^2\\ &=\underset {w,b}{\operatorname {arg\, min}}\sum_{i=1}^m(y_i-wx_i-b)^2 \end{aligned} (w∗,b∗)=w,bargmini=1∑m(f(xi)−yi)2=w,bargmini=1∑m(yi−wxi−b)2
均方误差对应了常用的欧几里得距离或简称 “欧式距离”(Euclideam distance)。
基于均方误差最小化来进行模型求解的方法成为 “最小二乘法”(least square method) 在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的欧式距离之和最小
-最小二乘“参数估计”(parameter estimation) 求解w和b使 E ( w , b ) = ∑ i = 1 m ( y i − w i − b ) 2 E_{(w,b)}=\sum_{i=1}^m(y_i-w_i-b)^2 E(w,b)=∑i=1m(yi−wi−b)2最小化的过程
∂ E ( w , b ) ∂ w = 2 ( w ∑ i = 1 m x i 2 − ∑ i = 1 m ( y i − b ) x i ) , ∂ E ( w , b ) ∂ b = 2 ( m b − ∑ i = 1 m ( y i − w x i ) ) , \frac{\partial E_{(w,b)}}{\partial w}=2(w\sum_{i=1}^mx_i^2-\sum_{i=1}^m(y_i-b)x_i),\\ \frac{\partial E_{(w,b)}}{\partial b}=2(mb-\sum_{i=1}^m(y_i-wx_i)), ∂w∂E(w,b)=2(wi=1∑mxi2−i=1∑m(yi−b)xi),∂b∂E(w,b)=2(mb−i=1∑m(yi−wxi)),
令两个偏导为0,可求得w和b的最优解的闭式(closed-form)解
w = ∑ i = 1 m y i ( x i − x ‾ ) ∑ i = 1 m x i 2 − 1 m ( ∑ i = 1 m x i ) 2 b = 1 m ∑ i = 1 m ( y i − w x i ) w=\frac{\sum_{i=1}^my_i(x_i-\overline x)}{\sum_{i=1}^mx_i^2-\frac{1}{m}(\sum_{i=1}^mx_i)^2}\\ b=\frac{1}{m}\sum_{i=1}^m(y_i-wx_i) w=∑i=1mxi2−m1(∑i=1mxi)2∑i=1myi(xi−x)b=m1i=1∑m(yi−wxi)
其中 x ‾ = 1 m ∑ i = 1 m ( y i − w x i ) \overline x = \frac{1}{m}\sum_{i=1}{m}(y_i-wx_i) x=m1∑i=1m(yi−wxi)
“多元线性回归”(multivariate linear regression) 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 \pmb X XXX
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 ) \pmb X=\left ( \begin{matrix} 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{matrix}\right )= \left ( \begin{matrix} \pmb{x_1^T}&1\\ \pmb{x_2^T}&1\\ \vdots& \vdots\\ \pmb{x_m^T}&1\\ \end{matrix} \right ) XXX=⎝⎜⎜⎜⎛x11x21⋮xm1x12x22⋮xm2⋯⋯⋱⋯x1dx2d⋮xmd11⋮1⎠⎟⎟⎟⎞=⎝⎜⎜⎜⎛x1Tx1Tx1Tx2Tx2Tx2T⋮xmTxmTxmT11⋮1⎠⎟⎟⎟⎞
把标记也写成向量形式 y = ( y 1 ; y 2 ; ⋯ ; y m ) \pmb y=(y_1;y_2;\cdots;y_m) yyy=(y1;y2;⋯;ym)则
w ^ ∗ = arg min w ^ ( y − X w ^ ) T ( y − X w ^ ) \pmb{\hat w^*}=\underset {{\hat w}}{\operatorname {arg\, min}}(\pmb y-\pmb{X\hat w})^T(\pmb y-\pmb{X\hat w}) w^∗w^∗w^∗=w^argmin(yyy−Xw^Xw^Xw^)T(yyy−Xw^Xw^Xw^)
与一维同理,当 X T X \pmb {X^TX} XTXXTXXTX为满秩矩阵(full-rank matrix)或正定矩阵(positive definite matrix) ,可求得
w ^ ∗ = ( X T X ) − 1 X T y \pmb{\hat w^*}=(\pmb {X^TX})^{-1}\pmb {X^T y} w^∗w^∗w^∗=(XTXXTXXTX)−1XTyXTyXTy
则最终学得的多元线性回归模型为
f ( x ^ i ) = x ^ i T ( X T X ) − 1 X T y f(\pmb {\hat x_i})=\pmb {\hat x_i^T}(\pmb {X^TX})^{-1}\pmb {X^T y} f(x^ix^ix^i)=x^iTx^iTx^iT(XTXXTXXTX)−1XTyXTyXTy
但现实中往往遇到大量变量, X T X \pmb {X^TX} XTXXTXXTX不是满秩矩阵,此时可以求出多个解,选择哪一个解由算法的偏好决定,常用的做法是引入 正则化(regularization) 项
线性回归变型 “对数线性回归”(log-linear regression) l n y = w T x + b ln y = \pmb {w^Tx}+b lny=wTxwTxwTx+b,实际上是试图让 e w T x + b e^{{w^Tx}+b} ewTx+b逼近 y y y。
更一般地,考虑单调可微函数 g ( ⋅ ) g(\cdot) g(⋅),令 y = g − 1 ( w T x + b ) , y=g^{-1}(\pmb{w^Tx}+b), y=g−1(wTxwTxwTx+b),
这样得到的模型成为 “广义线性模型”(generalized linear model),其中函数 g ( ⋅ ) g(\cdot) g(⋅)称为 “联系函数”(link function)
线性回归处理分类问题
“单位阶跃函数”(unit-step function)
y = { 0 , z < 0 ; 0.5 , z = 0 ; 1 , z > 0 ; y=\begin{cases} 0,\quad z<0;\\ 0.5,\quad z=0;\\ 1,\quad z>0; \end{cases} y=⎩⎪⎨⎪⎧0,z<0;0.5,z=0;1,z>0;
由于阶跃函数不连续,使用 对数几率函数(logistic function) 作为 “替代函数”(surrogate function)
对数几率函数是一种 ”Sigmoid“函数,
y = 1 1 + e − z y=\frac{1}{1+e^{-z}} y=1+e−z1
它将 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^{-({w^Tx}+b)}} y=1+e−(wTx+b)1
l n y 1 − y = w T x + b ln \frac{y}{1-y}=\pmb{w^Tx}+b ln1−yy=wTxwTxwTx+b
y视为样本x作为正例的可能性,则1-y作为反例可能性,两者比值 y 1 − y \frac{y}{1-y} 1−yy称为 “几率”(odds),反映了 x x x作为正例的相对可能性。对几率取对数则得到 “对数几率”(log odds,亦称logit) l n y 1 − y ln\frac{y}{1-y} ln1−yy
实际上是在用线性回归模型的预测结果去逼近真实标记的对数几率
如何确定w和b
l n P ( y = 1 ∣ x ) P ( y = 0 ∣ x ) = w T x + b ln\frac{P(y=1|\pmb x)}{P(y=0|\pmb x)}=\pmb{w^Tx}+b lnP(y=0∣xxx)P(y=1∣xxx)=wTxwTxwTx+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 P(y=1|\pmb x)=\frac{e^{{w^Tx}+b}}{1+e^{{w^Tx}+b}}\\ P(y=0|\pmb x)=\frac{1}{1+e^{{w^Tx}+b}} P(y=1∣xxx)=1+ewTx+bewTx+bP(y=0∣xxx)=1+ewTx+b1
可通过 “极大似然估计法”(maximum likelihood method) 来估计w和b。
“对数似然”(log-likelihood)
ℓ ( w , b ) = ∑ i = 1 m l n p ( y i ∣ x i ; w , b ) \ell(\pmb w,b)=\sum_{i=1}^m ln p(y_i|x_i;w,b) ℓ(www,b)=i=1∑mlnp(yi∣xi;w,b)
即令每个样本属于其真实标记的概率越大越好
ℓ ( β ) = ∑ i = 1 m ( − y i β T x ^ i + l n ( 1 + e β T x ^ i ) ) \ell(\pmb \beta)=\sum_{i=1}^m (-y_i \pmb {\beta^T\hat x_i}+ln(1+e^{{\beta^T\hat x_i}})) ℓ(βββ)=i=1∑m(−yiβTx^iβTx^iβTx^i+ln(1+eβTx^i))
是关于 β \pmb \beta βββ的高阶可导连续凸函数,根据凸优化理论,经典的数值优化算法如 梯度下降法(gradient descent method)、牛顿法(Newton method) 等都可以求得最优解
β ∗ = arg min β ℓ ( β ) \pmb \beta^* = \underset {\beta}{\operatorname {arg\, min}}\ell(\pmb \beta) βββ∗=βargminℓ(βββ)
线性判别分析(Linear Discriminant Analysis,简称LDA),亦称 “Fisher判别分析”
LDA思想非常朴素:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离;对新样本进行分类时,将其投影到同样这条直线上,再根据投影点的位置确定新样本的类别。
给定数据集 D = ( x i , y i ) i = 1 m , y i ∈ { 0 , 1 } D={(x_i,y_i)}_{i=1}^m,y_i\in\{0,1\} D=(xi,yi)i=1m,yi∈{0,1},令 X i \pmb{X_i} XiXiXi、 μ i \pmb{\mu_i} μiμiμi、 Σ i \pmb{\Sigma_i} ΣiΣiΣi分别表示第 i ∈ { 0 , 1 } i\in\{0,1\} i∈{0,1}类示例的集合、均值向量、协方差矩阵
欲最大化目标
J = ∣ ∣ w T μ 0 − w T μ 1 ∣ ∣ 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 || \pmb{w^T\mu_0}-\pmb{w^T\mu_1}\right||}{{w^T\Sigma_0w}+{w^T\Sigma_1w}}\\ &=\frac{\pmb{w^T}(\pmb \mu_0 - \pmb \mu1)(\pmb \mu_0 - \pmb \mu1)^T\pmb w}{\pmb w^T(\pmb \Sigma_0+\pmb \Sigma_1)\pmb w} \end{aligned} J=wTΣ0w+wTΣ1w∣∣∣wTμ0wTμ0wTμ0−wTμ1wTμ1wTμ1∣∣∣=wwwT(ΣΣΣ0+ΣΣΣ1)wwwwTwTwT(μμμ0−μμμ1)(μμμ0−μμμ1)Twww
定义 “类内散度矩阵”(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} \pmb S_w &= \pmb \Sigma_0 + \pmb \Sigma_1\\ &=\sum_{x\in X_0}(\pmb x-\pmb \mu_0)(\pmb x-\pmb \mu_0)^T + \sum_{x\in X_1}(\pmb x-\pmb \mu_1)(\pmb x-\pmb \mu_1)^T \end{aligned} SSSw=ΣΣΣ0+ΣΣΣ1=x∈X0∑(xxx−μμμ0)(xxx−μμμ0)T+x∈X1∑(xxx−μμμ1)(xxx−μμμ1)T
以及 “类间散度矩阵”(between-class scatter matrix)
S b = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T \pmb S_b = (\pmb \mu_0-\pmb \mu_1)(\pmb \mu_0-\pmb \mu_1)^T SSSb=(μμμ0−μμμ1)(μμμ0−μμμ1)T
则最大化目标可重写为
J = w T S b w w T S w w J=\frac{\pmb w^T\pmb S_b \pmb w}{\pmb w^T\pmb S_w \pmb w} J=wwwTSSSwwwwwwwTSSSbwww
这就是LDA欲最大化的目标,即 S b \pmb S_b SSSb和 S w \pmb S_w SSSw的 “广义瑞利商”(generalized Rayleigh quotient)
如何确定 w \pmb w www? 式中分子分母都是关于 w \pmb w www的二次项,因此式的解与 w \pmb w www的长度无关,只与其方向性有关,不失一般性,令 w T S w w = 1 \pmb w^T\pmb S_w \pmb w = 1 wwwTSSSwwww=1,则式等价于
min w − w T S b w s . t . w T S w w = 1 \underset {w}{\operatorname { min}} \quad-\pmb w^T\pmb S_b\pmb w\\ s.t. \quad \pmb w^T\pmb S_w \pmb w = 1 wmin−wwwTSSSbwwws.t.wwwTSSSwwww=1
可由拉格朗日乘子法求解
S b w = λ S w w \pmb S_b \pmb w = \lambda \pmb S_w\pmb w SSSbwww=λSSSwwww
其中 λ \lambda λ是拉格朗日乘子,注意到 S b w \pmb S_b \pmb w SSSbwww的方向恒为 μ 0 − μ 1 \pmb \mu_0-\pmb \mu_1 μμμ0−μμμ1,则
w = S w − 1 ( μ 0 − μ 1 ) \pmb w = \pmb S_w^{-1}(\pmb \mu_0-\pmb \mu_1) www=SSSw−1(μμμ0−μμμ1)
推广到多分类
“全局散度矩阵”
S t = S b + S w = ∑ i = 1 m ( x i − μ ) ( x i − μ ) T \begin{aligned} \pmb S_t &= \pmb S_b +\pmb S_w\\ &=\sum_{i=1}^m(\pmb x_i - \pmb \mu)(\pmb x_i - \pmb \mu)^T \end{aligned} SSSt=SSSb+SSSw=i=1∑m(xxxi−μμμ)(xxxi−μμμ)T
类内散度矩阵
S w = ∑ i = 1 N S w i \pmb S_w = \sum_{i=1}^N\pmb S_{w_i} SSSw=i=1∑NSSSwi
其中
S w i = ∑ x ∈ X i ( x − μ i ) ( x − μ i ) T \pmb S_{w_i}=\sum_{x \in X_i}(\pmb x-\pmb \mu_i)(\pmb x-\pmb \mu_i)^T SSSwi=x∈Xi∑(xxx−μμμi)(xxx−μμμi)T
S b = S t − S w = ∑ i = 1 N m i ( μ i − μ ) ( μ i − μ ) T \begin{aligned} \pmb S_b &= \pmb S_t -\pmb S_w\\ &=\sum_{i=1}^Nm_i(\pmb \mu_i - \pmb \mu)(\pmb \mu_i - \pmb \mu)^T \end{aligned} SSSb=SSSt−SSSw=i=1∑Nmi(μμμi−μμμ)(μμμi−μμμ)T
常见的一种实现是采用优化目标
max W t r ( W T S b W ) t r ( W T S w W ) \underset {W}{\operatorname { max}}\frac{tr(\pmb W^T \pmb S_b \pmb W)}{tr(\pmb W^T \pmb S_w \pmb W)} Wmaxtr(WWWTSSSwWWW)tr(WWWTSSSbWWW)
可通过广义特征值求解
S b W = λ S w W \pmb S_b \pmb W = \lambda \pmb S_w \pmb W SSSbWWW=λSSSwWWW
W \pmb W WWW的闭式解则是 S w − 1 S b \pmb S_w^{-1}\pmb S_b SSSw−1SSSb的N-1个最大广义特征值所对应的特征向量组成的矩阵
LDA也常被视为一种经典的监督降维技术
将多分类拆解成若干个二分类任务求解,最经典的拆分策略有三种:“一对一”(One vs. One,简称OvO)、“一对其余”(One vs.Rest,简称OvR) 和 “多对多”(Many vs. Many,简称MvM)
若OvR中,多个分类器预测为正类,则通常考虑各分类器的预测置信度,选择置信度最大的类别标记作为分类结果。
OvO和OvR是MvM的特例,MvM的正、反类构造必须有特殊的设计,最常用的MvM技术:“纠错输出码”(Error 3 Output Codes,简称ECOC)
ECOC工作过程主要分为两步:
编码: 对N个类别做M次划分,每次划分将一部分类别划为正类,一部分划为反类,从而形成二分类训练集;这样一共产生M个训练集,可训练出M个分类器,二元码 (正类和反类)和 三元码(正类,反类,停用类)
解码: M个分类器分别对测试样本进行预测,这些预测标记组成一个编码。将这个预测编码与每个类别各自的编码进行比较,返回其中距离最小的类别作为最终预测结果
ECOC编码越长,纠错能力越强。然而,编码越长,意味着所需训练的分类器越多
再缩放思想简单,但是是建立在“训练集是真实样本总体的无偏采样”,这个假设往往不成立。