机器学习入门学习笔记(二)线性模型

一、基本形式

给定由d个属性描述的示例x=(x1;x2;…;xd),其中xi是x在第i个属性上的取值。
线性模型(linear model) 是由学习得到的一个通过 属性的线性组合 来进行预测的函数,其基本形式如下:
在这里插入图片描述
用向量形式表示为:
在这里插入图片描述
其中 w = (w1;w2;…;wd) 是各个属性的权值系数。一旦 w 和 b 学得之后,模型就得以确定。
由于w直观表达了各属性在预测中的重要性,因此线性模型有很好的 可解释性(comprehensibility)。例如:在挑选好西瓜的问题中,最终学得一下的线性函数:
在这里插入图片描述
则意味着可通过综合考虑色泽、根蒂和敲声来判断瓜好不好,其中根蒂最要紧,而敲声比色泽更重要。

线性模型的主要优点就是:形式简单、易于建模,许多功能更为强大的非线性模型(nonlinear mode)也可在线性模型的基础上通过引入层级结构或高维映射而得。

二、线性回归

给定数据集D={ (x1,y1),(x2,y2),…, (xm, ym) },其中xi=(xi1;xi2;…;xid), yi∈R。 线性回归(linear regression) 试图学得一个线性模型以尽可能准确地预测实值输出标记。

对于离散的属性,若属性值间存在“序”(order)关系,可通过连续化将其转化为连续值。例如:三值属性“高度”的取值“高”“中”“低”可转化为(1.0,0.5,0.0);若属性值间不存在序关系,假定有 k 个属性值,则通常转化为 k 维向量,例如属性“瓜类”的取值“西瓜”“南瓜”“黄瓜”可转化为(0,0,1),(0,1,0),(1,0,0)。

最简单的线性回归情形就是输入属性的数目只有一个的情况。线性回归试图学得如下形式(只有一个属性w的情况),即获取一个接近实际值的线性模型。
在这里插入图片描述
确定 w 和 b 的关键在于如何衡量 f(x) 与 y 之间的差别。均方误差 是回归任务中最常用的性能度量,因此我们可试图让均方误差最小化。 均方误差有非常好的几何意义,它对应了常用的欧几里得距离或简称欧氏距离(Euclidean distance)。基于均方误差最小化来进行模型求解的方法称为“最小二乘法”(least square method)。在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的欧氏距离之和最小。

一元线性回归方程求解

求解 w 和 b 使 E(w,b) =∑i=1m (yi - wxi - b)2 最小化的过程,称为线性回归模型的最小二乘“参数估计”(parameter estimation)。我们可将 E(w,b) 分别对 w 和 b 求导,得到
在这里插入图片描述
然后两个求导的式子为零可得到 w 和 b 最优解的闭式(closed-form)解
在这里插入图片描述在这里插入图片描述

多元线性回归

更一般的线性回归情形就是数据集D的样本由d个属性描述,此时我们试图学得以下形式:
在这里插入图片描述
同样可利用最小二乘法来对w和b进行估计。

令向量 w’=(w;b),同时把数据集D表示为一个m×(d+1)大小的矩阵X,其中每行对应于一个示例,该行前d个元素对应于示例的d个属性值,最后一个元素恒置为1,即
在这里插入图片描述
同时也将(y1,y2,y3,…,ym) 以向量 y = (y1;y2;…;ym)表示。
其均方误差函数可定义为:
在这里插入图片描述
同样,对均方误差函数关于 w’ 求导,并另导数为0,解出 w’ ,这相对于一元的计算较为复杂,涉及到矩阵求导,矩阵逆计算等。矩阵解问题又可能有多解,需根据学习算法的归纳偏好决定,常见的做法是引入正则化(regularization)项。

广义线性模型

