机器学习 第3章-线性模型
3.1 基本形式
给定由d个属性描述的示例
x
=
(
x
1
;
x
2
;
.
.
.
;
x
d
)
x=(x_1;x_2;...;x_d)
x=(x1;x2;...;xd),其中
x
i
x_i
xi是
x
x
x在第
i
i
i个属性上的取值,线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数,即
f
(
x
)
=
w
1
x
1
+
w
2
x
2
+
⋅
⋅
⋅
+
w
d
x
d
+
b
f(x)=w_1x_1+w_2x_2+···+w_dx_d+b
f(x)=w1x1+w2x2+⋅⋅⋅+wdxd+b
一般用向量形式写成
f
(
x
)
=
w
T
x
+
b
f(x)=w^Tx+b
f(x)=wTx+b
其中
w
=
(
w
1
;
w
2
;
.
.
.
;
w
d
)
w=(w_1;w_2;...;w_d)
w=(w1;w2;...;wd),
w
w
w和
b
b
b学得之后,模型就得以确定了。
线性模型形式简单、易于建模,但却蕴涵着机器学习中一些重要的基本思想.许多功能更为强大的非线性模型(nonlinear model)可在线性模型的基础上通过引入层级结构或高维映射而得.此外,由于w直观表达了各属性在预测中的重要性,因此线性模型有很好的可解释性(comprehensibility).
例如若在西瓜问题中学得“ f 好瓜 ( x ) = 0.2 ⋅ 色泽 + 0.5 ⋅ 根蒂 + 0.3 ⋅ 敲声 + 1 f_{好瓜}(x)=0.2·色泽+0.5·根蒂+0.3·敲声+1 f好瓜(x)=0.2⋅色泽+0.5⋅根蒂+0.3⋅敲声+1”,则意味着可通过综合考虑色泽、根蒂和敲声来判断瓜好不好,其中根蒂最要紧,而敲声比色泽更重要
3.2 线性回归
给定数据集 D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) D ={(x_1,y_1),(x_2,y_2),...,(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 x_i=(x_{i1};x_{i2};...;x_{id}),y_i∈R xi=(xi1;xi2;...;xid),yi∈R.
“线性回归”(linear regression)试图学得一个线性模型以尽可能准确地预测实值输出标记。
线性回归试图学得
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
w
w 和
b
b
b呢?显然,关键在于如何衡量
f
(
x
)
f(x)
f(x)与
y
y
y之间的差别.
因此我们可试图让均方误差最小化,即
(
w
∗
,
b
∗
)
=
a
r
g
m
i
n
(
w
,
b
)
∑
i
=
1
m
(
f
(
x
i
)
−
y
i
)
2
=
a
r
g
m
i
n
(
w
,
b
)
∑
i
=
1
m
(
y
i
−
w
x
i
−
b
)
2
(w^*,b^*)=arg min_{(w,b)}∑^m_{i=1}(f(x_i)-y_i)^2=arg min_{(w,b)}∑^m_{i=1}(y_i-wx_i-b)^2
(w∗,b∗)=argmin(w,b)i=1∑m(f(xi)−yi)2=argmin(w,b)i=1∑m(yi−wxi−b)2
均方误差有非常好的几何意义,它对应了常用的欧几里得距离或简称“欧氏距离”(Euclidean distance).基于均方误差最小化来进行模型求解的方法称为“最小二乘法”(least square method).在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的欧氏距离之和最小.
求解
w
w
w 和
b
b
b使
E
(
w
,
b
)
=
∑
i
=
1
m
(
y
i
−
w
x
i
−
b
)
2
E_{(w,b)} = ∑^m_{i=1}(y_i-wx_i-b)^2
E(w,b)=∑i=1m(yi−wxi−b)2最小化的过程,称为线性回归模型的最小二乘“参数估计”我们可将 $E_{(w,b)}分别对
w
w
w 和
b
b
b求导,得到
∂
E
(
w
,
b
)
∂
w
=
2
(
w
∑
i
=
1
m
x
i
2
−
∑
i
=
1
m
(
y
i
−
b
)
x
i
)
{∂E_{(w,b)}\over ∂w}=2(w∑^m_{i=1}x^2_i-∑^m_{i=1}(y_i-b)x_i)
∂w∂E(w,b)=2(wi=1∑mxi2−i=1∑m(yi−b)xi)
∂
E
(
w
,
b
)
∂
b
=
2
(
m
b
−
∑
i
=
1
m
(
y
i
−
w
x
i
)
)
{∂E_{(w,b)}\over ∂b}=2(mb-∑^m_{i=1}(y_i-wx_i))
∂b∂E(w,b)=2(mb−i=1∑m(yi−wxi))
然后令上式都为0则有
w
w
w 和
b
b
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
w={∑^m_{i=1}y_i(x_i-\bar x)\over ∑^m_{i=1}x^2_i-{1\over m}(∑^m_{i=1}x_i)^2}
w=∑i=1mxi2−m1(∑i=1mxi)2∑i=1myi(xi−xˉ)
b
=
1
m
∑
i
=
1
m
(
y
i
−
w
x
i
)
b={1\over m}∑^m_{i=1}(y_i-wx_i)
b=m1i=1∑m(yi−wxi)
其中
x
ˉ
=
1
m
∑
i
=
1
m
x
i
\bar x={1\over m}∑^m_{i=1}x_i
xˉ=m1∑i=1mxi
在更一般的情形下,有:
f
(
x
i
)
=
w
T
x
i
+
b
,使得
f
(
x
i
)
≃
y
i
f(x_i)=w^Tx_i+b,使得f(x_i)\simeq y_i
f(xi)=wTxi+b,使得f(xi)≃yi
这称为"多元线性回归"
类似的,可利用最小二乘法来对 w w w和 b b b进行估计.为便于讨论,我们把 w w w和 b b b吸收入向量形式 w ^ = ( w ; b ) \hat w=(w;b) w^=(w;b)
相应的,把数据集 D表示为一个
m
∗
(
d
+
1
)
m *(d+1)
m∗(d+1)大小的矩阵
X
X
X,其中每行对应于一个示例,该行前
d
d
d个元素对应于示例的
d
d
d个属性值,最后一个元素恒置为1,即
再把标记也写成向量形式
y
=
(
y
1
;
y
2
;
.
.
.
;
y
m
)
y=(y_1;y_2;...;y_m)
y=(y1;y2;...;ym),则有:
w
^
∗
=
a
r
g
m
i
n
w
^
(
y
−
X
w
^
)
T
(
y
−
X
w
^
)
\hat w^*=argmin_{\hat w}(y-X\hat w)^T(y-X\hat w)
w^∗=argminw^(y−Xw^)T(y−Xw^)
令
E
=
(
y
−
X
w
^
)
T
(
y
−
X
w
^
)
E=(y-X\hat w)^T(y-X\hat w)
E=(y−Xw^)T(y−Xw^),对
w
^
\hat w
w^求导,得:
∂
E
w
^
∂
w
^
=
2
X
T
(
X
w
^
−
y
)
{∂E_{\hat w}\over ∂\hat w}=2X^T(X\hat w-y)
∂w^∂Ew^=2XT(Xw^−y)
令上式为零可得
w
^
\hat w
w^最优解的闭式解
当
X
T
X
X^TX
XTX满秩或者正定时,令前一个式子为0则有:
w
^
∗
=
(
X
T
X
)
−
1
X
T
y
\hat w^*=(X^TX)^{-1}X^Ty
w^∗=(XTX)−1XTy
再令
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)=x^iT(XTX)−1XTy
令
y
=
g
−
1
(
w
T
x
+
b
)
y=g^{-1}(\textbf{w}^T\textbf{x}+b)
y=g−1(wTx+b),叫做广义线性模型,函数g叫做联系函数。
3.3 对数几率回归
考虑二分类任务,其输出标记 y ∈ 0 , 1 y∈{0,1} y∈0,1,而线性回归模型产生的预测值 z = w T x + b z=w^Tx+b z=wTx+b是实值
于是,我们需将实值z转换为0/1值.最理想的是“单位阶跃函数”,即:
y
=
{
0
z
<
0
0.5
z
=
0
1
z
>
0
y=\begin {cases} 0&z<0\\0.5&z=0\\1&z>0 \end {cases}
y=⎩
⎨
⎧00.51z<0z=0z>0
即若预测值z大于零就判为正例,小于零则判为反例,预测值为临界值零则可任意判别,
单位阶跃函数不连续,因此不够理想。常用对数几率函数
y
=
1
1
+
e
−
z
y={1\over 1+e^{-z}}
y=1+e−z1
来替代广义线性模型的g函数。那么可以得到线性回归函数为:
y
=
1
1
+
e
−
(
w
T
x
+
b
)
y={1\over 1+e^{-(w^Tx+b)}}
y=1+e−(wTx+b)1
实际上是在用线性回归模型的预测结果去逼近真实标记的对数几率,因此,其对应的模型称为“对数几率回归”.特别需注意到,虽然它的名字是“回归”,但实际却是一种分类学习方法.它是直接对分类可能性进行建模,无需事先假设数据分布,这样就避免了假设分布不准确所带来的问题;它不是仅预测出“类别”,而是可得到近似概率预测,这对许多需利用概率辅助决策的任务很有用:此外,对率函数是任意阶可导的凸函数,有很好的数学性质,现有的许多数值优化算法都可直接用于求取最优解.
若
w
w
w和
b
b
b确定,令
β
=
(
w
;
b
)
β=(w;b)
β=(w;b)可得第t+1轮迭代解的更新公式为:
β
t
+
1
=
β
t
−
(
∂
2
l
(
β
)
∂
β
∂
β
T
)
−
1
∂
l
(
β
)
∂
β
β^{t+1}=β^t-({∂^2l(β)\over ∂β∂β^T})^{-1}{∂l(β)\over ∂β}
βt+1=βt−(∂β∂βT∂2l(β))−1∂β∂l(β)
其中
∂
l
(
β
)
∂
β
=
−
∑
i
=
1
m
x
^
i
(
y
i
−
p
1
(
x
^
i
;
β
)
)
{∂l(β)\over ∂β}=-∑^m_{i=1}\hat x_i(y_i-p_1(\hat x_i;β))
∂β∂l(β)=−i=1∑mx^i(yi−p1(x^i;β))
∂
2
l
(
β
)
∂
β
∂
β
T
=
∑
i
=
1
m
x
^
i
x
^
i
T
p
1
(
x
^
i
;
β
)
(
1
−
p
1
(
x
^
i
;
β
)
)
{∂^2l(β)\over ∂β∂β^T}=∑^m_{i=1}\hat x_i\hat x_i^Tp_1(\hat x_i;β)(1-p_1(\hat x_i;β))
∂β∂βT∂2l(β)=i=1∑mx^ix^iTp1(x^i;β)(1−p1(x^i;β))
3.4 线性判别分析
线性判别分析(LDA)是一种经典的线性学习方法。
LDA的思想非常朴素:给定训练样例集,设法将样例投影到一条直线上使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离:在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别.图 3.3 给出了一个二维示意图,
令 χ i 、 μ i \chi _i、\mu _i χi、μi和 Σ i \Sigma _i Σi表示第 i i i类示例的集合、均值向量、协方差矩阵。若将数据投影到直线 w w w上
欲使同类样例的投影点尽可能接近,可以让同类样例投影点的协方差尽可能小;而欲使异类样例的投影点尽可能远离可以让类中心之间的距离尽可能大.同时考虑二者,则可得到欲最大化的目标
定义"类内散度矩阵"
以及"类间散度矩阵"
则可重写为:
J
=
w
T
S
b
w
w
T
S
w
w
J={w^TS_bw\over w^TS_ww}
J=wTSwwwTSbw
这就是LDA欲最大化的目标,即
S
b
S_b
Sb 与
S
w
S_w
Sw的"广义瑞利商"
3.5 多分类学习
现实中常遇到多分类学习任务,有些二分类学习方法可直接推广到多分类但在更多情形下,我们是基于一些基本策略,利用二分类学习器来解决多分类问题.
多分类学习的基本思路为拆解法,即将多分类任务拆为多个二分类任务求解。其关键在于如何对多分类问题进行拆分,以及如何对多个分类器进行集成。
最经典的拆分策略有三种:“一对一”,“一对其余”,“多对多(MvM)”。
给定数据集
D
=
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
m
,
y
m
)
,
y
i
∈
C
1
,
C
2
,
.
.
.
,
C
N
D={(x_1,y_1),(x_2,y_2),...,(x_m,y_m)},y_i∈{C_1,C_2,...,C_N}
D=(x1,y1),(x2,y2),...,(xm,ym),yi∈C1,C2,...,CN,OvO将这N个类别两两配对,产生N(N-1)/2个二分类问题。OvR是每次将一个类的样例作为正例,所有其他类的样例作为反例来训练N个分类器。两者的示意如图3.4下所示:
MvM 是每次将若干个类作为正类,若干个其他类作为反类.显然,OvO 和OvR是 MvM 的特例.MvM的正、反类构造必须有特殊的设计,不能随意选取.这里我们介绍一种最常用的 MvM 技术:“纠错输出码”(简称 ECOC).
ECOC工作过程主要分为两步:
编码:对N个类别做M次划分,每次划分将一部分类别划为正类,一部分划为反类,从而形成一个二分类训练集;这样一共产生M个训练集,可训练出M个分类器
解码:M个分类器分别对测试样本进行预测,这些预测标记组成一个编码。将这个预测编码与每个类别各自的编码进行比较,返回其中距离最小的类别作为最终预测结果。
类别划分通过编码矩阵指定。编码矩阵有多种形式,常见的有二元码和三元码,二元码指定正类和反类;三元码在此之外还可指定一个停用类。
为什么称为“纠错输出码”呢?这是因为在测试阶段,ECOC 编码对分类器的错误有一定的容忍和修正能力.
3.6 类别不平衡问题
类别不平衡(class-imbalance)就是指分类任务中不同类别的训练样例数目差别很大的情况.不失一般性,,本节假定正类样例较少,反类样例较多在现实的分类学习任务中,我们经常会遇到类别不平衡,例如在通过拆分法解决多分类问题时,即使原始问题中不同类别的训练样例数目相当,在使用OvR、MvM策略后产生的二分类任务仍可能出现类别不平衡现象,因此有必要了解类别不平衡性处理的基本方法。
类别不平衡学习的一个基本策略为"再缩放"
再缩放的思想虽简单,但实际操作却并不平凡,主要因为“训练集是真实样本总体的无偏采样”这个假设往往并不成立,也就是说,我们未必能有效地基于训练集观测几率来推断出真实几率.现有技术大体上有三类做法:
第一类是直接对训练集里的反类样例进行“欠采样”(undersampling),即去除些反例使得正、反例数目接近,然后再进行学习;
第二类是对训练集里的正类样例进行“过采样”(oversampling),即增加一些正例使得正、反例数目接近,然后再进行学习;
第三类则是直接基于原始训练集进行学习,但在用训练好的分类器进行预测时,将式(3.48)嵌入到其决策过程中,称为“阌值移动”(threshold-moving)
“再缩放”是代价敏感学习的基础