BGD线性回归

批量梯度下降算法 简写BGD

一个特征(n),两个未知量(n+1)

#1.生成回归数据
from sklearn.datasets import make_regression
X,y=make_regression(n_samples=100,n_features=1,noise=50,random_state=8)
plt.scatter(X,y)
#2.拆分训练集和测试集
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=8)
plt.subplot(1,2,1)
plt.scatter(X_train,y_train,c='g')
plt.title("训练集散点图")
plt.subplot(1,2,2)
plt.scatter(X_test,y_test,c='orange')
plt.title("训练集散点图")
Text(0.5, 1.0, '训练集散点图')
#3,拟合直线y=wx+b
#3.1参数初始化
w=1 #直线斜率
b=-100#直线截距
lr=0.001#学习率learning rate
#3.2针对参数w和b,先分别计算求和号的值
sum_w=0
sum_b=0
for i in range(len(X_train)):y_hat=w*X_train[i]+bsum_w+=(y_train[i]-y_hat)*X_train[i]sum_b+=y_train[i]-y_hat
#3.3 更新参数w与b的值
w+=lr*sum_w
b+=lr*sum_b
w
array([8.47987404])
b
array([-92.20644646])
#3.4 将3.2与3.3重复迭代epochs次'
epochs=1000
for j in range(epochs):sum_w=0sum_b=0for i in range(len(X_train)):y_hat=w*X_train[i]+bsum_w+=(y_train[i]-y_hat)*X_train[i]sum_b+=y_train[i]-y_hat#更新参数w与b的值w+=lr*sum_wb+=lr*sum_b
#3.5 将迭代结果可视化
xx=np.linspace(-4,4,100)
yy=w*xx+b
plt.scatter(X_train,y_train,c='g')
plt.plot(xx,yy)
plt.title("线性回归拟合图")
plt.legend(("拟合直线",'训练集散点'))
<matplotlib.legend.Legend at 0x18221f4cb38>

#3.6 计算在训练集和测试集上的均方误差
total_loss_train=0
for i in range(len(X_train)):y_hat =y_hat=w*X_train[i]+btotal_loss_train+=(y_hat-y_train[i])**2total_loss_test=0
for i in range(len(X_test)):y_hat =y_hat=w*X_test[i]+btotal_loss_train+=(y_hat-y_test[i])**2print(total_loss_train/len(X_train),total_loss_test/len(X_test))
[3859.46923139] 0.0

BGD线性回归(批量梯度下降算法)实例相关推荐

  1. 线性回归与梯度下降算法

    线性回归与梯度下降算法 1.1 线性回归 概念:在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个 自变量和因变量之间关系进行建模的一种回归分析 ...

  2. 梯度下降:全梯度下降算法(FG)、随机梯度下降算法(SG)、小批量梯度下降算法(mini-batch)、随机平均梯度下降算法(SAG)。梯度下降法算法比较和进一步优化。

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 2.2 梯度下降(Gradient Descent) 2.2. ...

  3. 全梯度下降算法、随机梯度下降算法、小批量梯度下降算法、随机平均梯度下降算法、梯度下降算法总结

    一.常见梯度下降算法 全梯度下降算法(Full gradient descent,FGD) 随机梯度下降算法(Stochastic gradient descent,SGD) 随机平均梯度下降算法(S ...

  4. 【深度学习 内力篇】Chap.1 单变量线性回归问题+梯度下降算法+Python建模实战

    [深度学习 内力篇]Chap.1 单变量线性回归问题+梯度下降算法+Python建模实战 摘要 2.1 单变量线性回归问题 理论篇 2.2.1 深度学习在单变量线性回归问题的应用 2.1.2 函数模型 ...

  5. 小批量梯度下降算法步骤_TensorFlow从0到1 - 6 - 解锁梯度下降算法

    上一篇5 TF轻松搞定线性回归,我们知道了模型参数训练的方向是由梯度下降算法指导的,并使用TF的封装tf.train.GradientDescentOptimizer(0.01)(学习率为0.01)完 ...

  6. Python实现线性回归和梯度下降算法

    目录 线性回归基础 实战--波士顿房价的线性回归模型 实战--能源效能数据的相关分析与 线性回归模型 梯度下降法介绍 实战--梯度下降法在线性回归中的使用 实战--scikit-learn使用SGD实 ...

  7. 梯度下降法的三种形式BGD(批量梯度下降)、SGD(随机梯度下降)以及MBGD(小批量梯度下降)

    在应用机器学习算法时,我们通常采用梯度下降法来对采用的算法进行训练.其实,常用的梯度下降法还具体包含有三种不同的形式,它们也各自有着不同的优缺点. 下面我们以线性回归算法来对三种梯度下降法进行比较. ...

  8. 简单多元线性回归(梯度下降算法与矩阵法)

    from:https://www.cnblogs.com/shibalang/p/4859645.html 多元线性回归是最简单的机器学习模型,通过给定的训练数据集,拟合出一个线性模型,进而对新数据做 ...

  9. 随机梯度下降python_(史上最详细)批量梯度下降算法、随机梯度下降算法、小批量梯度下降算法python代码实现...

    伪代码: 批量梯度下降法(Batch Gradient Descent): Repeat until convergence{ } 随机梯度下降法(Stochastic Batch Gradient ...

最新文章

  1. 剑指offer五:两个栈实现一个队列
  2. 关于FPGA的一些你必须知道的概念
  3. win32 输出文字时清除之前的_努力学习没效果?3个步骤,强化沟通输出,实现飞跃式成长...
  4. 长沙.NET社区之光
  5. java hdms_字段为clob类型,无法插入数据
  6. java获取cpu使用率_2019年阿里P8架构师的解析:最新Java性能测试、调优策略
  7. 出大问题!webpack 多入口html模板在后端
  8. php高强度精密涂覆钢管,电力内外涂覆钢管
  9. springmvc jsp java_java-jsp springmvc-controller 传值到页面的方法
  10. NDT 算法和一些常见配准算法
  11. 幼儿园学校网站JAVA_基于jsp的幼儿园网站-JavaEE实现幼儿园网站 - java项目源码
  12. 三维可视化JavaScript组件接口
  13. JZOJ4722. 【NOIP2016提高A组模拟8.21】跳楼机
  14. Mysql 分隔符详解(delimiter)
  15. Fabric.js 自由绘制椭圆
  16. QT--多TCP客户端
  17. 比较两给json是否一致
  18. 段码液晶屏的连接方式剖析
  19. 超好用的奈飞Netflix客户端:Netflix for Mac
  20. Build Library By xcodebuild

热门文章

  1. 通过ajaxFileUpload异步请求上传文件(ajaxFileUpload+servlet实现文件上传下载)
  2. 惠普战66一代拆机_惠普战66拆机教程;惠普战66怎么加内存-聚超值
  3. canvas实现时钟效果
  4. 回收站里的文件删除了怎么恢复
  5. 转 淘宝屏蔽百度的原因
  6. 【C语言实现五子棋、三子棋人机对战,包含电脑人工智能对战(可攻可守)】(非标题党)
  7. POJ 1135 Domino Effect(最短路 多米诺骨牌)
  8. WEB前端学习 (1)HTML复习
  9. mysql 金额 四舍五入_mysql四舍五入
  10. 69个问卷方案 系统收集内部需求科学完善企业文化