我们可以让线性模型的预测值f(x)逼近真实标记y,也可以让线性模型的预测值f(x)通过联系函数g(·)来逼近不同情况下的目标。
举个例子:如果我们认为样本对应的输出标记是在指数尺度上变化的,那么我们可以令
在这里插入图片描述
这就是“对数线性回归”(log-linear regression),这里的对数函数起到了将线性回归模型的预测值与真实标记联系起来的作用。
一般化来定义:
在这里插入图片描述
其中 g(·)为单调可微函数 ,这样得到的模型称为“广义线性模型”(generalized linear model)。

三、对数几率回归

我们可用线性模型进行回归学习,但若要做的是分类任务该怎么办?
答案是分析分类任务的真实标记y与线性回归模型的预测值之间的联系,求出联系函数g(·),建立广义线性模型。

对于二分类任务来说,其输出标记y∈{0, 1},而线性回归模型产生的预测值 z =wTx+b 是实值,所以需将实值z 转换为0/1值。

最理想的是“单位阶跃函数”(unit-step function),但它不连续,因此不能直接当作 联系函数 g(·) 来用。于是我们考虑用 对数几率函数(logisticfunction) 来作为替代函数:
在这里插入图片描述
将线性模型的预测实值z 带入可得:
在这里插入图片描述
进一步变换得到:
在这里插入图片描述
如果将 y 视为样本 x 作为正例的可能性,则 1-y 就是其作为反例的可能性。两者的比值y/(1-y) 是称为“几率”(odds),反映了 x 作为正例的相对可能性。对几率取对数则得到“对数几率”(log odds,亦称logit)。

实际上我们是在用线性模型的预测实值去逼近真实标记的对数几率,该模型称为“对数几率回归”,是一种分类学习方法。其优点包括:
1、直接对分类可能性进行建模,无需事先假设数据分布,这样就避免了假设分布不准确所带来的问题
2、它不是仅预测出“类别”,而是可得到近似概率预测,这对许多需利用概率辅助决策的任务很有用
3、对率函数是任意阶可导的凸函数,有很好的数学性质,现有的许多数值优化算法都可直接用于求取最优解。

对数几率回归求解

对数几率回归可以进行分类学习,该模型的确定同样是求解 w 以及b。
由上述假设,我们视 y 为正例的可能性,1-y 为反例的可能性。令 y = p(y=1|x),1-y = p(y=0|x),则得:
在这里插入图片描述
通过变形,显然有:
在这里插入图片描述
我们可通过“极大似然法”(maximum likelihood method)来估计 w 和 b。在给定数据集上,对率回归模型最大化“对数似然”(log-likelihood):
在这里插入图片描述
关于p的高阶可导连续凸函数,可以根据凸优化理论[Boyd andVandenberghe, 2004],经典的数值优化算法如梯度下降法(gradient descentmethod)、牛顿法(Newton method)等都可求得其最优解。

小结:在线性回归分析中,我们是通过均方误差最小化来求解出w和b的,而在对数几率回归这个分类学习中,为了能够让训练集中样本属于其真实标记的概率越大越好,我们可以应用极大似然法,估计出w和b,从而达到这个目的。

四、线性判别分析(LDA)

线性判别分析(Linear Discriminant Analysis, 简称 LDA)是一种经典的线性学习方法,在二分类问题上因为最早由 [Fisher, 1936] 提出,亦称“Fisher 判别分析”。

LDA的思想非常朴素:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离。

在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。
在这里插入图片描述
对给定数据集
在这里插入图片描述
令 Xi 、μi 、Σi 分别表示第 i∈{0,1} 类示例的集合、均值向量、协方差矩阵。

若将数据投影到直线w上,则两类样本的 中心在直线上的投影 分别为 wTμ0 和 wTμ1
若将所有样本点都投影到直线上,则两类样本的协方差分别为wTΣ0w 和 wTΣ1w。
因为直线是一维空间,所以中心以及协方差都是实值。

根据LDA的总体思想,相同类别的样例接近,不同类别的样本远离。
所以可以让 同类别的样例协方差尽量小,不同类别的投影中心距离尽量大,即让 wTΣ0w + wTΣ1w 尽量小, ||wTμ0 - wTμ1||22 尽量大。

