欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

机器学习-线性回归

程序员文章站 2022-05-25 20:08:57
~~~不积跬步,无以至千里~~~ 为了更好的学习线性回归,首先复习一次函数的特性: 什么是线性回归? 假设现在有一些数据点,我们利用一条直线对这些点进行拟合(该线称为最佳拟合直线),这个拟合过程就称作为回归,如下图所示: 回归问题分为模型的学习和预测两个过程。基于给定的训练数据集构建一个模型,根据新 ......

 

~~~不积跬步,无以至千里~~~

为了更好的学习线性回归,首先复习一次函数的特性:

机器学习-线性回归

 

 

什么是线性回归?

假设现在有一些数据点,我们利用一条直线对这些点进行拟合(该线称为最佳拟合直线),这个拟合过程就称作为回归,如下图所示:

 

机器学习-线性回归

回归问题分为模型的学习预测两个过程。基于给定的训练数据集构建一个模型,根据新的输入数据预测相应的输出

回归问题按照输入变量的个数可以分为一元回归多元回归;按照输入变量和输出变量之间关系的类型,可以分为线性回归非线性回归

 

 

一元线性回归

在回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线表示,这种回归分析称为一元线性回归分析,可以用y=ax+b表示。假设有一个房屋销售的数据如下(例子来源于网络):

面积(m^2)  销售价钱(万元)

   123            250

   150            320

   87              160

   102            220

   …               …

根据面积和总价作图,x轴是房屋的面积,y轴是房屋的售价:

机器学习-线性回归

利用曲线对数据集进行拟合,如果这个曲线是一条直线,那就被称为一元线性回归。

假设要销售一个新的面积,没有对应的价格,这个时候可以用一条曲线去尽量准的拟合原始数据,然后根据新的面积,在将曲线上这个点对应的值返回。如果用一条直线去拟合,可能是下面的样子:

    机器学习-线性回归

绿色的点就是我们想要预测的点。

机器学习过程:首先给出一个输入数据,我们的算法会通过一系列的过程得到一个估计的函数,这个函数有能力对没有见过的新数据给出一个新的估计,也被称为构建一个模型。就如同上面的线性回归函数。

机器学习-线性回归

 

 

多元线性回归

假设我去银行申请贷款,银行会根据我们的工资、年龄等条件给我们计算贷款额度。假设额度只与年龄和工资有关,下面有5个申请人的基本信息(样本)。那么,如何根据这些数据构建一个模型,来预测其他人的贷款额度呢?(表格数据来源于网络)

机器学习-线性回归

对于一个线性关系,我们使用y=ax+b表示,但在这种关系中y只受一个x的影响,二者的关系可用一条直线近似表示,这种关系叫一元线性回归。

而在本例中,额度(y)工资(x1)和年龄(x2)的影响,可以近似的看成下图:

机器学习-线性回归

 

图中红点为样本数据,现在,我们的目标是根据给定的数据集拟合一个平面,使得各个样本数据到达平面的误差最小。由此得到线性回归的模型函数机器学习-线性回归。额度受到多个变量的影响,称之为多元线性回归

  • 参数θ1 、θ2为权重项,对结果影响较大;
  • 参数θ0为偏置项,因为偏置项不与数据组合,在数据预处理时,需要数据前加入值为1一列,才能保证偏置项值不变。偏置项也可以看成是回归函数的截距,如果没有偏置项,则导致所有的拟合平面都要经过圆点(0,0),所以在处理数据时不要忘记加入偏置项。偏置项的理解请点击此处

将上式中的θ和x分别表示成两个一维矩阵[θ0   θ1   θ2]和[x0   x1   x2],则可将上式化为机器学习-线性回归(x0为我们加入的一列,每个值为1)。

然而,实际结果不可能完全符合我们的预期,样本和拟合平面必定存在误差,假设对于每一个样本,都存在:机器学习-线性回归(实际值=预测值+误差),其中机器学习-线性回归为真实误差。

误差机器学习-线性回归独立并且具有相同的分布(通常认为是均值为0的高斯分布)。

  •  独立:每个红点到拟合平面的距离都不相同
  •  相同的分布:可以理解成在同一家银行申请信用卡(因为每个银行的额度评估标准不同)

 

因此,把误差值机器学习-线性回归带入高斯分布函数:机器学习-线性回归,得到概率密度函数:

            机器学习-线性回归

                                                { p(y|x;θ)表示在给定了参数θ的情况下,给定一个x就能求出对应的y }

因此,如果存在大量的样本,我们就可以通过机器学习-线性回归机器学习-线性回归做关于θ的参数估计

这里思考一个问题:当误差机器学习-线性回归趋于0时,预测的值越接近真实值。上面的概率密度函数是不是可以理解为:参数θ和x样本数据组合后的预测值接近y的概率越大越好呢?x是已知的样本数据,要想误差机器学习-线性回归趋于0时,那么预测值要越大越好(越接近真实值),也就是参数θ越大越好。那么怎样才能让参数θ越大越好呢?

 

引入似然函数

          机器学习-线性回归

极大似然估计定义

对于因变量y,最大似然估计就是去找到y的参数值θ ,使其发生概率最大,利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值θ 。

由极大似然估计的定义,我们需要l(θ )最大,需要两边取对数对这个表达式进行化简如下:

        机器学习-线性回归

 红色方框被标记的两个部分均为常数,不会影响最终结果。因此,减法后面的式子应当越小越好:

机器学习-线性回归

化简后得到目标函数:

        机器学习-线性回归最小二乘法)

 

最小二乘法定义:最小二乘法又称最小平方法,它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。

 

接下来最小化目标函数,θ 取何值的时,目标函数取得最小值,而目标函数连续,那么 θ 一定为目标函数的极值点,因此对目标函数求偏导就可以找到极值点。将上式化简,并对θ求偏导(矩阵求导知识):

        机器学习-线性回归

化简过程:

机器学习-线性回归

 最终结果:

        机器学习-线性回归

end~