3.1 基本形式
线性模型试图学得一个通过属性的线性组合来进行预测的函数,即:
f
(
x
)
=
ω
1
x
1
+
ω
2
x
2
+
⋯
+
ω
d
x
d
+
b
f(\boldsymbol x) = \omega_1x_1 + \omega_2x_2 + \cdots + \omega_dx_d + b
f(x)=ω1x1+ω2x2+⋯+ωdxd+b
其中某个样本的形式为
x
=
(
x
1
;
x
2
;
⋯
 
;
x
d
)
\boldsymbol x = (x_1; x_2; \cdots; x_d)
x=(x1;x2;⋯;xd), 其由
d
d
d个属性来描述,其中
x
i
x_i
xi表示在第
i
i
i个分量上的取值
向量形式表示为:
f
(
x
)
=
ω
T
x
+
b
f(\boldsymbol x) = \boldsymbol \omega^{T} {\boldsymbol x} + b
f(x)=ωTx+b
其中
x
=
(
ω
1
;
ω
2
;
⋯
 
;
ω
n
)
\boldsymbol x = ({\omega_1; \omega_2; \cdots; \omega_n})
x=(ω1;ω2;⋯;ωn),通过一定的方法得到待定系数
ω
\omega
ω和
b
b
b之后,线性模型就可以确定下来了。
线性模型形式简单,易于建模,并且许多非线性模型可在线性模型的基础上通过引入层级结构或高维映射来得到。向量 ω \boldsymbol \omega ω中的各个分量反映了某一个属性所占的权重(重要程度)。
3.2 线性回归
考虑更为一般的数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x m , y m ) } D = \{(\boldsymbol x_1, y_1), (\boldsymbol x_2, y_2), \cdots, (\boldsymbol x_m, y_m)\} D={(x1,y1),(x2,y2),⋯,(xm,ym)},其中 x = ( x i 1 , x i 2 , ⋯   , x i d ) , y i ∈ R \boldsymbol x = (x_{i1}, x_{i2}, \cdots, x_{id}), \ y_i \in \mathbb{R} x=(xi1,xi2,⋯,xid), yi∈R
考虑输入的属性只有一个,即
D
=
{
x
i
,
y
i
}
i
=
1
m
D = \{ x_i, y_i\}_{i=1}^{m}
D={xi,yi}i=1m, 其中
x
i
∈
R
x_i \in \mathbb{R}
xi∈R
离散属性:
- 属性之间有
order
关系,连续化 { 1.0 , 0.5 , 0.0 } \{1.0, 0.5, 0.0\} {1.0,0.5,0.0} - 属性之间没有
order
关系, k k k维向量 ( 1 , 0 , 0 ) , ( 0 , 1 , 0 ) , ( 0 , 0 , 1 ) (1, 0, 0), (0, 1, 0), (0, 0, 1) (1,0,0),(0,1,0),(0,0,1)
线性回归试图学得:
f
(
x
i
)
=
ω
x
i
+
b
s
.
t
.
 
