|NO.Z.00009|——————————|BigDataEnd|——|Arithmetic&Machine.v09|——|Machine:监督学习算法.v08|
一、线性回归算法
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart ——W.S.Landor
### --- 概述
~~~ 在正式进入到回归分析的相关算法讨论之前,
~~~ 我们需要对有监督学习算法中的回归问题进行进一步的分析和理解。
~~~ 虽然回归问题和分类问题同属于有监督学习范畴,但实际上,回归问题要远比分类问题更加复杂。
~~~ 首先是关于输出结果的对比,分类模型最终输出结果为离散变量,而离散变量本身包含信息量较少,
~~~ 其本身并不具备代数运算性质,因此其评价指标体系也较为简单,最常用的就是混淆矩阵以及ROC曲线。
~~~ 而回归问题最终输出的是连续变量,其本身不仅能够代数运算,且还具有更"精致"的方法,
~~~ 希望对事物运行的更底层原理进行挖掘。即回归问题的模型更加全面、完善的描绘了事物客观规律,
~~~ 从而能够得到更加细粒度的结论。
~~~ 因此,回归问题的模型往往更加复杂,建模所需要数据所提供的信息量也越多,进而在建模过程中可能遇到的问题也越多。
### --- 线性回归与机器学习
~~~ 线性回归是解决回归类问题最常使用的算法模型,
~~~ 其算法思想和基本原理都是由多元统计分析发展而来,但在数据挖掘和机器学习领域中,
~~~ 也是不可多得的行之有效的算法模型。
~~~ 一方面,线性回归蕴藏的机器学习思想非常值得借鉴和学习,并且随着时间发展,
~~~ 在线性回归的基础上还诞生了许多功能强大的非线性模型。
~~~ 因此,我们在进行机器学习算法学习过程中,仍然需要对线性回归这个统计分析算法进行系统深入的学习。
~~~ 但这里需要说明的是,线性回归的建模思想有很多理解的角度,
~~~ 此处我们并不需要从统计学的角度来理解、掌握和应用线性回归算法,
~~~ 很多时候,利用机器学习的思维来理解线性回归,
~~~ 会是一种更好的理解方法,这也将是我们这部分内容讲解线性回归的切入角度。
二、线性回归的机器学习表示方法
### --- 线性回归的机器学习表示方法
~~~ # 核心逻辑
~~~ 任何机器学习算法首先都有一个最底层的核心逻辑,当我们在利用机器学习思维理解线性回归的时候,
~~~ 首先也是要探究其底层逻辑。值得庆辛的是,虽然线性回归源于统计分析,
~~~ 但其算法底层逻辑和机器学习算法高度契合。
~~~ 在给定n个属性描绘的客观事物x=(x1.x2,x3,......,xn) 中,
~~~ 每个xn都用于描绘某一次观测时事物在某个维度表现出来的数值属性值。
~~~ 当我们在建立机器学习模型捕捉事物运行的客观规律时,
~~~ 本质上是希望能够综合这些维度的属性值来描绘事物最终运行结果,
~~~ 而最简单的综合这些属性的方法就是对其进行加权求和汇总,这即是线性回归的方程式表达形式:
~~~ w被统称为模型的参数,其中w0被称为截距(intercept),
~~~ W1~ Wn被称为回归系数(regressioncoeffiffifficient),有时也是使用 或者 来表示。
~~~ 这个表达式,其实就和我们小学时就无比熟悉的y=ax+b是同样的性质。
~~~ 其中 是我们的目标变量,也就是标签。xi1是样本上的特征不同特征。
~~~ 如果考虑我们有m个样本,则回归结果可以被写作:
~~~ 其中 是包含了m个全部的样本的回归结果的列向量(结构为(m,1),
~~~ 由于只有?列,以列的形式表示,所以叫做列向量)。
~~~ 注意,我们通常使用粗体的小写字母来表示列向量,
~~~ 粗体的大写字母表示矩阵或者行列式。
~~~ 我们可以使用矩阵来表示这个方程,其中 可以被看做是?个结构为(n+1,1)的列矩阵,
~~~ 是?个结构为(m,n+1)的特征矩阵,则有:
~~~ 线性回归的任务,就是构造?个预测函数来映射输入的特征矩阵X和标签值 的线性关系,
~~~ 这个预测函数在不同的教材上写法不同,可能写作f(x),Yw(x) ,
~~~ 或者h(x)等等形式,但无论如何,这个预测函数的本质就是我们需要构建的模型。
### --- 优化目标
~~~ 对于线性回归而言,预测函数y=Xw就是我们的模型,在机器学习我们也称作 "决策函数"。
~~~ 其中只有W是未知的,所以线性回归原理的核心就是找出模型的参数向量W。
~~~ 但我们怎样才能够求解出参数向量呢?我们需要依赖一个重要概念:损失函数。
~~~ 在之前的算法学习中,我们提到过两种模型表现:在训练集上的表现,和在测试集上的表现。
~~~ 我们建模,是追求模型在测试集上的表现最优,
~~~ 因此模型的评估指标往往是?来衡量模型在测试集上的表现的。
~~~ 然而,线性回归有着基于训练数据求解参数W的需求,
~~~ 并且希望训练出来的模型能够尽可能地拟合训练数据,即模型在训练集上的预测准确率越靠近100%越好。
~~~ 因此,我们使用”损失函数“这个评估指标,
~~~ 来衡量系数为w的模型拟合训练集时产生的信息损失的大小,并以此衡量参W 的优劣。
~~~ 如果用一组参数建模后,模型在训练集上表现良好,那我们就说模型拟合过程中的损失很小,
~~~ 损失函数的值很小,这一组参数就优秀;相反,如果模型在训练集上表现糟糕,
~~~ 损失函数就会很大,模型就训练不足,效果较差,这一组参数也就比较差。
~~~ 即是说,我们在求解参数W时,追求损失函数最小,
~~~ 让模型在训练数据上的拟合效果最优,即预测准确率尽量靠近100%。
关键概念:损失函数 |
衡量参数 的优劣的评估指标,?来求解最优参数的?具 损失函数小,模型在训练集上表现优异,拟合充分,参数优秀 损失函数大,模型在训练集上表现差劲,拟合不足,参数糟糕 我们追求,能够让损失函数最小化的参数组合 注意:对于非参数模型没有损失函数,比如KNN、决策树 |
~~~ 对于有监督学习算法而言,建模都是依据有标签的数据集,回归类问题则是对客观事物的?个定量判别。这里以yi作为第 行数据的标签,且yi为连续变量, 为第 行特征值所组成的向量,则线性回
~~~ 归建模优化方向就是希望模型判别的yi尽可能地接近实际的。
~~~ 而对于连续型变量而言,邻近度度量方法可采用SSE来进行计算,SSE称作「残差平方和」,
~~~ 也称作「误差平方和」或者「离差平方和」。因此我们的优化目标可用下述方程来进行表示:
~~~ 来看?个简单的?例子。假设现在W为[1,2]这样?个向量,求解出的模型为y=x1+2x2。
~~~ 则我们的损失函数的值就是:
样本 | 特征1 | 特征2 | 真实标签 |
0 | 1 | 0.5 | 3 |
1 | -1 | 0.5 | 2 |
### --- 最小二乘法
~~~ 现在问题转换成了求解让SSE最小化的参数向量W,
~~~ 这种通过最小化真实值和预测值之间的SSE来求解参数的方法叫做最小二乘法。
~~~ 回顾一元线性回归的求解过程
~~~ 首先我们对上图的数据进行拟合,可得到:
~~~ 假设该拟合直线为y=w0+w1x。现在我们的目标是使得该拟合直线的总的残差和达到最小,
~~~ 也就是最小化SSE。
### --- 多元线性回归求解参数
~~~ 更?般的情形,还记得我们刚才举的小例子么?如果我们有两列特征属性,则损失函数为:
~~~ 到了这里,我们希望能够将W留在等式的左边,其他与特征矩阵有关的部分都放到等式的右边,
~~~ 如此就可以求出 的最优解了。这个功能非常容易实现,只需要我们左乘XtX的逆矩阵就可以。
~~~ 在这里,逆矩阵存在的充分必要条件是特征矩阵不存在多重共线性。
~~~ 我们将会在后面详细讲解多重共线性这个主题。
~~~ 假设矩阵的逆是存在的,此时我们的W就是我们参数的最优解。
~~~ 求解出这个参数向量,我们就解出了我们的Xw ,也就能够计算出我们的预测值y了。
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart ——W.S.Landor