机器学习(西瓜书)-线性回归模型


笔记的前一部分主要是对机器学习预备知识的概括,包括机器学习的定义/术语、学习器性能的评估/度量以及比较,本篇之后将主要对具体的学习算法进行理解总结,本篇则主要是第3章的内容–线性模型。

3.1 基本形式

谈及线性模型,其实我们很早就已经与它打过交道,还记得高中数学必修3课本中那个顽皮的“最小二乘法”吗?这就是线性模型的经典算法之一:根据给定的(x,y)点对,求出一条与这些点拟合效果最好的直线y=ax+b,之前我们利用下面的公式便可以计算出拟合直线的系数a,b,从而对于一个新的x,可以预测它所对应的y值。
前面我们提到:在机器学习的术语中,当预测值为连续值时,称为“回归问题”,用于预测;离散值时为“分类问题”,用于分类。本篇先从线性回归任务开始,接着讨论分类和多分类问题。

线性模型 (linear model)试图学得一个通过属性的线性组合来进行预测的函数,
在这里插入图片描述

在这里插入图片描述
其中 权重ω=( ω1;ω2;’" ;ωd), 属性x = (x1; x2;…; xd) , ω 和 b 学得之后,模型就得以确定.(和线性代数中的矩阵方程类似)

3.2 线性回归

线性回归问题就是试图学到一个线性模型尽可能准确地预测新样本的输出值,例如:通过历年的人口数据预测2017年人口数量。在这类问题中,往往我们会先得到一系列的有标记数据,例如:2000–>13亿…2016–>15亿,这时输入的属性只有一个,即年份;也有输入多属性的情形,假设我们预测一个人的收入,这时输入的属性值就不止一个了,例如:(学历,年龄,性别,颜值,身高,体重)–>15k。

有时这些输入的属性值并不能直接被我们的学习模型所用,需要进行相应的处理(连续值的属性,离散值的属性),生活中大部分是离散值的属性,
对于连续值的属性:一般都可以被学习器所用,有时会根据具体的情形作相应的预处理,例如:归一化等;
对于离散值的属性:可作下面的处理,
1、若属性值之间存在“序关系”,则可以将其转化为连续值,例如:身高属性分为“高”“中等”“矮”,可转化为数值:{1, 0.5, 0}。
2、若属性值之间不存在“序关系”,则通常将其转化为向量的形式,例如:性别属性分为“男”“女”,可转化为二维向量:{(1,0),(0,1)}。


(1)当输入属性只有一个的时候,就是最简单的情形,也就是我们高中时最熟悉的“最小二乘法”(Euclidean distance),(和求一次函数类似) ,首先计算出每个样本预测值与真实值之间的误差并求和,通过最小化均方误差MSE,使用求偏导等于零的方法计算出拟合直线y=wx+b的两个参数w和b,计算过程如下图所示(求最小均方误差时w和b的值):

在这里插入图片描述

(2)当输入属性有多个的时候,例如对于一个样本有d个属性{(x1,x2…xd),y},则y=wx+b需要写成,上升到矩阵求解:
在这里插入图片描述
通常对于多元问题,常常使用矩阵的形式来表示数据。在本问题中,将具有m个样本的数据集表示成矩阵X,将系数w与b合并成一个列向量,这样每个样本的预测值以及所有样本的均方误差最小化就可以写成下面的形式(和上述一个属性的类似,x有d+1个属性,一共有m个样本):
在这里插入图片描述
在这里插入图片描述
同样地,我们使用最小二乘法对w和b进行估计(同样求最小均方误差下的w和b值),令均方误差的求导等于0,需要注意的是,当一个矩阵的行列式不等于0时,我们才可能对其求逆,因此对于下式,我们需要考虑矩阵(X的转置*X)的行列式是否为0,若不为0,则可以求出其解,若为0,则需要使用其它的方法进行计算,书中提到了引入正则化,此处不进行深入。

在这里插入图片描述


另一方面,有时像上面这种原始的线性回归可能并不能满足需求,例如:y值并不是线性变化,而是在指数尺度上变化。 这时我们可以采用线性模型来逼近y的衍生物,例如 lny,这时衍生的线性模型如下所示,实际上就是相当于将指数曲线投影在一条直线上,如下图所示(本来人家就是好好的线性关系,结果变成了广义线性模型,如 lny,这是为了特殊的分析需求):
在这里插入图片描述
更一般地,考虑所有y的衍生物的情形,就得到了 “广义的线性模型” (generalized linear model),其中,g(*)称为联系函数(link function)。
在这里插入图片描述
对数线性回归是广义线性模型在g(.) = ln(.) 时的特例。

3.3 对数几率回归

回归就是通过输入的属性值得到一个预测值,利用上述广义线性模型的特征,是否可以通过一个联系函数, 将预测值转化为离散值从而进行分类呢?线性几率回归正是研究这样的问题。 对数几率引入了一个对数几率函数(logistic function),将预测值投影到0-1之间,从而将线性回归问题转化为二分类问题。

理想情况是使用阶跃函数(但是不连续):
在这里插入图片描述
实际情况使用对数几率函数(连续且和阶跃函数类似):
在这里插入图片描述
在这里插入图片描述
其实这就是一种广义线性回归模型,这样就确定了g(*),下图中进行反函数变换后得到标准的广义线性模型。
在这里插入图片描述


若将y看做样本为正例的概率(1-y)看做样本为反例的概率,则上式实际上使用线性回归模型的预测结果器逼近真实标记的对数几率。因此这个模型称为“对数几率回归”(logistic regression),也有一些书籍称之为“逻辑回归”。

以下称为:“对数几率”
在这里插入图片描述
下面使用最大似然估计的方法来计算出w和b两个参数的取值,下面只列出求解的思路,不列出具体的计算过程。

最大似然准则就是所有情况概率相乘,使概率乘积最大时的估计值。

在这里插入图片描述

嗨~,求解就是这个大概思路,具体步骤的话,如果以后研究到了再详细学习。

3.4 线性判别分析

线性判别分析(Linear Discriminant Analysis,简称LDA),其基本思想是:将训练样本投影到一条直线上,使得同类的样例尽可能近,不同类的样例尽可能远(高内聚,低耦合)。如图所示:
在这里插入图片描述
在这里插入图片描述

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

  • 目标函数
    在这里插入图片描述

基于这样的考虑,LDA定义了两个散度矩阵。

  • 类内散度矩阵(within-class scatter matrix)
    在这里插入图片描述
  • 类间散度矩阵(between-class scaltter matrix)
    在这里插入图片描述
    因此得到了LDA的最大化目标: “广义瑞利商”(generalized Rayleigh quotient)。
    在这里插入图片描述

广义瑞利商证明过程:
在这里插入图片描述
在这里插入图片描述

以上证明能帮助更好地理解目标函数的形式,自己看来,
wT向量=在w向量的投影点
wT
向量模平方*w=在w向量的投影点相关计算


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

求解w的方法如下所示,使用的方法为拉格朗日乘子法从图中可以看出w是一个向量,只需要确定向量方向即可确定一条直线的位置
在这里插入图片描述
其中, A s.t. B 表示在条件B成立时,计算A。


拉格朗日乘子法求解w过程:
在这里插入图片描述

哈哈哈!我怎么感觉从分类的那个图上直接就能确定方向是μ0-μ1。
据说LDA这种方法现在不怎么用了,但是非常经典。


3.5 多分类学习

现实中我们经常遇到不只两个类别的分类问题,即多分类问题,在这种情形下,我们常常运用“拆分”的策略,通过多个二分类学习器来解决多分类问题,即将多分类问题拆解为多个二分类问题,训练出多个二分类学习器,最后将多个分类结果进行集成得出结论。最为经典的拆分策略有三种:“一对一”(OvO)、“一对其余”(OvR)和“多对多”(MvM),核心思想与示意图如下所示。
在这里插入图片描述

  • "一对一" (One vs. One,简称 OvO):给定数据集D,假定其中有N个真实类别,将这N个类别进行两两配对(一个正类/一个反类),从而产生N(N-1)/2个二分类学习器(概率论中的CN2,从N个中不重复的找2个),在测试阶段,将新样本放入所有的二分类学习器中测试,得出N(N-1)/2个结果,最终通过投票产生最终的分类结果。
    在这里插入图片描述
  • "一对其余" (One vs. Rest,简称 OvR):给定数据集D,假定其中有N个真实类别,每次取出一个类作为正类,剩余的所有类别作为一个新的反类,从而产生N个二分类学习器,在测试阶段,得出N个结果,若仅有一个学习器预测为正类,则对应的类标作为最终分类结果。
    在这里插入图片描述
  • "多对多" (Many vs. Many,简称 MvM):常用技术,纠错输出码" (Error CorrectingOutput Codes,简称 ECOC).,给定数据集D,假定其中有N个真实类别,每次取若干个类作为正类,若干个类作为反类(通过ECOC码给出,编码),若进行了M次划分,则生成了M个二分类学习器,在测试阶段(解码),得出M个结果组成一个新的码,最终通过计算海明/欧式距离选择距离最小的类别作为最终分类结果。
    在这里插入图片描述

知识点:
海明距离:序列相同位置上数据不同的个数。
如+1 -1 +1和+1 +1 -1,海明距离是2。
欧氏距离:空间点距离。
如v0=(+1,-1,-1) ,v1=(+1,+1,-1),欧氏距离是sqrt((0)2+(2)2+(0)2)


总结:

OvO和OvR
OvR 需训练 N 个分类器,每个分类器均使用全部训练样例,
而 OvO 需训练 N(N - 1)/2 个分类器,每个分类器仅用到两个类的样例。
在类别较少时,OvR的存储开销和测试时间开销更小。
在类别较多时,OvO的训练时间开销更小。

MvM
一般来说,对同一个学习任务, ECOC 编码越长,纠错能力越强。然而,编码越长,意味着所需训练的分类器越多,计算、存储开销都会增大;另一方面,对有限类别数,可能的组合数目是有限的,码长超过一定范围后就失去了意义。
不必找最优编码,因为非最优编码在实践中往往己能产生足够好的分类器。
一个理论纠错牲质很好,但导致的二分类问题较难的编码,与另一个理论纠错性质差一些,但导致的二分类问题较简单的编码,最终产生的模型性能孰强孰弱很难说。

3.6 类别不平衡问题

类别不平衡(class-imbanlance)就是指分类问题中不同类别的训练样本相差悬殊的情况,本节假定正类样例较少,反类样例较多.,这个时候我们就需要进行相应的处理来平衡这个问题常见的做法有三种:

  • 第一类是直接对训练集里的反类样例进行 “欠采样” (undersampling) ,即去除一些反倒使得正、反例数日接近,然后再进行学习,常见的算法有:EasyEnsemble。
  • 第二类是对训练集里的正类样例进行 “过采样” (oversampling) ,即增加一些正例使得正、反例数目接近,然后再进行学习,常见的算法有SMOTE。
  • 第三类则是直接基于原始训练集进行学习,但在用训练好的分类器进行预测时,将下式嵌入到其决策过程中,称为"阈值移动" (threshold-moving)。对预测值进行 “再缩放” 处理。其中再缩放也是代价敏感学习的基础,可替换。
    在这里插入图片描述

在这里插入图片描述
按照0.5作为阈值的预测几率:在这里插入图片描述
修正后的预测几率(再缩放):在这里插入图片描述

观测几率:
在这里插入图片描述
预测几率(再缩放) > 观测几率 即可认为是正例


  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值