第三章 线性模型

1、基本形式

线性模型(linear model):试图学得一个通过属性的线性组合来进行预测的函数
由d个属性来描述的示例x=(x1;x2;...;xd),线性模型可表示为:

f(x)=w1x1+w2x2,...+wdxd+b

用向量形式写成:
f(x)=wTx+b

特点:简单、易于建模;很多强大的非线性模型可在线性模型的基础上引入层级结构或高维映射得到;很好的可解释性(w直观的表达了各属性在预测中的重要性)

2、线性回归(linear regression)

给定数据集D={(x1,y1),(x2,y2),...,(xm,ym)},其中xi=(xi1;xi2;...;xid)yiR

先考虑d=1,即属性只有一个的情况,D={(xi,yi)}mi=1
线性回归试图学得:

f(xi)=wxi+b使f(xi)yi

如何确定wb?回归任务中常用“均方误差”作为性能度量。最小化均方误差:
(w,b)=arg min(w,b)i=1m(f(xi)yi)2=arg min(w,b)i=1m(yiwxib)2

均方误差对应几何中的欧氏距离
基于均方误差最小化来进行模型求解的方法称为“最小二乘法(least square method)”。在线性回归中,最小二乘法试图找到一条直线,使得所有样本到直线上的欧式距离之和最小

求解wb使得E(w,b)=mi=1(yiwxib)2最小化的过程,称为线性回归模型的最小二乘“参数估计”。将E(w,b)分别对wb求导,在导数为0处求解。

多元线性回归(multivariate linear regression)
更一般的情形,样本由d个属性描述,试图学得:

f(xi)=wTxi+b使f(xi)yi

同样用最小二乘法来对wb进行估计。

对数线性回归(log-linear regression)
如果认为示例输出标记在指数尺度上变化,线性模型逼近的目标为:

ln y=wTx+b

或者说,y=ewTx+b
第三章 线性模型

广义线性模型(generalized linear model)
更一般的,考虑单调可微函数g(),模型为:

y=g1(wTx+b)

函数g()成为联系函数(link function)

3、逻辑斯蒂回归(logistic regression)

或对数几率回归。参考广义线性模型,找到一个单调可微函数将线性回归模型的预测值映射成实际标记y

考虑二分类任务,其输出标记为y{0,1}。需要将线性回归模型的预测值z=wTx+b转换为0/1。
最理想的是“单位阶跃函数(unit-step function)
第三章 线性模型
从上图可以看出,阶跃函数不连续。于是我们希望找到能在一定程度上近似单位阶跃函数,并单调可微的替代函数,“Sigmoid函数”:

y=11+ez

对应图像是一个0-1之间的s型曲线:
第三章 线性模型
将其作为g1()带入广义线性模型,得到:
y=11+e(wTx+b)

ln y1y=wTx+b

如果将y作为正例的可能性,则1y为反例的可能性,比值y1y称为“几率(odds)”,反应了x为正例的相对可能性。取对数lny1y得到“对数几率(logit)”

如何估计wb
y视为类后验概率估计p(y=1|x)

lnp(y=1|x)p(y=0|x)=wTx+b

则有:
p(y=1|x)=ewTx+b1+ewTx+b

p(y=0|x)=11+ewTx+b

通过“极大似然法”来估计wb。给定数据集D={(xi,yi)}mi=1,逻辑斯蒂回归模型最大化“对数似然log-likelihood”
(w,b)=i=1mln p(yi|xi;w,b)

令每个样本属于其真实标记的概率越大越好。可采用经典数值优化算法如梯度下降、牛顿法求得最优解。

注意:逻辑斯蒂回归是一种分类学习方法,利用线性回归模型的预测结果去逼近真实标记的对数几率。
**优点:**1)直接对分类可能性进行建模,无需事先假设数据分布;2)不仅预测类别,还可得到近似概率预测;3)对数几率函数是任意阶可求导的凸函数,便于求取最优解。

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

LDA思想:设法将样例投影到一条直线上,使同类样例的投影点尽可能接近,异类样例的投影点尽可能原理。如图:
第三章 线性模型

5、多分类学习

注意区分:多分类(类别是互斥的),多标注(一个样本可以有多个标注)
考虑N个类别C1,C2,...,CN,基本思路是“拆解法”,将多分类任务拆为若干个二分类任务,为每个二分类任务训练一个分类器,最后集成分类结果。
给定数据集D={(xi,yi)}mi=1yi{C1,C2,...,CN}
经典拆分策略有:
1)一对一(OvO)
将N个类别两两配对,产生N(N-1)/2个分类任务。例如,区别分类CiCj训练一个分类器,Ci作为正例,Cj作为反例。
测试阶段:将样本提交给所有分类器,一共得到N(N-1)/2个分类结果,最终结果可投票产生。
2)一对其余(OvR)
每次将一个类别的样例作为正例,其他样例作为反例,共训练N个分类器。
测试阶段:若只有一个分类器预测为正例,则类别标记直接作为最终结果;若有多个分类器预测为正例,则选择置信度最大的分类器的类别标记作为结果。
第三章 线性模型
3)多对多(MvM)
每次将若干个类作为正类,其他若干个类作为反类。MvM的正、反类构造必须有特殊的编码。常用“纠错输出码error correct output codes ECOC”

6、类别不平衡问题

class-imbalance是指分类任务中不同类别的训练样例数差别很大的情况。实际问题中,一般正样例较少,反样例较多。
解决办法:
1)欠采样(undersampling)
随机丢弃反例可能会丢掉重要信息,欠采样的代表性算法EasyEnsemble,利用集成学习机制,将反例划分为若干个集合供不同学习器使用,这样每个学习器都进行了欠采样,在全局看来也没有丢失信息。
2)过采样(oversampling)
不能简单地对正样本进行重复采样,否则会导致严重的过拟合。代表性算法由SMOTE,通过对训练集里的正例进行插值来产生额外的正例。

3)代价敏感学习(cost-sensitive learning)
基于类别的“误分类代价”,以二分类为例的代价矩阵。在第二章代价敏感里有讲到。