本文使用随机梯度下降,进行线性回归参数估计,多项式回归请参考多项式回归——梯度下降
梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。反过来,如果我们需要求解损失函数的最大值,这时就需要用梯度上升法来迭代了。在机器学习中,基于基本的梯度下降法发展了两种梯度下降方法,分别为随机梯度下降法和批量梯度下降法。
代码如下(示例):
代码如下(示例):
该处使用的自定义数据集。
3.1初始参数
代码如下(示例):
3.2计算最优参数
代码如下(示例):
3.3计算训练集和测试集误差
代码如下(示例):
3.4评价模型
代码如下(示例):
3.4输出结果并显示图像
代码如下(示例):
运行实现
结果分析:
没有跑出最佳结果。在循环0~次时训练集总误差下降明显,在次之后基本上在2.0上下浮动,出现此状况可能的原因有两个:1、训练结束的条件——训练集总误差的阈值选取有问题,本次程序代码中的训练集总误差阈值设置为1。2、评判模型有问题,我采用的是将目前得到的w,b带入到回归直线中计算。
对原因1改进,将阈值设置为2
运行实现
结果分析:证明我们第一次选取的阈值并不合理。该回归线对于测试集的最后一个点的拟合效果并不好,但由于测试集样本太少,也并不能说明此次拟合的直线并不好,通过计算训练样本误差之和小于2
对原因1改进,将阈值设置为1.5, 步长设置为0.0002
运行实现:
结果分析:采用更小阈值和更大的步长,发现当步长增大时,训练集样本的总误差更小,所以在阈值设为2时陷入了局部最优解。
以上主要是进行了梯度下降的实现,具体的最优步长,阈值选择仍需要继续研究。
到此这篇梯度下降回归(梯度下降回归是是什么)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/te-hg/40122.html