• 13
  • 13
分享
  • 机器学习之线性回归算法概述——软件测试圈
  • 曼倩诙谐 2021-08-09 10:09:07 字数 2008 阅读 1059 收藏 13

  线性回归是机器学习中最基础的模型。虽然相较而言其结构简单且易理解,但其不仅能体现出机器学习重要的基本思想,还能构造出功能更加强大的非线性模型,对于后续机器学习算法的不断发展起了至关重要的作用。

  在数理统计中,回归分析是确定多种变量间相互依赖的定量关系的方法。线性回归假设输出变量是若干输入变量的线性组合,并根据这一关系求解线性组合中的最优系数。在众多回归分析的方法里,线性回归模型最易于拟合,其估计结果的统计特性也更容易确定,因而得到广泛应用。而在机器学习中,回归问题隐含了输入变量和输出变量均可连续取值的前提,因而利用线性回归模型可以对任意输入给出对输出的估计。

  1875年,从事遗传问题研究的英国统计学家弗朗西斯·高尔顿正在寻找父代与子代身高之间的关系。在分析了1078对父子的身高数据后,他发现这些数据的散点图大致呈直线状态,即父亲的身高和儿子的身高呈正相关关系。高尔顿将这种现象称为“回归效应”,并给出了历史上第一个线性回归的表达式:

1.png


  式中的y和x分别代表子代和父代的身高(单位为英寸)。回归效应在当今的机器学习中依然活跃。假定一个实例可以用列向量2.png表示,每个3.png代表了实例在第i个属性上的取值,线性回归的作用就是习得一组参数4.png使预测输出可以表示为以这组参数为权重的实例属性的线性组合。如果引入常量5.png,线性回归试图学习的模型就是:

6.png

  当实例只有一个属性时,输入和输出之间的关系就是二维平面上的一条直线;当实例的属性数目较多时,线性回归得到的就是n维空间上的一个超平面,对应一个维度等于n-1的线性子空间。

  在训练集上确定系数7.png时,预测输出8.png和真实输出y之间的误差是训练模型的关键,这一误差以均方误差来定义。当线性回归的模型为二维平面上的直线时,均方误差就是预测输出和真实输出之间的欧式距离,也就是两点间向量的L2范数。使均方误差取得最小值为目标的模型求解方法就是最小二乘法,其表达式可以写成:

9.png

  式中每个10.png代表训练集中的一个样本。在单变量线性回归任务中,最小二乘法的作用就是找到一条直线,使所有样本到直线的欧式距离之和最小。

  从概率角度也可以解释,为何均方误差最小时的参数就是模型的最优参数。线性回归得到的是统计意义上的拟合结果,在单变量的情形下,可能每一个样本点都没有落在拟合得到的直线上。对这个现象的一种解释是回归结果可以完美匹配理想样本点的分布,但训练中使用的真实样本点是理想样本点和噪声叠加的结果,因而与回归模型之间产生了偏差,而每个样本点上噪声的取值就等于11.png

  假定影响样本点的噪声满足参数为12.png的正态分布,这意味着取值等于0的噪声出现的概率最大,幅度越大的噪声出现的概率越小。在这种情形下,对参数w的推导就可以用极大似然估计理论完成,即在已知样本数据及其分布的条件下,找到使样本数据以最大概率出现的假设。

  单个样本13.png出现的概率实际上就是噪声等于14.png的概率,而相互独立的所有样本同时出现的概率则是每个样本出现概率的乘积,其表达式可以写成:

15.png

  极大似然估计就是让以上表达式的取值最大化。出于计算简便的考虑,上面的乘积式可以通过取对数的方式转化成求和式,且取对数的操作并不会影响其单调性。经过一番运算后,上式的最大化就可以等效为16.png的最小化。这和最小二乘法的结果一致。

  因此,对于单变量线性回归而言,在误差函数服从正态分布的情况下,从几何意义出发的最小二乘法与从概率意义出发的极大似然估计是等价的。

  确定了最小二乘法的最优性,接下来的问题就是如何求解均方误差的最小值。在单变量线性回归中,其回归方程可以写成17.png。根据最优化理论,将这一表达式代入均方误差的表达式中,并分别对18.png19.png求偏导数,令两个偏导数均等于0的取值就是线性回归的最优解,其解析式可以写成:

20.png

21.png

  单变量线性回归只是一种最简单的特例。比如子代的身高并非仅仅由父母的遗传基因决定,营养条件、生活环境等因素都会产生影响。当样本的描述涉及多个属性时,这类问题就被称为多元线性回归。

  多元线性回归中的参数w也可以用最小二乘法进行估计,其最优解同样用偏导数确定,但参与运算的元素从向量变成了矩阵。在理想的情况下,多元线性回归的最优参数为:

