机器学习——梯度下降法一元线性回归实现(JavaScript实现)

本文介绍了使用梯度下降法进行一元线性回归的原理,通过JavaScript实现了这一过程。通过求解目标函数的偏导数,找到参数a和b的下降方向,调整步长α,不断迭代直至误差达到预设阈值,从而得到拟合直线。
摘要由CSDN通过智能技术生成

原理

已知测得的点 xi = [x1, x2, x3 ...]yi = [y1, y2, y3 ...]
利用梯度下降法,使得代价函数(即误差)取最小值,求得此时的参数值
举个例子,假设要拟合的函数为y = ax + b,代价函数为 J(a, b),现在要使代价函数最小
不妨想,在登山的过程中,东西方向为 a, 南北方向为b,函数值y为山的高度。我们要下山,找到山的最低点的过程,就是梯度下降。现在理一理我们下山的步骤:

  1. 先向东西方向看,下降最大的方向是哪边(这个步骤叫求 a 的偏导)
  2. 再向南北方向看,下降最大的方向是哪边(这个步骤叫求 b 的偏导)
  3. 向确定的方向跨 α 步 (这个 α 叫做步长)
  4. 不断重复步骤123,确定四周已经足够平滑(设置 误差 ,表示已经到最低点了)
    在这里插入图片描述

代码实现

// 一元线性回归
// _a, _b 	—— 需求的参数值
// xi, yi 	—— 样本数组
// _step 	—— 步长设置
// 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值