|NO.Z.00009|——————————|BigDataEnd|——|Arithmetic&Machine.v09|——|Machine:监督学习算法.v08|


一、线性回归算法
### --- 概述

~~~     在正式进入到回归分析的相关算法讨论之前,
~~~     我们需要对有监督学习算法中的回归问题进行进一步的分析和理解。
~~~     虽然回归问题和分类问题同属于有监督学习范畴,但实际上,回归问题要远比分类问题更加复杂。

~~~     首先是关于输出结果的对比,分类模型最终输出结果为离散变量,而离散变量本身包含信息量较少,
~~~     其本身并不具备代数运算性质,因此其评价指标体系也较为简单,最常用的就是混淆矩阵以及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
 

相关