本文章从简单的一元线性回归过渡到多元线性回归;从机器学习中的回归问题到过渡到分类问题;从分类问题中的二分类过渡到多分类,最后介绍对于类别不平衡问题的处理办法。
给定由 d d d个属性描述的示例 x ⃗ = ( x 1 ; x 2 ; … ; x d ) \vec{x} = (x_1;x_2;\ldots;x_d) x=(x1;x2;…;xd),其中 x i x_i xi是 x ⃗ \vec{x} x在第 i i i个属性上的取值,线性模型试图学得一个通过属性的组合来进行预测的函数,即 f ( x ⃗ ) = w 1 x 1 + w 2 x 2 + … + w d x d + b , f(\vec{x})=w_1x_1+w_2x_2+\ldots+w_dx_d+b, f(x)=w1x1+w2x2+…+wdxd+b,一般用向量形式写成 f ( x ⃗ ) = w ⃗ T x ⃗ + b , f(\vec{x})=\vec{w}^T\vec{x}+b, f(x)=wTx+b,其中 w ⃗ = ( w 1 ; w 2 ; … ; w d ) \vec{w}=(w_1;w_2;\ldots;w_d) w=(w1;w2;…;wd)。 w ⃗ \vec{w} w和 b b b学得以后,模型就得以确定。
线性回归模型虽然形式简单,却在整个机器学习方法中占据着非常重要的地位。许多非线性模型可以在线性模型的基础上通过引入层级结构或高维映射得到。同时线性模型具有很好的可解释性, w w w直观地表达了各个属性在预测中的重要性。
给定数据集 D = { ( x ⃗ 1 , y 1 ) , ( x ⃗ 2 , y 2 ) , … , ( x ⃗ m , y m ) } D = \{(\vec{x}_1,y_1),(\vec{x}_2,y_2),\ldots,(\vec{x}_m,y_m)\} D={(x1,y1),(x2,y2),…,(xm,ym)},其中 x ⃗ i = ( x i 1 ; x i 2 ; … ; x i d ) , y i ∈ R \vec{x}_i=(x_{i1};x_{i2};\ldots;x_{id}), y_i\in R xi=(xi1;xi2;…;xid),yi∈R。数据集 D D D有 m m m个样本,每个样本有 d d d个特征(属性),1个label。
一元线性回归的输入样本 x i x_i xi的属性只有一个,我们可以忽略属性下标 1 , 2 , … , d 1,2,\ldots,d 1,2,…,d,则数据集 D = { ( x i , y i ) } i = 1 m D=\{(x_i,y_i)\}^m_{i=1} D={(xi,yi)}i=1m,其中 x i ∈ R x_i\in R xi∈R.同样,数据集 D D D有 m m m个样本,只不过与上面不同的是,一元线性回归的样本特征 x i x_i xi只有一个特征(属性),为标量(而非向量),于是一元线性回归假设样本满足模型 f ( x i ) = w x i + b , f(x_i)=wx_i+b, f(xi)=wxi+b,我们需要做的就是估计参数 w w w和 b b b,使得我们由模型计算得到的 f ( x i ) f(x_i) f(xi)和实际的值(label) y i y_i yi的误差尽可能小。换言之,对所有的 m m m个样本来说,我们希望由 w w w和 b b b构建的模型的输出与实际值的距离尽可能小。由于这是一个回归问题,我们使用均方误差来衡量模型的性能,即求得是均方误差最小的 w w w和 b b b。均方误差 E ( w , b ) = ∑ i = 1 m ( f ( x i ) − y i ) 2 = ∑ i = 1 m ( y i − w x i − b ) 2 E_{(w,b)} = \sum_{i=1}^m(f(x_i)-y_i)^2=\sum_{i=1}^m(y_i-wx_i-b)^2 E(w,b)=i=1∑m(f(xi)−yi)2=i=1∑m(yi−wxi−b)2我们找到使 E ( w , b ) E_{(w,b)} E(w,b)最小的 ( w , b ) (w,b) (w,b),即为我们模型的 ( w , b ) (w,b) (w,b),记为 ( w ∗ , b ∗ ) (w^*,b^*) (w∗,b∗),则有下列优化目标:
( w ∗ , b ∗ ) = a r g m i n ∑ i = 1 m ( f ( x i ) − y i ) 2 (w^*,b^*)=arg min\sum_{i=1}^m(f(x_i)-y_i)^2 (w∗,b∗)=argmini=1∑m(f(xi)−yi)2 = a r g m i n ∑ i = 1 m ( y i − w x i − b ) 2 =arg min\sum_{i=1}^m(y_i-wx_i-b)^2 =argmini=1∑m(yi−wxi−b)2
有了上述式子,我们就可以通过使它最小化来求解 w w w和 b b b,这种方法叫做线性回归模型的最小二乘参数估计。下面我们将均方误差 E ( w , b ) E_{(w,b)} E(w,b)分别对 w w w和 b b b求导,然后令它们等于零,得到 w w w和 b b b的闭式解。
∂ E ( w , b ) ∂ w = − 2 ∑ i = 1 m ( y i − w x i − b ) x i \frac{\partial E_{(w,b)}}{\partial {w}}=-2\sum_{i=1}^{m}(y_i-wx_i-b)x_i ∂w∂E(w,b)=−2i=1∑m(yi−wxi−b)xi ∂ E ( w , b ) ∂ b = − 2 ∑ i = 1 m ( y i − w x i − b ) \frac{\partial E_{(w,b)}}{\partial {b}}=-2\sum_{i=1}^{m}(y_i-wx_i-b) ∂b∂E(w,b)=−2i=1∑m(yi−wxi−b)令上面两个式子等于0,得到 b = 1 m ∑ i = 1 m ( y i − w x i ) , b=\frac{1}{m}\sum_{i=1}^{m}(y_i-wx_i), b=m1i=1∑m(yi−wxi),将 b b b的值带入 ∂ E ( w , b ) ∂ w \frac{\partial E_{(w,b)}}{\partial {w}} ∂w∂E(w,b)得到 ∂ E ( w , b ) ∂ w = − 2 ∑ i = 1 m ( y i − w x i − 1 m ∑ i = 1 m ( y i − w x i ) ) x i \frac{\partial E_{(w,b)}}{\partial {w}}=-2\sum_{i=1}^{m}(y_i-wx_i-\frac{1}{m}\sum_{i=1}^{m}(y_i-wx_i))x_i ∂w∂E(w,b)=−2i=1∑m(yi−wxi−m1i=1∑m(yi−wxi))xi令上式等于0,得 ∑ i = 1 m ( y i − w x i − 1 m ∑ i = 1 m ( y i − w x i ) ) x i = 0 \sum_{i=1}^{m}(y_i-wx_i-\frac{1}{m}\sum_{i=1}^{m}(y_i-wx_i))x_i=0 i=1∑m(yi−wxi−m1i=1∑m(yi−wxi))xi=0 ∑ i = 1 m ( y i x i − w x i 2 − 1 m x i ∑ i = 1 m ( y i − w x i ) ) = 0 \sum_{i=1}^{m}(y_ix_i-wx_i^2-\frac{1}{m}x_i\sum_{i=1}^{m}(y_i-wx_i))=0 i=1∑m(yixi−wxi2−m1xii=1∑m(yi−wxi))=0 ∑ i = 1 m y i x i − w ∑ i = 1 m x i 2 − 1 m ∑ i = 1 m x i ∑ i = 1 m y i + w m ( ∑ i = 1 m x i ) 2 = 0 \sum_{i=1}^{m}y_ix_i-w\sum_{i=1}^{m}x_i^2-\frac{1}{m}\sum_{i=1}^{m}x_i\sum_{i=1}^{m}y_i+\frac{w}{m}(\sum_{i=1}^{m}x_i)^2=0 i=1∑myixi−wi=1∑mxi2−m1i=1∑mxii=1∑myi+mw(i=1∑mxi)2=0 w ∑ i = 1 m x i 2 − w m ( ∑ i = 1 m x i ) 2 = ∑ i = 1 m y i x i − 1 m ∑ i = 1 m x i ∑ i = 1 m y i w\sum_{i=1}^{m}x_i^2-\frac{w}{m}(\sum_{i=1}^{m}x_i)^2=\sum_{i=1}^{m}y_ix_i-\frac{1}{m}\sum_{i=1}^{m}x_i\sum_{i=1}^{m}y_i wi=1∑mxi2−mw(i=1∑mxi)2=i=1∑myixi−m1i=1∑mxii=1∑myi w = ∑ i = 1 m y i x i − 1 m ∑ i = 1 m x i ∑ i = 1 m y i ∑ i = 1 m x i 2 − 1 m ( ∑ i = 1 m x i ) 2 w=\frac{\sum_{i=1}^{m}y_ix_i-\frac{1}{m}\sum_{i=1}^{m}x_i\sum_{i=1}^{m}y_i}{\sum_{i=1}^{m}x_i^2-\frac{1}{m}(\sum_{i=1}^{m}x_i)^2} w=∑i=1mxi2−m1(∑i=1mxi)2∑i=1myixi−m1∑i=1mxi∑i=1myi = ∑ i = 1 m y i x i − ∑ i = 1 m y i ( 1 m ∑ i = 1 m x i ) ∑ i = 1 m x i 2 − 1 m ( ∑ i = 1 m x i ) 2 =\frac{\sum_{i=1}^{m}y_ix_i-\sum_{i=1}^{m}y_i(\frac{1}{m}\sum_{i=1}^{m}x_i)}{\sum_{i=1}^{m}x_i^2-\frac{1}{m}(\sum_{i=1}^{m}x_i)^2} =∑i=1mxi2−m1(∑i=1mxi)2∑i=1myixi−∑i=1myi(m1∑i=1mxi) = ∑ i = 1 m y i x i − ∑ i = 1 m y i x ‾ ∑ i = 1 m x i 2 − 1 m ( ∑ i = 1 m x i ) 2 =\frac{\sum_{i=1}^{m}y_ix_i-\sum_{i=1}^{m}y_i\overline{x}}{\sum_{i=1}^{m}x_i^2-\frac{1}{m}(\sum_{i=1}^{m}x_i)^2} =∑i=1mxi2−m1(∑i=1mxi)2∑i=1myixi−∑i=1myix = ∑ i = 1 m y i ( x i − x ‾ ) ∑ i = 1 m x i 2 − 1 m ( ∑ i = 1 m x i ) 2 =\frac{\sum_{i=1}^{m}y_i(x_i-\overline{x})}{\sum_{i=1}^{m}x_i^2-\frac{1}{m}(\sum_{i=1}^{m}x_i)^2} =∑i=1mxi2−m1(∑i=1mxi)2∑i=1myi(xi−x)此时,我们得到 w w w和 b b b最优解的闭式解。其中 x ‾ = 1 m ∑ i = 1 m x i \overline{x}=\frac{1}{m}\sum_{i=1}^{m}x_i x=m1∑i=1mxi,为 x x x的均值。
在日常生活中,数据集 D D D中的样本一般由 d d d个属性描述,此时我们需要针对每个属性都得到一个对应的 w w w,这里我们假设模型为 f ( x ⃗ i ) = w ⃗ T x ⃗ i + b f(\vec{x}_i)=\vec{w}^T\vec{x}_i+b f(xi)=wTxi+b 同样地,我们需要使得根据模型 f ( x ⃗ i ) = w ⃗ T x ⃗ i + b f(\vec{x}_i)=\vec{w}^T\vec{x}_i+b f(xi)=wTxi+b求得的 f ( x ⃗ i ) f(\vec{x}_i) f(xi)与实际值 y i y_i yi的差别尽可能的小,由于这里的 x i x_i xi含有 d d d个属性,变为向量 x ⃗ \vec{x} x,这称为多元线性回归。
类似的,我们利用最小二乘法对 w ⃗ \vec{w} w和 b b b进行估计。为了方便,可以把 w ⃗ \vec{w} w和 b b b整体表示为一个向量 w ⃗ ^ = ( w ⃗ ; b ) \hat{\vec{w}}=(\vec{w};b) w^=(w;b),相应的,把数据集 D D D表示为 m × ( d + 1 ) m\times(d+1) m×(d+1)大小的矩阵 X X X,其中每行对应一个样本,该行前 d d d个元素对应示例的 d d d个属性值,最后面一个元素恒置为1。再把标记也写成向量形式 y ⃗ = ( y 1 ; y 2 ; … ; y m ) \vec{y}=(y_1;y_2;\ldots;y_m) y=(y1;y2;…;ym),根据最小二乘法,则有
w ⃗ ^ ∗ = a r g m i n ( y ⃗ − X w ⃗ ^ ) T ( y ⃗ − X w ⃗ ^ ) \hat{\vec{w}}^*=argmin(\vec{y}-X\hat{\vec{w}})^T(\vec{y}-X\hat{\vec{w}}) w^∗=argmin(y−Xw^)T(y−Xw^)令 E w ⃗ ^ = ( y ⃗ − X w ⃗ ^ ) T ( y ⃗ − X w ⃗ ^ ) E_{\hat{\vec{w}}}=(\vec{y}-X\hat{\vec{w}})^T(\vec{y}-X\hat{\vec{w}}) Ew^=(y−Xw^)T(y−Xw^),对 w ⃗ ^ \hat{\vec{w}} w^求导得到 ∂ E w ⃗ ^ ∂ w ⃗ ^ = 2 X T ( X w ⃗ ^ − y ⃗ ) \frac{\partial E_{\hat{\vec{w}}}}{\partial \hat{\vec{w}}}=2\bf X^T(X\hat{\vec{w}}-\vec{y}) ∂w^∂Ew^=2XT(Xw^−y)令上式为零可以得到 w ^ \hat{{\bf w}} w^最优解的闭式解。当 X T X \bf X^TX XTX为满秩矩阵或正定矩阵时,令上式等于零可得 w ⃗ ^ ∗ = ( X T X ) − 1 X T y \hat{\vec{w}}^*=(\bf X^TX)^{-1}\bf X^Ty w^∗=(XTX)−1XTy其中 ( X T X ) − 1 (\bf X^TX)^{-1} (XTX)−1 是 ( X T X ) (\bf X^TX) (XTX)的逆矩阵,则最终学得的多元线性回归模型为 f ( x ^ i ) = x ^ i T ( X T X ) − 1 X T y f(\hat{x}_i)=\hat{x}_i^T(\bf X^TX)^{-1}\bf X^Ty f(x^i)=x^iT(XTX)−1XTy
上面我们讨论的线性回归模型可以简写为 y = w T x + b y=w^Tx+b y=wTx+b现在我们要进行的是分类任务,就需要将线性回归模型的预测值与分类任务的真实标记联系起来。对于二分类任务来说,输出 y ∈ { 0 , 1 } y \in \{0,1\} y∈{0,1},而线性回归模型产生的预测值是实值,于是我们需要将实值转换为 0 / 1 0/1 0/1值。这里最理想的就是给预测值加上一个单位阶跃函数,若预测值大于0就判为正类,小于0则判为负类,预测值为临界值0则任意判别。但是由于阶跃函数不连续,无法微分,我们找到替代的函数,对数几率函数。在这里,我们实际上是使用线性回归模型的预测值去逼近真实标记的对数几率,这种方法的优点如下:
线性判别分析 (Linear Discriminant Analysis,LDA),是一种经典的线性学习方法。
主要思想:给定训练样本集,设法将样本投影到一条直线上,使得相同类别样本的投影点尽可能接近,同时不同类别样本点的投影尽可能远离;在对新样本进行分类时,将其按照同样的映射规则投影到同样的直线上,再根据投影点的位置来确定新样本的类别。
LDA可以应用于二分类和多分类问题。由于可以使用投影来降低样本的维数,LDA也常常被看做一种经典的监督降维技术。
有些二分类学习方法可以直接推广到多分类,这里我们主要是使用二分类学习器来解决多分类问题。
考虑 N N N个类别 C 1 , C 2 , … , C N C_1,C_2,\ldots,C_N C1,C2,…,CN,这里我们将 N N N分类问题拆解若干个二分类问题进行求解。
多分类 | 样本数 | 分类器个数 |
---|---|---|
OvO | 两类样本 | N ( N − 1 ) / 2 N(N-1)/2 N(N−1)/2 |
OvR | 所有样本 | N N N |
OvO需要训练 N ( N − 1 ) / 2 N(N-1)/2 N(N−1)/2分类器,而OvR只需训练 N N N个分类器,通常其存储开销和测试时间开销更小;但OvR的每个分类器需要使用全部样本数据,在类别很多时,训练时间开销通常更大。
类别不平衡:分类任务中存在的不同类别(对于二分类就是正负类别)训练样本数量差别很大的情况。在这里,我们假设对于二分类问题,正样本数很少,负样本数很多(比如广告点击率),主要有以下三种处理办法: