西瓜书学习笔记 | 线性模型
Daisy Author

本文是我学习周志华老师编写的机器学习书籍『西瓜书』的第三章:线性模型的过程中做的笔记。

基本形式

def 给定一个由 个属性描述的示例 ,其中 在第 个属性上的取值,线性模型试图学习一个通过属性的线性组合来进行预测的函数:

优点:

  • 简单,易于建模。
  • 可解释性强。

线性回归

介绍

目标:学习预测实值输出标记

确定 , 衡量 之间的距离 MSE

一元线性回归

利用均方误差损失计算最小二乘参数估计:

$$
\begin{aligned}
(w^, b^)
&=\mathop{\arg\min}\limits_{(w, b)}\sum\limits_{i=1}^m(f(x_i)-y_i)^{2}\
&=\mathop{\arg\min}\limits_{(w,b)}\sum\limits_{i=1}^m(y_i-wx_i-b)^{2}
\end{aligned}
$$

  • 对应:欧式距离
  • 方法:最小二乘法

偏导:

令偏导 = 0,得使得 最优得闭式解

多元线性回归

def 样本由 维属性描述:,使得

为便于讨论,令

则:

  • 满秩 or 正定时,令 得使 最优的闭式解

    此时

  • 对非满秩 解不唯一,由算法归纳偏好决定。

推广 对数线性回归

输出标记在指数尺度变化

实质:求取输入空间到输出空间的非线性函数映射

再推广 广义线性模型

, 称为联系函数。

对数几率回归

介绍

线性模型推广至分类任务 利用广义线性模型。

考虑二分类:

  • 输出标记 {0, 1}
  • 实值映射

选择 单位阶跃函数

然而,阶跃函数不连续,因此不能用作

替代 对数几率函数:

通过分式运算与取对数将上述函数形式化为以下形式:

若将 视为正例, 视为反例,则 可视为几率(odds),其反映了 作为正例的相对可能性, 称为对数几率。

对数几率回归的实质就是用线性回归模型预测真实标记的对数几率。

优点:

  • 直接建模分类可能性。
  • 对数几率函数是任意阶可导的凸函数,数学性质良好,最优解可求。

w, b 的求解

视为类后验概率估计

可以推出:

最大化对数似然:

原理:令每个样本属于其真实标记的概率越大越好。

, ,则


则似然项可重写为:

则最大化对数似然等价于最小化以下损失:

,可通过经典数值优化方法求得最优解。

线性判别分析(LDA)

介绍

LDA 是一种经典的线性学习方法,应用在多分类任务上,这个学期接触过特殊的二分类 LDA 方法,也就是模式识别课上讲到的 Fisher 线性判别分析。

LDA的思想:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近,异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定样本的类别。

image 1

给定数据集

分别代表第 类示例集合、均值向量、协方差矩阵(X 大于一维,故均值/协方差为向量/矩阵)。

若将数据投影到直线 上,则两类样本中心到直线上的投影分别为

若将所有样本点投影到 上,则两类样本的协方差分别为

同类样例投影点尽可能接近 同类样例投影点的协方差尽可能小:

异类样本投影点尽可能远离 样本类中心相对距离尽可能大:

二者结合可得优化目标:

定义类内散度矩阵:

定义类间散度矩阵:

优化目标 可写为:

上式即为 LDA 最大化目标,称为 的广义瑞利熵。

注意到, 分子分母均含 的二次项,故 长度无关,而与其方向有关。

不失一般性,令

则原目标等价于:

由拉格朗日乘子法,上式等价于:

即:

若令 ,有:

由于我们不关心 的大小,故不妨令 ,此时:

当两类数据同先验,满足高斯分布且协方差相等时,LDA 可达到最优分类。

LDA 推广到多分类任务

将 LDA 推广到多分类任务,假定 类,第 类示例为

定义全局散度矩阵,其中 为全局中心点:

定义类内散度矩阵为每个类别的散度矩阵之和:

由以上两式可得:

多分类 LDA 有多种实现方法,使用 三者中任意两个即可。

优化目标需要满足同类样例的投影点尽可能接近,异类样例的投影点尽可能远离的准则。

多分类学习

介绍

策略:利用二分类学习器解决多分类问题。

考虑 个类别 ,多分类学习将多分类任务拆解为若干个二分类任务进行求解。

拆分问题,为拆分出来的每个二分类任务训练一个学习器,然后对多个分类器进行集成执行多分类推理。

经典的拆分策略:

  • 一对一(One vs. One, OvO)
  • 一对其余(One vs. Rest, OvR)
  • 多对多(Many vs. Many, MvM)

一对一 & 一对其余

一对一(OvO) 个类别两两配对,产生 个分类任务。

例如,OvO 将为了区别类别 训练一个分类器,该分类器把数据集中的 样例作为正例, 样例作为反例。

测试阶段,新样本将同时提交给所有分类器,产生 个分类结果,最终结果通过投票产生,被预测得最多得类别将作为最终分类结果输出。

一对其余(OvR) 则是每次将一个类的样例作为正例,其它所有类的样例都作为反例,这个设置对应 个分类任务。

在测试时若仅有一个分类器预测为正类,则对应的类别标记作为最终分类结果,若有多个分类器预测为正类,则选择其中置信度最高的类别标记作为最终分类结果。

ovo ovr 示意图

容易看出,OvO 的存储开销与测试时间开销通常比 OvR 更大,但在训练时,OvR 的每个分类器均使用全部测试样例,但 OvO 的每个分类器仅用到两个类别的样例,因此类别很多时,OvO 的训练时间开销通常比 OvR 更小,至于预测性能,则取决于具体的数据分布,多数情况下两者差不多。

多对多

多对多(MvM)每次将若干类作为正类,若干个其它类作为反类,OvO / OvR 是 MvM 的特例。

常见技术:纠错输出码(Error Correction Ouput Codes, ECOC)

ECOC 将编码思想引入类别拆分,尽可能在解码过程中具有容错,工作过程如下:

  • 编码:N 个类别, M 次划分,每次一部分作正类,其余作反类,形成二分类训练集;一共产生 M 个训练集,对应训练 M 个分类器。
  • 解码:M 个分类器分别对测试样本进行预测,预测标记组成编码,将该预测编码与各类别编码进行比较(计算码距),返回最小距离类别标记作为分类结果。

类别划分通过编码矩阵指定,常见形式有二元码三元码,前者可指定正类反类,后者还可以额外指定停用类,给出书上示意图便于理解:

ECOC

编码表示的方法在距离计算中具有鲁棒性,即使有分类器出错,仍然有可能产生正确分类结果。

类别不平衡问题

类别不平衡(class-imbalance):分类任务中,不同类别训练样例数目差距大。

回顾对数几率回归中,对二分类问题,定义了 代表预测结果 y 为正例的相对可能性。

决策规则(1):,则预测为正例。

该结论建立在类别平衡的基础上。

对于不平衡类别,令 代表正例数目, 代表反例数目,则观测几率为 ,由于假设训练集是真实样本总体的无偏采样,故观测几率代表真实几率,只要分类器的预测几率大于观测几率,即可判定为正例。

决策规则(2):,则预测为正例。

分类器基于决策规则(1)进行决策,对其预测值进行调整,使其实际执行决策规则(2):

这是类别不平衡的基本策略 “再缩放”(rescaling)

现实情境下,采样往往不满足无偏,现在的技术总体有以下做法:

  • 欠采样:去除一些反例使得正、反例数量相近,再学习。
  • 过采样:增加一些正例使得正、反例数量相近,再学习。
  • 阈值移动:基于原始训练集学习,在预测时将上式的再缩放策略嵌入决策过程。