第三章 线性模型
3.1 基本形式
给定由d个属性描述的示例x={x1,x2,……,xd},其中xi是x在第i个属性上的取值,线性模型(linear model)学得一个通过属性的线性组合来进行预测的函数。
一般用向量形式写成
由于ω直观表达了各属性在预测中的重要性,因此线性模型有很好的可解释性。
3.2 线性回归
给定数据集D={(x1,y1),(x2,y2),……,(xm,ym)},其中xi=(xi1,xi2,……,xid),yi∈R。线性回归试图学得:
参数ω和b的确定在于衡量f(x)与y之间的差别,使用均方误差最小化:
最小二乘法:基于均方误差最小化进行模型求解的方法
线性回归模型的最小二乘“参数估计”(parameter estimation)求解ω和b使期望E最小化的过程。
对ω和b求偏导:
令ω和b的偏导为0,可得到ω和b最优解的闭式(closed-ford)解:
其中
x
‾
=
1
m
∑
i
=
1
m
x
i
\overset{\overline{}}{\mathrm{x}}\mathrm{=}\frac{\mathrm{1}}{\mathrm{m}}\sum_{\mathrm{i}\mathrm{= 1}}^{\mathrm{m}}\mathrm{x}_{\mathrm{i}}
x=m1∑i=1mxi为x的均值
多元线性回归(multivariate linear regression):数据集D,样本由d个属性描述,线性回归模型学得 f ( x i ) = ω T x i + b \mathrm{f}\left( \mathrm{x}_{\mathrm{i}} \right)\mathrm{=}\mathrm{\omega}^{\mathrm{T}}\mathrm{x}_{\mathrm{i}}\mathrm{+ b} f(xi)=ωTxi+b , 使 得 ,使得 ,使得 f ( x i ) ≈ y i \mathrm{f}\left( \mathrm{x}_{\mathrm{i}} \right)\mathrm{\approx}\mathrm{y}_{\mathrm{i}} f(xi)≈yi。
把ω和b写成向量形式
ω
^
=
(
ω
,
b
)
\hat{\mathrm{\omega}}\mathrm{=}\left( \mathrm{\omega,}\mathrm{\ }\mathrm{b} \right)
ω^=(ω, b),数据集D表示为一个m*(d+1)大小的矩阵X
把标记也写成向量形式y=(y1,y2,……,ym),有
求偏导得到:
当XTX为满秩矩阵(full-rank matrix)或正定矩阵(positive definite matrix),令偏导为0,则:
最终学得的多元线性回归模型为:
广义线性模型(generalized linear model):
y
=
g
−
1
(
ω
T
x
+
b
)
\mathrm{y =}\mathrm{g}^{\mathrm{- 1}}\left( \mathrm{\omega}^{\mathrm{T}}\mathrm{x + b} \right)
y=g−1(ωTx+b),其中g(·)称为联系函数(link function)。
3.3 对数几率回归
单位阶跃函数(unit-step function)
y = { 0 , z < 0 0.5 , z = 0 1 , z > 0 \mathrm{y =}\left\{ \begin{matrix} \mathrm{0,z < 0} \\ \mathrm{0.5,z = 0} \\ \mathrm{1,z > 0} \\ \end{matrix} \right.\ y=⎩⎨⎧0,z<00.5,z=01,z>0
sigmoid函数
对数几率函数:
y = 1 1 + e − ( ω T x + b ) y = \frac{1}{1 + e^{- (\omega^{T}x + b)}} y=1+e−(ωTx+b)1
ln y 1 − y = ω T x + b \ln\frac{y}{1 - y} = \omega^{T}x + b ln1−yy=ωTx+b
若将y视为样本x作为正例的可能性,则1-y是其反例的可能性,两者的比值称为几率(odds)。
用线性回归模型的预测结构取逼近真实标记的对数几率,其对应的模型称为“对数几率回归”(logistic regression),是一种分类学习方法。
将对数几率函数视为类后验概率估计p(y=1|x),则:
显然有:
极大似然法估计ω和b:
令β=(ω;b),x=(x,1),则
ω
T
x
+
b
\mathrm{\omega}^{\mathrm{T}}\mathrm{x}\mathrm{+ b}
ωTx+b简写为βTx。再令p1(x,β)=p(y=1| x,β),p0(x,β)=p(y=0|
x,β)=1-p1(x,β),则:
梯度下降法(gradient descent method)、牛顿法(Newton method)等都可求得求最优解:
以牛顿法为例,其第t+1轮迭代解的更新公式为:
关于β的一阶、二阶导数分别为:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1b6b824f73a379f5e76c1e076f3a99aa.png)
3.4 线性判别分析
线性判别分析(Linear Discriminant Analysis, LDA)是一种经典的线性学习方法。
LDA的思想:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近,异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。
给定数据集
D
=
{
(
x
i
,
y
i
)
}
i
=
1
m
,
y
i
∈
{
0
,
1
}
\mathrm{D}\mathrm{=}\left\{ \left( \mathrm{x}_{\mathrm{i}}\mathrm{,}\mathrm{y}_{\mathrm{i}} \right) \right\}_{\mathrm{i}\mathrm{= 1}}^{\mathrm{m}}\mathrm{,}\mathrm{y}_{\mathrm{i}}\mathrm{\in}\left\{ \mathrm{0,1} \right\}
D={(xi,yi)}i=1m,yi∈{0,1},令
X
i
μ
i
Σ
i
\mathrm{X}_{\mathrm{i}}\mathrm{}\mathrm{\mu}_{\mathrm{i}}\mathrm{}\mathrm{\Sigma}_{\mathrm{i}}
XiμiΣi分别表示第i∈{0,1}类示例的集合、均值向量、协方差矩阵。最大化的目标:
类内散度矩阵(within-class scatter matrix):
类间散度矩阵(between-class scatter matrix):
则
J = ω T S b ω ω T S ω ω J = \frac{\omega^{T}S_{b}\omega}{\omega^{T}S_{\omega}\omega} J=ωTSωωωTSbω
Sb与Sw的广义瑞利商(generalized Rayleigh quotient)
令
ω
T
S
ω
ω
=
1
\mathrm{\omega}^{\mathrm{T}}\mathrm{S}_{\mathrm{\omega}}\mathrm{\omega}\mathrm{= 1}
ωTSωω=1,则:
由拉格朗日乘子法:
其中λ是拉格朗日乘子,令
S
b
ω
=
λ
(
μ
0
−
μ
1
)
\mathrm{S}_{\mathrm{b}}\mathrm{\omega}\mathrm{=}\mathrm{\lambda}\left( \mathrm{\mu}_{\mathrm{0}}\mathrm{-}\mathrm{\mu}_{\mathrm{1}} \right)
Sbω=λ(μ0−μ1),则:
假定存在N个类,且第i个类型示例数为mi,则全局散度矩阵:
类内散度矩阵:
其中
则:
多分类LDA有多种实现方法:使用Sb、Sw、St三者中的任何两个即可。常见的一种实现是采用优化目标:
其中W∈R^(d*(N-1)),tr(·)表示矩阵的迹。上式可通过广义特征值问题求解:SbW=λSωW
3.5 多分类学习
多分类学习的基本思路:“拆解法”,即将多分类任务拆为若干个二分类任务求解。
经典的拆分策略:“一对一”(One vs. One, OvO),“一对其余”(One vs. Rest, OvR),“多对多”(Many vs. Many, MvM)。
OvO:将这N个类别两两配对,从而产生N(N-1)/2个分类任务。
OvR:每次将一个类的样例作为正例,所有其他类的样例作为反例来训练N个分类器。
MvM:每次将若干个类作为正类,若干个其他类作为反类。
MvM技术——纠错输出码(Error Correcting Output Codes, ECOC)
-
编码:对N个类别做M次划分,每次划分将一部分类别划为正类,一部分华为反类,从而形成一个二分类训练集;这样一共产生M个训练集,可训练M个分类器。
-
解码:M个分类器分别对测试样本进行预测,这些预测标记组成一个编码。将这个预测编码与每个类别各自的编码进行比较,返回其中距离最小的类别作为最终预测结果。
3.6 类别不平衡问题
类别不平衡(class-imbalance)就是指分类任务中不同类别的训练样例数目差别很大的情况。
再缩放(rescaling)策略
第一种:直接对训练集里的反类样例进行“欠采样”(undersampling)。即去除一些反例使得正、反例数目接近,任何再进行学习。
第二种:对训练集里的正类样例进行“过采样”(oversampling),即增加一些正例使得正、反例数目接近,然后再进行学习。
第三种: 直接基于原始训练集进行学习,但在用训练好的分类器进行预测时,将 y ′ 1 − y ′ = y 1 − y ∗ m − m + \frac{\mathrm{y}\mathrm{'}}{\mathrm{1 - y'}}\mathrm{=}\frac{\mathrm{y}}{\mathrm{1 - y}}\mathrm{*}\frac{\mathrm{m}^{\mathrm{-}}}{\mathrm{m}^{\mathrm{+}}} 1−y′y′=1−yy∗m+m− 嵌入到其决策过程中,称为“阈值移动”(threshold-moving)。