3.1 基本形式
线性模型试图学得一个通过属性的线性组合来预测的函数
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
3.2 线性回归(Linear Regression)
f ( x i ) = w x i + b 使 得 f ( x i ) ≈ y i f(x_i)=wx_i+b使得f(x_i)≈y_i f(xi)=wxi+b使得f(xi)≈yi
- 对离散属性,若属性值间存在“序”(order)关系,可通过连续化将其转化为连续值。
- 若属性值间并不存在序关系,假定有k个属性值,则通常转化为k维向量。
如何确定
w
w
w和
b
b
b?
\qquad
均方误差是回归任务中最常用的性能度量。基于均方误差最小化来进行模型求解的方法称为“最小二乘法”。
多元线性回归
f
(
x
i
)
=
w
T
x
i
+
b
使
得
f
(
x
i
)
≈
y
i
f(x_i)=w^Tx_i+b使得f(x_i)≈y_i
f(xi)=wTxi+b使得f(xi)≈yi
- 若 X T X X^TX XTX 满秩或正定,则 w ^ ∗ = ( X T X ) − 1 X T y \hat{w}^*=(X^TX)^{-1}X^Ty w^∗=(XTX)−1XTy
- 若 X T X X^TX XTX 不满秩,则可解出多个则 w ^ \hat{w} w^,此时需求助于归纳偏好,或引入正则化
3.3 对数几率回归
二分类问题
线性回归模型产生的实值输出
z
=
w
T
x
+
b
z=w^Tx+b
z=wTx+b
\qquad
\qquad
\qquad
\qquad
\qquad
期望输出
y
∈
y\in
y∈{0,1}
\qquad
\qquad
\qquad
找
z
z
z和
y
y
y的联系函数?
理想的阶跃函数
f
(
x
)
=
{
x
=
0
,
z
<
0
y
=
0.5
,
z
=
0
z
=
1
,
z
>
0
f(x)=\left\{ \begin{aligned} x & = 0,z<0 \\ y & = 0.5,z=0 \\ z & = 1, z>0 \end{aligned} \right.
f(x)=⎩⎪⎨⎪⎧xyz=0,z<0=0.5,z=0=1,z>0
性质不好,需要“替代函数”,常用单调可微、任意阶可导(对数几率函数)
y
=
1
1
+
e
−
z
y=\frac{1}{1+e^{-z}}
y=1+e−z1
即
l
n
y
1
−
y
=
w
T
x
+
b
ln\frac{y}{1-y}=w^Tx+b
ln1−yy=wTx+b
y
1
−
y
\frac{y}{1-y}
1−yy是几率(odds),反映了
x
x
x作为正例的相对可能性
- 无需事先假设数据分布
- 可得到“类别”的近似概率预测
- 可直接应用现有数值优化算法求取最优解
- 是分类算法不是回归算法
3.4 线性判别分析
线性判别分析(简称LDA)是一种经典的线性学习方法。
思想:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,在根据投影点的位置来确定样本的类别。
3.5 多分类学习
多分类学习的基本思路是“拆解法”,即将多分类任务拆为若干个二分类任务求解,再为每个二分类任务训练一个分类器,最后在测试时,对多个分类器的预测结果进行集成以获得最终的多分类结果。最经典的拆分策略有三种,分别是“一对一”(OvO)、“一对其余”(OvR)、“多对多”(MvM)。
- OvO
给定数据集D,共有N个类别,OvO将这N个类别两两配对,产生 N ( N − 1 ) 2 \frac{N(N-1)}{2} 2N(N−1)个二分类任务。比如OvO为区分类别和 C j C_j Cj训练一个分类器,该分类器可把 C i C_i Ci类样例作为正例, C j C_j Cj类样例作为反例。在测试阶段,新样本将同时提交给所有分类器,从而得到 N ( N − 1 ) 2 \frac{N(N-1)}{2} 2N(N−1)个分类结果,预测得最多的类别作为最终分类结果。 - OvR
给定数据集D,共有N个类别,OvR 每次将一个类的样例作为正例,所有其他类的样例作为反例来训练 N 个分类器.在测试时若仅有一个分类器预测为正类,则对应的类别标记作为最终分类结果。若有多个分类器预测为正类,则通常考虑各分类器的预测置信度,选择置信度最大的类别标记作为分类结果。 - OvO与OvR的比较
虽然OvO需要训练的分类器数量比OvR的多,但在训练时,OvR 的每个分类器均使用全部训练样例,而 OvO 的每个分类器仅用到两个类的样例。因此,在类别很多时,OvO 的训练时间开销通常比 OvR 更小。至于预测性能,则取决于具体的数据分布,在多数情形下两者差不多。 - MvM
MvM 是每次将若干个类作为正类,若干个其他类作为反类,OvO和OvR是其特例。“纠错输出码”(ECOC)是一种常用的MvM技术,将编码的思想引入类别拆分,并尽可能在解码过程中具有容错性,其过程主要分为两步:
- 编码:对 N 个类别做 M 次划分, 每次划分将一部分类别划为正类,一部分划为反类,从而形成一个二分类训练集;这样一共产生 M个训练集,可训练出 M 个分类器。
- 解码:M个分类器分别对测试样本进行预测,这些预测标记组成一个编码.将这个预测编码与每个类别各自的编码进行比较,返回其中距离最小的类别作为最终预测结果。
3.6 类别不平衡问题
类别不平衡是指分类任务中不同类别的训练样例数目差别很大的情况,这会导致分类器没有价值。解决类别不平衡问题的一个基本策略是“再缩放”。
当训练集中正、反例的数目不同时,令 m+表示正例数目,m-表示反例数目,则观测几率是m+/m-,我们将观测几率代表真实几率(因为通常假设训练集是真实样本总体的无偏采样),所以当分类器的预测几率高于观测几率即可判断为正例,即
若
y
1
−
y
>
m
+
m
−
,
则
预
测
为
正
例
若\frac{y}{1-y}>\frac{m^+}{m^-},则预测为正例
若1−yy>m−m+,则预测为正例
然而“再缩放”实践起来比较艰难,因为"训练集是真实样本总体的无偏采样"这个假设往往并不成立。现在一般采用三种做法:
- 对训练集里的反例进行"欠采样" ,即去除一些反例使正、反例数目接近,再进行学习。
- 对训练集里的正例进行"过来样" ,即增加一些正例使正、反例数目接近,再进行学习。
- 直接基于原始训练集进行学习,但在用训练好的分类器进行预测时,将下式嵌入到其决策过程中,称为"阈值移动" 。