同时考虑二者,则可得到最大化目标J:
在这里插入图片描述
定义“类内散度矩阵”:
在这里插入图片描述
再定义“类间散度矩阵”:
在这里插入图片描述
重写 J 为:
在这里插入图片描述
这就是 LDA欲最大化的目标,即Sb与Sw的“广义瑞利商”(generalizedRayleigh quotient)。

LDA 求解 w

可以将 求最大化目标J的问题 转化为
在 条件 wTSww=1下,求 -wTSbw 最小值 的极值问题。

由拉格朗日乘子法,上述极值问题等价于求:
在这里插入图片描述
其中入是拉格朗日乘子.注意到Sbw 的方向恒为 μ0 - μ1,不妨令
在这里插入图片描述
最后可解得:
在这里插入图片描述

五、多分类学习

上面提到的分类都是二分类任务,但现实中更常遇到多分类学习问题。有些二分类学习方法可直接推广到多分类,但在更多情形下,我们是基于一些基本策略,利用二分类学习器来解决多分类问题

基本思路:“拆解法”,即将多分类任务拆为若干个二分类任务求解。所以对于多分类问题,关键在于如何拆分。

最经典的拆分策略有三种:
给定数据集D={(x1,y1),(x2,y2),…., (xm, ym)},yi∈{C1,C2,…, CN}。C1,C2,…, CN 是 N 个类别。

1、“一对一”(One vs.One,简称 OvO)

OvO策略是将这N个类别,将这N个类别两两配对,产生 N(N-1)/2 个二分类任务。

训练阶段: OvO为区分类别 Ci 和 Cj 训练一个分类器,该分类器把D中的 Ci 类样例作为正例,Cj 类样例作为反例。

测试阶段: 经过每个二分类器都会有一个类别结果输出,将预测最多的类别作为最终分类结输出。

开销问题: OvO需训练 N(N-1)/2 个分类器,带来的一个问题就是会造成存储开销较大,并且测试时间也较长。
在这里插入图片描述

2、“一对其余”(One vs. Rest,简称 OvR)

训练阶段: 将一个类的样例作为正例,剩余其他类的样例都作为反例来训练。估有N个类别的话共能产生N个二分类器。

测试阶段: 当新样本测试时,若只有一个分类器预测为正类,则该预测作为最终结果。若有多个分类器预测为正类,则此时应考虑各个分类器的预测置信度,选择置信度最大的类别标记作为分类结果。

开销问题: OvR需要使用到反例的所有样例,所以该策略的训练时间开销较大。

3、“多对多”(Many vs. Many,简称 MvM)

MvM策略是每次将若干个类视为正类,若干个类视为反类,但并不是随意选取的,介绍一种最常用的MvM技术:“纠错输出码”(Error CorrectingOutput Codes,简称 ECOC)

ECOC工作过程主要分为两步:
(1)编码,对N个类别进行M次划分,每次划分将一部分类别作为正类,一部分类别作为反类,形成一个二分类训练集。这样一共可以产生M个训练集,可以训练出M个分类器。

(2)解码,M个分类器分别对测试样本进行预测,预测标记组成一个编码,将该预测标记编码与各个类别各自的编码进行比较,返回其中距离(欧氏距离,海明距离)最小的类别作为最终预测结果。

ECOC的类别划分主要通过“编码矩阵”指定,而编码矩阵有多种形式,常见的有:
二元码(-1,+1)将每个类别分别指定为正类和反类。
三元码(-1,0,+1)在正、反类之外,还可指定“停用类”。

ECOC工作过程示例:

如图3.5(a)所示,共4个类别,进行了M=5次划分,共有f1,f2,f3,f4,f5 这5个分类器。

