当前位置 : 主页 > 网络编程 > 其它编程 >

机器学习(西瓜书)3、线性模型

来源:互联网 收集:自由互联 发布时间:2023-07-02
谈及线性模型其实我们很早就已经与它打过交道还记得高中数学必修3课本中那个顽皮的“最小二乘法”吗这就是线性模型的经典算法之一其实我们很早就已经与它打过交道还记得高中数
谈及线性模型其实我们很早就已经与它打过交道还记得高中数学必修3课本中那个顽皮的“最小二乘法”吗这就是线性模型的经典算法之一其实我们很早就已经与它打过交道还记得高中数学必修3课本中那个顽皮的“最小二乘法”吗这就是线性模型的经典算法之一根据给定的xy点对求出一条与这些点拟合效果最好的直线yaxb之前我们利用下面的公式便可以计算出拟合直线的系数a,b3.1中给出了具体的计算过程从而对于一个新的x可以预测它所对应的y值。前面我们提到在机器学习的术语中当预测值为连续值时称为“回归问题”离散值时为“分类问题”。本篇先从线性回归任务开始接着讨论分类和多分类问题。

3.1 线性回归

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

有时这些输入的属性值并不能直接被我们的学习模型所用需要进行相应的处理对于连续值的属性一般都可以被学习器所用有时会根据具体的情形作相应的预处理例如归一化等对于离散值的属性可作下面的处理

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

  • 若属性值之间不存在“序关系”则通常将其转化为向量的形式例如性别属性分为“男”“女”可转化为二维向量{1001}。

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

 

 基于均方误差最小化来进行模型求解的方法称 为"最小二乘法" (least squ町e method). 在线性回归中最小 A乘法就是试图 找到一条直线使所有样本到直线上的欧氏距离之和最小。

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

这个称为"多元线性回归"

通常对于多元问题常常使用矩阵的形式来表示数据。在本问题中将具有m个样本的数据集表示成矩阵X将系数w与b合并成一个列向量这样每个样本的预测值以及所有样本的均方误差最小化就可以写成下面的形式X中每行对应于一个示例该行前 d 个元素对应于示例的 d 个 属性值最后一个元素恒置为 1。

同样地我们使用最小二乘法对w和b进行估计令均方误差的求导等于0需要注意的是当一个矩阵的行列式不等于0时我们才可能对其求逆因此对于下式我们需要考虑矩阵X的转置*X的行列式是否满秩若满秩则可以求出其解若不满秩则需要使用其它的方法进行计算书中提到了引入正则化此处不进行深入。

另一方面有时像上面这种原始的线性回归可能并不能满足需求例如y值并不是线性变化而是在指数尺度上变化。这时我们可以采用线性模型来逼近y的衍生物例如lny对数线性回归。这时衍生的线性模型如下所示实质上已是在求取输入空间到输出 空间的非线性函数映射相当于将指数曲线投影在一条直线上作用将线性回归模型的预测值与真实标记联系起来。如下图所示

更一般地考虑所有y的衍生物的情形就得到了“广义的线性模型”generalized linear model其中g*称为联系函数link function。

3.2 对数几率回归

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

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

3.3 线性判别分析

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

想让同类样本点的投影点尽可能接近不同类样本点投影之间尽可能远即让各类的协方差之和尽可能小不用类之间中心的距离尽可能大。基于这样的考虑LDA定义了两个散度矩阵。

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

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

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

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

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

3.4 多分类学习

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

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

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

  • MvM给定数据集D假定其中有N个真实类别每次取若干个类作为正类若干个类作为反类通过ECOC码给出编码若进行了M次划分则生成了M个二分类学习器在测试阶段解码得出M个结果组成一个新的码最终通过计算海明/欧式距离选择距离最小的类别作为最终分类结果。

3.5 类别不平衡问题

类别不平衡class-imbanlance就是指分类问题中不同类别的训练样本相差悬殊的情况例如正例有900个而反例只有100个这个时候我们就需要进行相应的处理来平衡这个问题。常见的做法有三种

  • 在训练样本较多的类别中进行“欠采样”undersampling,比如从正例中采出100个常见的算法有EasyEnsemble。
  • 在训练样本较少的类别中进行“过采样”oversampling,例如通过对反例中的数据进行插值来产生额外的反例常见的算法有SMOTE。
  • 直接基于原数据集进行学习对预测值进行“再缩放”处理。其中再缩放也是代价敏感学习的基础。
  • 【文章原创作者:韩国机房 http://www.558idc.com/kt.html欢迎留下您的宝贵建议】
    网友评论