周志华《机器学习》总结——三、线性模型

目录

3.1 回归学习—线性回归

3.2 分类学习—对数几率回归

3.3 分类学习—线性判别分析

3.4 多分类学习

3.6 类别不平衡问题

非线性模型可在线性模型的基础上通过引入层级结构或高维映射而得。

当预测值为连续值时,称为“回归问题”,离散值时为“分类问题”。本篇先从线性回归任务开始,接着讨论分类和多分类问题。

3.1 回归学习—线性回归

线性回归问题就是试图学到一个线性模型尽可能准确地预测新样本的输出值

对于连续值的属性,一般都可以被学习器所用,有时会作相应的预处理,如:归一化等;对于离散值的属性,可作下面的处理:

  • 若属性值之间存在“序关系”,则可将其转化为连续值,如:高、中等、矮,可转化为数值:{1, 0.5, 0}。

  • 若属性值之间不存在“序关系”,则将其转化为向量形式,如:男、女,转化为向量:{(1,0)(0,1)}。k个属性值通常转换为k维向量

(1)当输入属性只有一个的时候,采用“最小二乘法"(试图找到一条直线,使所有样本到直线上的欧式距离之和最小),通过最小化样本预测值与真实值之间的均方误差MSE,使用求偏导等于零的方法计算出拟合直线y=wx+b的两个参数w和b,计算过程:

Image Name

(2)当输入属性有多个的时候,例如对于一个样本有d个属性{(x1,x2...xd),y},则y=wx+b需要写成:

Image Name

对于多元问题,使用矩阵形式表示数据。在本问题中,将具有m个样本的数据集表示成矩阵X,将系数w与b合并成一个列向量,这样每个样本的预测值以及所有样本的均方误差最小化就可以写成下面的形式:

Image Name

Image Name

使用最小二乘法对w和b进行估计,令均方误差的求导等于0。XTX要求是满秩矩阵或正定矩阵(行列式≠0),才能求逆,若为0,则需要使用其它的方法进行计算,书中提到了引入正则化。

Image Name

广义线性模型令模型预测值逼近y的衍生物—对数线性回归

y值并不是线性变化,而是在指数尺度上变化。采用线性模型来逼近y的衍生物,如lny,这时衍生的线性模型如下所示,实际上就是相当于将指数曲线投影在一条直线上,如下图所示:

Image Name

考虑所有y的衍生物,就得到了“广义的线性模型”,其中,g(*)称为联系函数(link function),单调可微。

Image Name

3.2 分类学习—对数几率回归

对数几率回归名字是回归,但是一种分类学习方法。回归就是通过输入的属性值得到一个预测值,利用上述广义线性模型的特征,是否可以通过一个联系函数,将预测值转化为离散值从而进行分类呢?

对数几率引入了一个对数几率函数(logistic function),将预测值投影到0-1之间,从而将线性回归问题转化为二分类问题。

Image Name

Image Name

若将y看做样本为正例的概率,(1-y)看做样本为反例的概率,两者比值称为“几率”,取对数即对数几率。实际上是使用线性回归模型的预测结果逼近真实标记的对数几率。因此这个模型称为“对数几率回归”(logistic regression)。下面使用最大似然估计的方法来计算出w和b两个参数的取值,下面只列出求解的思路,不列出具体的计算过程。

Image Name

Image Name

3.3 分类学习—线性判别分析

线性判别分析(Linear Discriminant Analysis,简称LDA),其基本思想是:将训练样本投影到一条直线上,使得同类的样例尽可能近,不同类的样例尽可能远。如图所示:

Image Name

想让同类样本点的投影点尽可能接近,不同类样本点投影之间尽可能远,即:让各类的协方差之和尽可能小,不用类之间中心的距离尽可能大

  • 类内散度矩阵(within-class scatter matrix)

Image Name

  • 类间散度矩阵(between-class scaltter matrix)

Image Name

因此得到了LDA的最大化目标:“广义瑞利商”(generalized Rayleigh quotient)。

Image Name

从而分类问题转化为最优化求解w的问题,当求解出w后,对新的样本进行分类时,只需将该样本点投影到这条直线上,根据与各个类别的中心值进行比较,从而判定出新样本与哪个类别距离最近。求解w的方法如下所示,使用的方法为拉格朗日乘子法。

Image Name

若将w看做一个投影矩阵,类似PCA的思想,则LDA可将样本投影到N-1维空间,投影的过程使用了类别信息(标记信息),因此LDA也常被视为一种经典的监督降维技术。

3.4 多分类学习

多分类问题,运用“拆分”的策略,通过多个二分类学习器来解决多分类问题,即将多分类问题拆解为多个二分类问题,训练出多个二分类学习器,最后将多个分类结果进行集成得出结论。最为经典的拆分策略有三种:“一对一”(OvO)、“一对其余”(OvR)和“多对多”(MvM),核心思想与示意图如下所示。

  • OvO:给定有N个真实类别的数据集D,将这N个类别进行两两配对(一个正类/一个反类),从而产生N(N-1)/2个二分类学习器,在测试阶段,将新样本放入所有的二分类学习器中测试,得出N(N-1)/2个结果,最终通过投票产生最终的分类结果。

  • OvM:给定有N个真实类别的数据集D,每次取出一个类作为正类,剩余的所有类别作为一个新的反类,从而产生N个二分类学习器,在测试阶段,得出N个结果,若仅有一个学习器预测为正类,则对应的类标作为最终分类结果。

  • MvM:给定有N个真实类别的数据集D,每次取若干个类作为正类,若干个类作为反类(通过纠错输出码(Error Correcting Output Codes,ECOC)码编码),若进行了M次划分,则生成了M个二分类学习器,在测试阶段(解码),得出M个结果组成一个新的码,最终通过计算海明/欧式距离选择距离最小的类别作为最终分类结果。纠错输出码具有一定的容忍和修正能力。

Image Name

Image Name

3.6 类别不平衡问题

类别不平衡(class-imbanlance)就是指分类问题中不同类别的训练样本相差悬殊的情况,例如反例有998个,而正例只有2个,那么学习方法只需返回一个永远将新样本预测为反例的学习器,就能达到99.8%的精度。但这样的学习器毫无价值,无法预测任何正例。类别不平衡的处理方法常见有三种:

  1. 在训练样本较多的类别中进行“欠采样”(undersampling),常见的算法有:EasyEnsemble。

  2. 在训练样本较少的类别中进行“过采样”(oversampling),例如通过对反例中的数据进行插值,来产生额外的反例,常见的算法有SMOTE。

  3. 直接基于原数据集进行学习,对预测值进行“再缩放”处理。其中再缩放也是代价敏感学习的基础。

Image Name

m+表示真实正例数目,m-表示真实反例数目,对预测值进行“再缩放"处理后,再判断正反例(>1正例,<1反例)

参考:西瓜书学习笔记(3)--线性模型 - Heywhale.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值