V_线性回归

一、基本概念

      将形式为f(x)=w1x1 +w2x2+…+wnxn+b的方程式称作线性方程。对于这个方程式,只要能求出w1、w2…wnb,并代入x1、x2…xn,则可以求出对应的f(x)的值。

      将此方程式转移到机器学习中的线性模型,描述如下:

      由给定的n个特征值组成的特征集示例x=(x1;x2;…;xn),其中xi是x在第i个特征上的取值,线性回归模型的目标是通过学得w1、w2…wnb,来准确预测f(x)的值。例如,银行根据一个人的年龄x1、工作收入x2、是否有房子x3来预测给这个人的贷款额度,假设此时的w1为0.3,w2为0.3,w3为0.4,b为1则有f(x)=0.3x1+0.3x2+0.4x3+1*。在这里wi即为相应特征的权重。

      f(x)=w1x1 +w2x2+…+wnxn+b即成为线性模型,其中的b称为偏置项。此时,如果令w0为1,令x0为b,对该式进行整合,则一般用向量形式表示如下:f(x) = wTx

      

      “分类”和“回归”都是预测目标值的过程,但是“分类”预测的是离散型变量,而“回归”预测的是连续型变量。还是用银行贷款的例子来说:银行是否给某人贷款,这是个“分类”问题,结果只有贷和不贷两种(离散型变量);银行给某个人贷多少钱,这是个“回归”问题,因为建立的模型f(x)=w1x1+w2x2+…+wnxn+b得到的是一条直线(直线上的所有点都是连续的),给这个人贷款的额度就是这个直线上的一个点。

      线性回归就是找出一条直线,能够最大限度的拟合所有给定的特征值点(样本点)。如下图所示,其中的所有蓝色小圆点即给定的多个样本点示例,那条蓝色直线就是经过线性回归拟合所有样本点得到的预测线。这么说来,线性回归和数学里边讲的给定一条直线上的几个点(理解为样本点),要求你求出该直线方程的题是一样一样的。这里的方程式称为“回归方程”,要求的参数称为“回归参数”。
图1

      根据样本点直接求解回归方程中的参数往往是难以求出的,此时就需要转换思路,“预测值”和真实值之间有误差存在。只要将误差的最小值求出来,可以做到误差值和真实值之间的“无限接近”:张三从银行只能贷款5000块,但是银行通过预测模型预测张三能贷款5100块;李四实际能从银行贷款10000块,但是银行通过预测模型预测李四能贷款9990块。绝大多数情况下,银行可能多给,也可能少给,这样的小误差是可以接受的。
      设定y为真实值,f(x)为预测值,e为误差值,则有如下公式:y = f(x)+e

二、单变量线性回归的模型

      
1.单变量线性回归

线性回归属于监督学习,因此方法和监督学习应该是一样的,先给定一个训练集,根据这个训练集学习出一个线性函数,然后测试这个函数训练的好不好(即此函数是否足够拟合训练集数据),挑选出最好的函数(cost function最小)即可:
注意:
(1)因为是线性回归,所以学习到的函数为线性函数,即直线函数;
(2)因为是单变量,因此只有一个x;

单变量线性回归的模型:
在这里插入图片描述

      使用最小二乘法计算Cost Function(代价函数),代价函数越小,说明线性回归地越好(和训练集拟合地越好),当然最小就是0,即完全拟合;
      
      “最小二乘法”的思想求解θ,这里的“二乘”指的是用平方来度量观测点与估计点的距离(远近),“最小”指的是参数值要保证各个观测点与估计点的距离的平方和达到最小时的值即为最优模型的参数值。

在这里插入图片描述
(1)求解这个函数的方法,梯度下降法。
(2)梯度下降:能够找出cost function函数的最小值
(3)下降的方向:由于随着越接近最小值,函数切线的斜率逐渐变小。这就是下降的方向。

梯度下降法特点:
(1)初始点不同,获得的最小值也不同,因此梯度下降求得的只是局部最小值;
(2)越接近最小值时,下降速度越慢;

1.2.梯度下降方法求解过程(单变量的线性回归,即只有一个特征变量):
(1)先确定向下一步的步伐大小,我们称为Learning rate;

(2)任意给定一个初始值:θ0,θ1
(3)确定一个向下的方向,并向下走预先规定的步伐,并更新 θ0,θ1;
(4)当下降的高度小于某个定义的值,则停止下降;

