chap3 线性模型
3.1 基本形式
3.2 线性回归
对于连续的属性,一般都可以被学习器所用,有时会根据具体情况做预处理,例如归一化
对于离散值的属性,做以下处理:
- 若属性值存在“序关系“,则可以转化为连续值,例如 {1,0.5,0}
- 若不存在“序关系”,则通常转化为向量的形式,例如男女转化为{(1,0),(0,1)}
当输入属性的数目只有一个
使用最小二乘法 :计算样本预测值和真实值之间的误差并求和,通过最小化均方误差MSE,使用求偏导等于零的方法计算出拟合直线y=wx+b的两个参数w和b,求解方程,对w和b分别求偏导
令上式为0,可得w和b的最优解的封闭解
当输入属性的数目有多个
多元线性回归
f
(
x
i
)
=
ω
T
x
i
+
b
,
使得
f
(
x
i
)
≈
y
i
f(x_i)=\omega^Tx_i+b,使得f(x_i)\approx y_i
f(xi)=ωTxi+b,使得f(xi)≈yi
最小二乘法估计omega和b
ω
^
=
(
ω
;
b
)
\hat{\omega}=(\omega;b)
ω^=(ω;b)
将数据集D表示为m* (d+1)大小的矩阵X
当KaTeX parse error: Undefined control sequence: \X at position 1: \̲X̲^TX为满秩矩阵或正定矩阵
另一方面,有时像上面这种原始的线性回归可能并不能满足需求。
例如:y值并不是线性变化,而是在指数尺度上变化。这时我们可以采用线性模型来逼近y的衍生物,例如lny,这时衍生的线性模型如下所示,实际上就是相当于将指数曲线投影在一条直线上,如下图所示:
更一般地,考虑所有y的衍生物的情形,就得到了“广义的线性模型”(generalized linear model),其中,g(*)称为联系函数(link function)。
y
=
g
−
1
(
ω
T
x
+
b
)
y=g^{-1}(\omega^Tx+b)
y=g−1(ωTx+b)
上述情况为g( * )=ln( * )的表示
3.3 对数几率回归
对于分类任务,寻找单调可微函数将分类任务的真实标记与预测值联系起来
对于二分类任务
z
=
ω
T
x
+
b
z = \omega^Tx+b
z=ωTx+b
将z转化为0/1的值,最理想的是单位阶跃函数
y
=
{
0
,
z
<
0
0.5
,
z
=
0
1
,
z
>
0
y=\left\{ \begin{matrix} 0 , z<0 \\ 0.5 ,z=0 \\ 1,z>0 \end{matrix} \right.
y=⎩
⎨
⎧0,z<00.5,z=01,z>0
使用对数几率函数,将预测值投影到0-1之间,从而将回归问题转化为二分类问题
对数几率函数 logistic function
y
=
1
1
+
e
−
z
y = {{1} \over {1+e^{-z}}}
y=1+e−z1
带入变换,得
l
n
y
1
−
y
=
ω
T
x
+
b
ln{{y} \over {1-y}} = \omega^Tx+b
ln1−yy=ωTx+b
y视为样本x作为正例的可能性,1-y是反例的可能性,则y/1-y 称为几率,反映作为正例的相对可能性
我们使用极大似然法来估计w和b
为了方便求导,我们将模型转化为“对数似然“函数,即求9式最大值
l
(
ω
,
b
)
=
∑
i
=
1
m
l
n
p
(
y
i
∣
x
i
;
ω
,
b
)
l(\omega,b)=\sum^m_{i=1}lnp(y_i|x_i;\omega,b)
l(ω,b)=i=1∑mlnp(yi∣xi;ω,b)
令beta=(w;b),x^ = (x;1) wTx+b 简写为 beta_T x^,则上式重写为
p
(
y
i
∣
x
i
;
w
,
b
)
=
y
i
p
1
(
x
i
^
;
β
)
+
(
1
−
y
i
)
p
0
(
x
i
^
;
β
)
p(y_i|x_i;w,b)=y_ip_1(\hat{x_i};\beta)+(1-y_i)p_0(\hat{x_i};\beta)
p(yi∣xi;w,b)=yip1(xi^;β)+(1−yi)p0(xi^;β)
带入得最大化式等价于最小化
式(3.27)是关于β 的高阶可导连续凸函数,根据凸优化理论,可用数值优化算法例如梯度下降法和牛顿法求最优解
3.4 线性判别分析
Linear Discriminant Analysis,简称LDA,其基本思想是:将训练样本投影到一条直线上,使得同类的样例尽可能近,不同类的样例尽可能远。如图所示:
确定w,J的解与w的长度无关,之于其方向有关,则令分母为1,等价于
m
i
n
w
−
w
T
S
b
w
s
.
t
.
w
T
S
w
w
=
1
min_w -w^TS_bw\\ s.t. w^TS_ww=1
minw−wTSbws.t.wTSww=1
由拉格朗日乘子法,等价于
S
b
w
=
λ
S
w
w
,
λ
为拉格朗日乘子
S_bw=\lambda S_w w,\lambda 为拉格朗日乘子
Sbw=λSww,λ为拉格朗日乘子
Sbw的方向恒为u0-u1,令两者相等
带入得
w
=
S
w
−
1
(
μ
0
−
μ
1
)
w=S_w^{-1}(\mu_0-\mu_1)
w=Sw−1(μ0−μ1)
3.5 多分类学习
- 分类学习器:分类器 classifier
本节主要是多分类任务的拆分策略
对于多分类问题,我们常常运用“拆分”的策略,通过多个二分类学习器来解决多分类问题,即将多分类问题拆解为多个二分类问题,训练出多个二分类学习器,最后将多个分类结果进行集成得出结论。
最为经典的拆分策略有三种:
- OvO one vs one:给定数据集D,假定其中有N个真实类别,将这N个类别进行两两配对(一个正类/一个反类),从而产生N(N-1)/2个二分类学习器,在测试阶段,将新样本放入所有的二分类学习器中测试,得出N(N-1)个结果,最终通过投票产生最终的分类结果。
- OvR one vs rest:给定数据集D,假定其中有N个真实类别,每次取出一个类作为正类,剩余的所有类别作为一个新的反类,从而产生N个二分类学习器,在测试阶段,得出N个结果,若仅有一个学习器预测为正类,则对应的类标作为最终分类结果。
- MvM many vs many:给定数据集D,假定其中有N个真实类别,每次取若干个类作为正类,若干个类作为反类(通过ECOC码给出,编码),若进行了M次划分,则生成了M个二分类学习器,在测试阶段(解码),得出M个结果组成一个新的码,最终通过计算海明/欧式距离选择距离最小的类别作为最终分类结果。
3.6 类别不平衡问题
类别不平衡(class-imbanlance)就是指分类问题中不同类别的训练样本相差悬殊的情况,例如正例有900个,而反例只有100个,这个时候我们就需要进行相应的处理来平衡这个问题。常见的做法有三种:
- 在训练样本较多的类别中进行“欠采样”(undersampling),比如从正例中采出100个,常见的算法有:EasyEnsemble。
- 在训练样本较少的类别中进行“过采样”(oversampling),例如通过对反例中的数据进行插值,来产生额外的反例,常见的算法有SMOTE。
- 直接基于原数据集进行学习,对预测值进行“再缩放”处理。其中再缩放也是代价敏感学习的基础。
代价敏感学习