22.png

  式中的X是由所有样本23.png的转置共同构成的矩阵。但这一表达式只在矩阵的逆矩阵24.png存在时成立。在大量复杂的实际任务中,每个样本中属性的数目甚至会超过训练集中的样本总数,此时求出的最优解25.png就不是唯一的,解的选择将依赖于学习算法的归纳偏好。

  但不论采用怎样的选取标准,存在多个最优解都是无法改变的事实,这也意味着过拟合的产生。更重要的是,在过拟合的情形下,微小扰动给训练数据带来的毫厘之差可能会导致训练出的模型谬以千里,模型的稳定性也就无法保证。因此在构建线性回归模型时,要考虑过拟合的问题。最常用的方法就是给模型增加正则化项,限制参数26.png的取值范围,从而提升模型的泛化能力。



作者:赵嘉铭 李志伟 赵旭   

来源:51Testing软件测试网原创

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   前言  面试的时候,经常会临场出题:给你一个xxx, 如何测试, 或者说如何写测试用例?xxx可以是圆珠笔,水杯,电梯等生活中常见的场景。  那么给你一个支付的二维码,如何写测试用例呢?  二维码扫码支付  如下图,给你这个个人收款的二维码,如何测试?  首先要知道什么是二维码? 二维码实际上就是一个 url 地址,当手机扫码后,会根据二维码上的黑和白(黑色的色素块代表1,白色的色素块代表0)区域解析成 url 地址。  然后再分析下使用场景,这里实际上涉及到一个收款方,一个支付方。收款方生成二维码,支付方拿着手机去扫码。  知道使用场景了,接着拆分功能点,从字面上"二维码扫码支...
            13 11 3685
            分享
          • 最近在看一本15年出版的《Java并发编程的艺术》一书,其中看到并发编程时间部分的ForkJoinPool功能时,突然发现这个功能实际使用上就是把一个大任务分成多个小的子任务,然后使用多个线程完成。这个场景跟我之前写过的自定义Java自定义异步功能实践有点异曲同工之妙,只不过这里有有个子任务的概念,多个任务执行结果是具有相关性的。资料指出ForkJoinPool比较适合计算密集型的任务。在性能测试中QPS取样器和RT取样器中,有这样一个使用场景,在用例执行过程中,我想了解一下当前用例执行的QPS和RT信息,就需要有个触发开关,开始收集这些数据,等某一个终止条件被触发,结束收集,然后计算结果。在...
            0 0 1053
            分享
          • 1、数据库连接1、通过命令行连接数据库[root@localhost ~]# mysql -u root -p Enter password:输入以上命令,回车后输入密码,回车,出现 mysql> 命令提示窗口则表示登录成功,可以在mysql>下输入任何sql语句。2、退出mysqlmysql> exit Bye2、创建数据库语法:CREATE DATABASE <数据库名>;先连接mysql服务后,再使用sql语句。可以通过命令连接也可以通过客户端工具例如navicat连接...
            14 14 2437
            分享
          • 说到测试或者测试工程师,人们的第一反应大概是“找碴”、“鸡蛋里找骨头”、“背锅侠”……其实这是对于测试这行的一个很大的误解。测试过程对于绝大多数行业来说是非常重要的一环,厨师在烹饪的时候会尝一尝菜品的味道,一栋楼在建造之前和竣工之后要进行检测,软件在发布之前也要进行很多轮的测试来验证软件的各项性能指标。作者从事多年测试工作,经历了对测试一无所知到略知皮毛,也对测试工作有了更深的理解。如何成为一个合格的测试工程师是一个很大的话题,无论从事这行的工程师还是研究测试的专家都在思考怎么进行更有效的测试,如何提高相关从业者的认知水平。如果有人问我是不是一个合格的测试工程师?这是一个很难回答的问题。从事多...
            0 0 1484
            分享
          •   在一般的面试环节过后,聊过自我介绍、业务问题、基本信息、简历信息这些,HR往往会跟你聊聊人(xian)生(liao)~  却有人好不容易过关斩将到了终面,在跟公司高管在轻松的氛围下“闲聊”后,与即将到手的offer失之交臂。  其实,面试官没有太多时间来“闲聊”,去了解你的私生活,问的每个话题都是想从侧面更多的了解你,每一句都是带有目的的,因为从应聘者进公司的那瞬间,面试可能就已经开始了。  在面试中,不存在脱口而出而没有用意的问题。  面试官会从见到面试者或是第一次电话起,直到确定是否录用为止,都是在评估应聘者的过程,有些面试官会用一些轻松的语句让气氛变得轻松活跃,让应聘者放松警惕,从而...
            0 0 1068
            分享
      • 51testing软件测试圈微信