BGD线性回归(批量梯度下降算法)实例
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 线性回归 概念:在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个 自变量和因变量之间关系进行建模的一种回归分析 ...
- 梯度下降:全梯度下降算法(FG)、随机梯度下降算法(SG)、小批量梯度下降算法(mini-batch)、随机平均梯度下降算法(SAG)。梯度下降法算法比较和进一步优化。
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 2.2 梯度下降(Gradient Descent) 2.2. ...
- 全梯度下降算法、随机梯度下降算法、小批量梯度下降算法、随机平均梯度下降算法、梯度下降算法总结
一.常见梯度下降算法 全梯度下降算法(Full gradient descent,FGD) 随机梯度下降算法(Stochastic gradient descent,SGD) 随机平均梯度下降算法(S ...
- 【深度学习 内力篇】Chap.1 单变量线性回归问题+梯度下降算法+Python建模实战
[深度学习 内力篇]Chap.1 单变量线性回归问题+梯度下降算法+Python建模实战 摘要 2.1 单变量线性回归问题 理论篇 2.2.1 深度学习在单变量线性回归问题的应用 2.1.2 函数模型 ...
- 小批量梯度下降算法步骤_TensorFlow从0到1 - 6 - 解锁梯度下降算法
上一篇5 TF轻松搞定线性回归,我们知道了模型参数训练的方向是由梯度下降算法指导的,并使用TF的封装tf.train.GradientDescentOptimizer(0.01)(学习率为0.01)完 ...
- Python实现线性回归和梯度下降算法
目录 线性回归基础 实战--波士顿房价的线性回归模型 实战--能源效能数据的相关分析与 线性回归模型 梯度下降法介绍 实战--梯度下降法在线性回归中的使用 实战--scikit-learn使用SGD实 ...
- 梯度下降法的三种形式BGD(批量梯度下降)、SGD(随机梯度下降)以及MBGD(小批量梯度下降)
在应用机器学习算法时,我们通常采用梯度下降法来对采用的算法进行训练.其实,常用的梯度下降法还具体包含有三种不同的形式,它们也各自有着不同的优缺点. 下面我们以线性回归算法来对三种梯度下降法进行比较. ...
- 简单多元线性回归(梯度下降算法与矩阵法)
from:https://www.cnblogs.com/shibalang/p/4859645.html 多元线性回归是最简单的机器学习模型,通过给定的训练数据集,拟合出一个线性模型,进而对新数据做 ...
- 随机梯度下降python_(史上最详细)批量梯度下降算法、随机梯度下降算法、小批量梯度下降算法python代码实现...
伪代码: 批量梯度下降法(Batch Gradient Descent): Repeat until convergence{ } 随机梯度下降法(Stochastic Batch Gradient ...
最新文章
- 剑指offer五:两个栈实现一个队列
- 关于FPGA的一些你必须知道的概念
- win32 输出文字时清除之前的_努力学习没效果?3个步骤,强化沟通输出,实现飞跃式成长...
- 长沙.NET社区之光
- java hdms_字段为clob类型,无法插入数据
- java获取cpu使用率_2019年阿里P8架构师的解析:最新Java性能测试、调优策略
- 出大问题!webpack 多入口html模板在后端
- php高强度精密涂覆钢管,电力内外涂覆钢管
- springmvc jsp java_java-jsp springmvc-controller 传值到页面的方法
- NDT 算法和一些常见配准算法
- 幼儿园学校网站JAVA_基于jsp的幼儿园网站-JavaEE实现幼儿园网站 - java项目源码
- 三维可视化JavaScript组件接口
- JZOJ4722. 【NOIP2016提高A组模拟8.21】跳楼机
- Mysql 分隔符详解(delimiter)
- Fabric.js 自由绘制椭圆
- QT--多TCP客户端
- 比较两给json是否一致
- 段码液晶屏的连接方式剖析
- 超好用的奈飞Netflix客户端:Netflix for Mac
- Build Library By xcodebuild
热门文章
- 通过ajaxFileUpload异步请求上传文件(ajaxFileUpload+servlet实现文件上传下载)
- 惠普战66一代拆机_惠普战66拆机教程;惠普战66怎么加内存-聚超值
- canvas实现时钟效果
- 回收站里的文件删除了怎么恢复
- 转 淘宝屏蔽百度的原因
- 【C语言实现五子棋、三子棋人机对战,包含电脑人工智能对战(可攻可守)】(非标题党)
- POJ 1135 Domino Effect(最短路 多米诺骨牌)
- WEB前端学习 (1)HTML复习
- mysql 金额 四舍五入_mysql四舍五入
- 69个问卷方案 系统收集内部需求科学完善企业文化