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. 根据时间点截取wav文件
  2. 计算机 采购,计算机采购
  3. 全球及中国液压磁路保护器行业发展规划与产销需求预测报告2022版
  4. sqlserver查找存储过程关键字方法之三
  5. HTTP之长连接与短连接(C++ Qt框架实现)
  6. 分享一个前后端分离的轻量级内容管理框架
  7. lesson1 ODE的几何解法:方向场,积分曲线
  8. Hive基本操作入门
  9. android wheel控件滚动,android 滚动选择插件 android-wheel
  10. Kubesploit:针对容器化环境的跨平台后渗透利用工具
  11. 百度网盘推出领取七天会员
  12. 6. 文本分类——transformer模型
  13. 粘胶活化剂市场现状及未来发展趋势
  14. bootstrap-datetimepicker时间控件
  15. C#做一个简单浏览器
  16. 阵列天线方向图合成(线阵、面阵)-附Python代码
  17. 前端web:响应式Web开发优缺点总结
  18. java实现DSA签名、验签
  19. VS中怎么将一个页面设置为起始页的解决方案以及关于粘贴的小窍门
  20. android hook 第三方app_基于 VirtualApp 结合 whale hook框架实现hook第三方应用

热门文章

  1. 男人最帅的42个瞬间!
  2. 超级简陋的暴力破解程序
  3. 用户画像准确性评测初探 ——拨开python大数据分析的神秘面纱
  4. winbox 端口扫描_Perun 内网渗透扫描神器
  5. 2472 大帆玩英雄联盟
  6. Java篇三——运算符
  7. webassembly_全球最简单的WebAssembly简介?
  8. 汉化IDEA的方法 IntelliJ IDEA Community Edition
  9. 接口文档管理神器 Apifox,我爱了
  10. Tomcat环境变量配置及安装过程中错误解决方法记录