在这里插入图片描述
问题:如果 θ0,θ1初始值就在local minimum的位置,则会如何变化?
答:因为已经在localminimum位置,所以derivative肯定是0,因此不会变化;

问题:如果取到一个正确的α值,则cost function应该越来越小;问题:怎么取值?

答:随时观察值,如果cost function变小了,则ok,反之,则再取一个更小的值;

2. 多变量的线性回归

1.多变量线性回归之前必须要Feature Scaling:
此种方法应用于梯度下降,为了加快梯度下降的执行速度;
思想:将各个feature的值标准化,使得取值范围大致都在-1<=x<=1之间;
常用的方法是Mean Normalization,即
在这里插入图片描述
多变量线性回归的模型:
在这里插入图片描述
在这里插入图片描述

      m 代表样本个数,y(i) 表示第 i 个样本的标签值(就是我们高中数学的因变量),theta的转置表示各个特征的权重参数的矩阵,x(i)表示各个特征的取值(就是自变量)。
用数学方法直接求出代价函数的极小值,进而求出权重参数为,
在这里插入图片描述
参数 theta 是特征的权重参数向量,如果有5个特征,它就对应着5个元素,如果它有100个特征,对应着100个元素。
在用梯度求解时的代价函数与直接求法有一点小区别,代价函数要除以样本个数,代价函数不会因为样本个数太多,而变得越大,不受样本个数的影响,微调后的代价函数为:
在这里插入图片描述
梯度下降来求权重参数的向量;梯度是求出代价函数的偏导数。因为如果有100个特征,那可是对应着100个权重参数的,自然要对每个theta求导数,也就是含有多个自变量的函数求导数,叫做求偏导。结果如下
在这里插入图片描述
其中 表示第 j 个特征的权重参数,表示第 i 个样本的第 j 个特征的权重参数。
      每次调整一点点,不能一次调整太多,调整的系数,我们称为学习率,因此每次参数的调整迭代公式可以写为如下所示:
在这里插入图片描述
在这里插入图片描述
      其中表示第 t+1 个迭代时步的第 j 个特征的权重参数,为第 t 个迭代时步的第 j 个特征的权重参数。
      上式的减去,是因为梯度下降,沿着求出来的导数的反方向(θ减小的方向)。

线性回归及梯度下降算法详解
      α是学习速率,这个需要在实践中进行调整,其值过小会导致迭代多次才能收敛,其值过大会导致越过最优点发生震荡现象。数据量较大时,每迭代一次就要遍历全部数据一次(批梯度下降),意为更新参数时,不必遍历整个数据集,只需要1个实例便足够了。该算法可以达到很高的效果,但是会导致遍历次数增多,不能精确收敛到最优值等问题。该方法被称为增量梯度下降(incremental gradient descent)或随机梯度下降(stochastic gradient descent)。
      批量梯度下降算法每次更新参数都需要遍历整个数据集(通过遍历整个数据集来计算损失函数的梯度),那么在样本数据量巨大的时候,计算复杂度会很高。因此出现了随机梯度下降算法:即每次迭代都随机选取一个样本计算损失函数的梯度来更新参数。参数更新公式可变为:(更新完的参数使代价函数越来越小)
在这里插入图片描述
      与批量梯度下降算法相比,SGD的区别在于求梯度时没有用所有的m个样本数据,而是随机选取了一个样本i来求梯度。在样本量很大的时候,SGD由于仅采用了一个样本来迭代,因此训练速度很快,但很可能导致解不是最优的,准确度下降。

      小批量梯度下降法是批量梯度下降算法与随机梯度下降算法的折中,因为用一个样本代表全部可能不太准,那么选取其中一部分来代表全部的样本会比只用一个好很多。即对于m个样本,每次迭代选取其中x个样本进行更新参数,其中x称为小批量大小(1<x<m)。对应的参数更新公式为:
在这里插入图片描述
BGD(批量梯度下降):每次迭代使用所有样本来计算损失函数的梯度

SGD(随机梯度下降):每次迭代随机选取1个样本来计算损失函数的梯度

MBGD(小批量梯度下降法):每次迭代随机选取x个样本来计算损失函数的梯度

      
      
      
      

tips:
1.机器学习分为:监督学习,无监督学习,半监督学习(也可以用hinton所说的强化学习)等
2.监督学习训练数据就是有标签数据,无监督学习训练数据就是无标签数据在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值