六、线性回归

**

线性回归

线性回归,是一种解决回归问题的算法,用来预测数据的某种趋势。
线性回归最重要的一点就是引入代价函数(cost function),在线性回归中又叫做平方误差函数,就是样本集预测值和真实值的平方差。而最重要的就是使代价函数的值尽可能的小。
在这里插入图片描述
这里引入关于房价预测的回归问题,x为房子的平方
h(x)为假设函数(变量是x ),j(θ0,θ1)为代价函数(变量是θ0,θ1),x为样集中的特征
那么我们怎么确定θ0,θ1的值才能使代价函数的值最小呢?也就是怎样找出最符合假设函数和数据的参数(这就演变成了找出最佳的函数方程斜率θ1和截距θ0)
首先定义θ0为0,θ1的值分别未若干个离散值,这样可以得出每一个θ1对应下的假设函数和代价函数的坐标图
在这里插入图片描述
其次我们定义θ0,θ1的值分别未若干个离散值,这样可以得出每一对(θ0,θ1)对应下的假设函数和代价函数的坐标图
这是一个3D曲面图(线性回归代价函数3D图)
在这里插入图片描述
当然这也可以以等高线图表示
在这里插入图片描述
可以看出上图中的中心点就是最小的代价函数值,所以距离中心点越远的点所对应的θ0,θ1组成的假设函数就不能很好的拟合真实数据。

当然,以上找出θ0,θ1的方法纯属手工方法,局限性很大。因为实际工作中我们遇到的数据样本集中的特征值往往不止一个,而且当参数的数量大于余2个的话,面对大量的特征值以及手动自定义参数值时,我们会因为特征维度的限制以及自定义参数的繁琐而无法可视化代价函数,所以下面引入自动获取最佳参数的一种算法。

梯度下降

梯度下降算法是用来最小化代价函数的

那么梯度下降的原理是什么呢?
1、首先确定代价函数的参数的初始值(一般都默认为0)
2、不停更新参数的值(注意:所有参数同时更新)
3、在更新的过程中获取多个代价函数的值,获取最小代价函数值所对应的参数值

其中第二步是最重要的,下面通过一个简单容易理解的例子来解释该算法是怎么梯度下降的:
假设在公园中有一座小山(因为代价函数的多维坐标3D图与小山类似),此时我们在山顶(这就是算法中我们设定的参数的初始值),现在要下山,我们下山的方法肯定是向四周展望查看,选取下一个脚步该往哪迈,这样我们到了新的地点之后,就会重复以上的方法去获取下一个出脚点,这样一步一步我们就到了山脚,此时完成下山(获得到了代价函数的最小值以及参数)

当然第二步中的所有参数同时更新是必须的,因为我们根据参数更新计算公式发现参数的新值会受到参数原值得我影响,所以要保证参数更新时间的一致性来确保准确性。

代价函数3D图:
在这里插入图片描述
参数计算公式:
在这里插入图片描述
可以注意到参数计算公式中的 α,这里表示为学习率(learning rate),可以这样理解,学习率越大,下山的速度(跨度)越大,反之越小。学习率过大会导致算法略过了最小代价函数值(无法收敛),学习率过小会导致算法过慢。

注:当你的初始参数值改变了,你也会得到不同的最优参数(也就是在山顶换了一个位置会得到另外一条不同的下山的路线以及终点)

以上参数计算公式中的导数项(下图红圈)的意义:
导数项能确保参数的更新方向是向着减小代价函数值去的,导数项大于或小于0都是这样
在这里插入图片描述
那么还有一个问题,如果无限接近代价函数局部最优值的时候,算法该怎么办?
因为更新参数的公式中的导数项就代表着代价函数坐标图中某一点的斜率,可以预见的是局部最优值处的斜率肯定为0,所以该算法在运行的过程中会因为导数项在越来越接近0的时候去减小学习率以确保不会错过最优值。

线性回归梯度下降

线性回归梯度下降中参数更新公式中的导数项微积分:
在这里插入图片描述

而我们注意到上面的线性回归代价函数3D图是一个碗装图,所以这个代价函数叫做凸函数,这个函数没有局部最优解,得到的是全局最优解。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值