在图3.5(a)中,分类器f2将C1类和 C3 类的样例作为正例,C2 类和 C4 类的样例作为反例;在图3.5(b)中,分类器 f4 将 C1 类和 C4 类的样例作为正例,C3 类的样例作为反例。
在这里插入图片描述
图3.5(a)中每个类别经过这5个分类器都会输出一个编码,如中的C1类的输出编码为(-1,+1,-1,+1,+1),同理每个测试新样本也会输出一个5位的编码,通过测试编码与各个类别编码之间的距离,例如欧式距离,海明距离,将距离最小的编码所对应的类别作为预测结果。例如在图3.5(a)中,若基于欧氏距离,预测结果将是 C3

注:
1、海明距离:两个合法代码对应位上编码不同的位数称为码距,又称海明距离。举例如下:10101和00110从第一位开始依次有第一位、第四、第五位不同,则海明距离为3。
2、欧氏距离:欧几里得度量(euclidean metric)是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离。常见的二维空间公式和三维空间公式如下:
在这里插入图片描述
在这里插入图片描述
ECOC方法的特点:

1、有多位编码,存在一定的容错能力,如果训练类别与类别之间海明距离很大,那么即使测试样本在输出编码的时在某个或者某几个分类器输出的编码出错了,还是有可能能归到正确的类别中的。

2、ECOC编码越长,纠错能力越强,但同时对分类器的训练存储开销也都会增大,同时ECOC编码也不可能无限长,因为类别的组合是有限的,超过一定范围后的编码是没有意义的。

六、类别不平衡问题

以上问题在训练时必须尽量满足:不同类别的训练样本数目相当。
如果不同类别的训练样本数目稍有差别,那么问题不会很大,但是如果差别很大,则存在很大问题。例如1000个样例中有998个反例,2个正例,那么学习方法只需要一直输出反例,则可达99.8%的精度。

类别不平衡问题不仅仅出现在原始数据集D中,而且也有可能出现在经过OvR,MvM策略后产生的二分类任务中。

基本处理方法:
从线性分类器的角度讨论容易理解,在我们用 y= wT+b对新样本x进行分类时,事实上是在用预测出的y值与一个阈值进行比较,例如通常在y>0.5时判别为正例,否则为反例。

y实际上表达了正例的可能性,几率 y/1-y 则反映了正例可能性与反例可能性之比值,阈值设置为0.5恰表明分类器认为真实正、反例可能性相同,即分类器决策规则为
在这里插入图片描述
当训练集中正、反例的数目不同时, 令 m+ 表示正例数目,m- 表示反例数目,则观测几率是 m+/ m-

我们通常假设训练集是真实样本总体的无偏采样,因此观测几率就代表了真实几率。于是,只要分类器的预测几率高于观测几率就应判定为正例,即
在这里插入图片描述

以上解决方法是基于训练集是从真实样本总体中无偏采样,而实际中这个假设往往不成立。因此除了上述解决方法之外,常用的应对类别不平衡问题的策略大体上有三类:

1、“欠采样”(undersampling) :对训练集里的反类样例进行欠采样,即去除一些反例使得正、反例数目接近,然后再进行学习。

欠采样法若随机丢弃反例,可能丢失一些重要信息。
代表性算法EasyEnsemble [Liu et al, 2009]是利用集成学习机制,将反例划分为若干个集合供不同学习器使用,这样对每个学习器来看都进行了欠采样,但在全局来看却不会丢失重要信息。

2、“过采样”(oversampling) :对训练集里的正类样例进行过采样,即增加一些正例使得正、反例数目接近,然后再进行学习。

过采样法不能简单地对初始正例样本进行重复采样,否则会招致严重的过拟合。
代表性算法SMOTE [Chawlaet al., 2002)是通过对训练集里的正例进行插值来产生额外的正例。

对比:欠采样法的时间开销通常远小于过采样法,因为前者直接丢弃了很多反例,后者需要增加很多正。

3、“阈值移动”(threshold-moving):直接基于原始训练集进行学习,但在用训练好的分类器进行预测时,将下式嵌入到其决策过程中。

猜你喜欢

转载自blog.csdn.net/chengdong996/article/details/106885905
今日推荐