f
(
x
i
)
≃
y
i
f(x_i) = \omega x_i + b \qquad s.t. \, f(x_i) \simeq y_i
f(xi)=ωxi+bs.t.f(xi)≃yi
使用均方误差来评价线性回归的参数
ω
\omega
ω和
b
b
b的优劣:
根据最小二乘法基于均方误差最小化得到最优解
(
ω
∗
,
b
∗
)
(\omega^{*}, b^{*})
(ω∗,b∗)。
推导过程如下:
单个属性:
多个属性向量形式:
现实任务中
X
T
X
X^{T}X
XTX往往不是满秩矩阵,在许多任务中属性的数目甚至会超过样例数,从而导致
X
X
X的列数多于行数,此时会有多个解
ω
^
\hat {\omega}
ω^使得均方误差最小化,具体选择哪一个解作为输出,由学习算法的归纳偏好设定,常见的做法是引入正则化项。
对数线性回归:
l
n
y
=
ω
T
x
+
b
lny = \boldsymbol{\omega}^{T}\boldsymbol{x} + b
lny=ωTx+b
实际意义是使用
e
ω
T
x
+
b
e^{ \boldsymbol{\omega}^{T}\boldsymbol{x} + b}
eωTx+b来逼近
y
y
y,本质上是线性回归,但是从输入空间到输出空间之间存在着一个非线性函数的映射。
推而广之有广义线性模型
y
=
g
−
1
(
ω
T
x
+
b
)
y = g^{-1}(\boldsymbol{\omega}^{T}\boldsymbol{x} + b)
y=g−1(ωTx+b)
其中
g
(
⋅
)
g(\cdot)
g(⋅)称为联系函数。
3.3 对数几率回归
将线性回归得到的实数映射为 0 / 1 0/1 0/1值就是一个二分类任务,此时输出标记为 y ∈ { 0 , 1 } y \in \{ 0, 1\} y∈{0,1}
可以使用单位阶跃函数(不连续),因此使用对数几率函数来实现
y
=
1
1
+
e
−
z
y = \frac{1}{1 + e^{-z}}
y=1+e−z1
3.4 线性判别分析
线性判别分析(LDA)的思想非常朴素:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近,异类样本点尽可能远离,对新样本进行分类时,同样将其投影到这条直线上,根据投影点的位置可确定新样本的类别。
3.5 多分类学习
多数情况下基于一些基本策略,使用二分类学习器来解决多分类问题。
- 一对一(
OvO
) $N(N-1)/2 $ 被预测最多的类别为最终分类结果 - 一对其余(
OvR
) N N N 仅有一个分类器预测为正类即对应类别标记为最终结果;若有多个分类器预测为正类,则考虑各个分类器的预测置信度,置信度最大的类别标记为分类结果。 - 多对多(
MvM
) 纠错输出码(ECOC)
ECOC
主要分为两步:
- 编码:每次对 N N N个类别做 M M M次划分,产生 M M M个训练集,训练出 M M M个分类器
- 解码:得到的 M M M个分类器分别对测试样本进行预测,将预测标记组成一个编码,将预测编码与每个类别各自的编码进行比较,得到其中距离最小的类别作为最终的预测结果。
对于同等长度的编码,理论上来说任意两个类别之间到的编码距离越远,则纠错能力越强。且并不是编码的理论性质越好,分类的性能就越好。
3.6 类别不平衡问题
类别不平衡指分类任务中不同类别的训练样例数目差别很大的情况。
一般情况若 y 1 − y > 1 \dfrac{y}{1-y} > 1 1−yy>1,则预测为正例(实际上这里默认的是真实情况正反例可能性相同),但是当训练集中正反例数目不同时,如正例是 m + m^{+} m+,反例是 m − m^{-} m−,观测几率是 m + m − \dfrac{m^{+}}{m^{-}} m−m+,在无偏采样的条件下,观测几率就是真实几率,于是当 y 1 − y > m + m − \dfrac{y}{1-y} > \dfrac{m^{+}}{m^{-}} 1−yy>m−m+时,既可以判断为正例。
因此提出了再缩放的基本策略:
y
′
1
−
y
′
=
y
1
−
y
×
m
−
m
+
\frac{y'}{1 - y'} = \frac{y}{1-y} \times \frac{m^{-}}{m^{+}}
1−y′y′=1−yy×m+m−
由于训练集是真实样本总体的无偏采样的假设往往不成立,因此未必能够有效的基于训练集观测几率来推断出真实几率。针对这个问题现在有以下做法:
-
对反类样本欠采样,即去除部分反例
不能随机丢弃反例,因为可能导致重要信息的丢失。
EasyEnsemble
利用集成学习的机制将反例划分为若干个集合供不同的学习器使用,这样看来对每个学习器都使用了欠采样,但是在全局上不会丢失重要的信息 -
对正类样例过采样,即增加一些正例
不能重复采样,否则导致过拟合, 代表算法
SMOTE
通过对训练集中的正例进行插值以产生额外的正例 -
基于原始训练集进行学习,阈值移动