matplotlib 绘制梯度下降求解过程
机器学习过程中经常需要可视化,有助于加强对模型和参数的理解。
- 下面对梯度下降过程进行动图演示,可以修改不同的学习率,观看效果。
import numpy as np
import matplotlib.pyplot as plt
from IPython import displayX = 2*np.random.rand(100,1)
y = 4+3*X+np.random.randn(100,1) # randn正态分布
X_b = np.c_[np.ones((100,1)),X] # c_行数相等,左右拼接eta = 0.1 # 学习率
n_iter = 1000 # 迭代次数
m = 100 # 样本点个数
theta = np.random.randn(2,1) # 参数初始值plt.figure(figsize=(8,6))
mngr = plt.get_current_fig_manager() # 获取当前figure manager
mngr.window.wm_geometry("+520+520") # 调整窗口在屏幕上弹出的位置,注意写在打开交互模式之前
# 上面固定窗口,方便screentogif定位录制,只会这种弱弱的方法
plt.ion()# 打开交互模式
plt.rcParams["font.sans-serif"] = "SimHei"# 消除中文乱码for iter in range(n_iter):plt.cla() # 清除原图像gradients = 2/m*X_b.T.dot(X_b.dot(theta)-y)theta = theta - eta*gradientsX_new = np.array([[0],[2]])X_new_b = np.c_[np.ones((2,1)),X_new]y_pred = X_new_b.dot(theta)plt.axis([0,2,0,15])plt.plot(X,y,"b.")plt.plot(X_new,y_pred,"r-")plt.title("学习率:{:.2f}".format(eta))plt.pause(0.3) # 暂停一会display.clear_output(wait=True)# 刷新图像plt.ioff()# 关闭交互模式
plt.show()
学习率:0.1,较合适
学习率:0.02,收敛变慢了
学习率:0.45,在最佳参数附近震荡
学习率:0.5,不收敛
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
matplotlib 绘制梯度下降求解过程相关推荐
- 唐宇迪机器学习实战——梯度下降求解逻辑回归(理论基础+源代码实现)
问题的提出 符号问题,这里的lg就是指log2,你的理解是正确的!在计算机科学中有些符号的使用跟我们在数学中使用的有区别.比如有时候log用来表示自然对数(以e为底数).希望对你有帮助! 首先计算机科 ...
- 深度学习-tensorflow1.x- 理解 经过softmax_cross_entropy_with_logit后 随机梯度下降的过程
环境 tensorflow 1.4 numpy 3.6 背景介绍 想深刻理解随机梯度下降的过程. 假设我们有两个神经元的输入[5,8], 经过softmax 函数与交叉熵之后. 做随机梯度下降后, 这 ...
- qr分解求线性方程组_梯度下降求解线性方程组算例设计
凸二次优化问题 Theory. 设 是实对称正定矩阵, ,则求解凸二次优化问题 等价于求解线性方程组 . Proof. 二次型二阶可导,极小值点处梯度为零,现对优化的目标函数求梯度.二次型本质上具有: ...
- python实现梯度下降求解方程斜率和截距,线性回归算法LinearRegression
使用sklearn可以实现线性回归算法,新手练习写一个类似于线性回归的算法,进行比较. 1.调用sklearn中的LinearRegression: 导包: import numpy as np im ...
- 大白话5分钟带你走进人工智能-第九节梯度下降之函数最优化算法和梯度下降代码过程解析(4)
第九节梯度下降之函数最优化算法(4) 上一节中我们介绍了梯度下降的两种方式,批量梯度下降和随机梯度下降的两种方式,介绍了其具体的梯度下降的方式.本节的话,我们介绍一种函数最优化的算法.以后一听 ...
- Java应用梯度下降求解线性SVM模型参考代码
下面的代码是参考网上的,直接执行,主要是为了后续进一步掌握SVM原理而发布. 两个基本原理还是要去掌握:SVM原理和梯度下降法. 1)SVM分类器: 支持向量机,因其英文名为support vecto ...
- python机器学习梯度下降求解逻辑回归
Logistic Regression The data 我们将建立一个逻辑回归模型来预测一个学生是否被大学录取.假设你是一个大学系的管理员,你想根据两次考试的结果来决定每个申请人的录取机会.你有以前 ...
- 机器学习代价函数求导梯度下降求解最优值源码数据
文章目录 前言 一.代价函数的产生 二.代价函数的定义 1.Training set: 总结 数据 前言 (文末见数据) 在逻辑回归中,我们预测: 我们有:hθ(x)=g(θTx),g(z)=sigm ...
- 梯度下降求解一元二次函数
最新文章
- python流程控制:while循环
- 《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》一2.2 内部函数与操作
- 076_html5事件属性
- 案例式c语言程序设计陈明,C语言程序设计教程 清华大学出版社 陈明主编 第1章答案...
- Android中关于setLatestEventInfo()过时以及构建Notification的解决方法
- asp.net自定义控件的使用
- PostgreSQL11 data数据库目录迁移
- ubuntu server版本安装指南(1)
- salt-api安装与配置
- 抗衰老,吃这些食物越来越年轻
- pyinstaller安装_如何打包Python Web项目,实现免安装一键启动?
- 三维观察---三维裁剪算法
- 代号红狗:那些站在微软云起点的中国创业者
- 高频电子线路复习考试题及答案
- QT视频采集之编码Enc和录像Rec
- 南京邮电大学网络攻防训练平台逆向第三题PY交易
- 谷俊丽:基于大数据的深度学习
- 组合导航(一):定位技术分类与介绍
- 多余的读写端口什么时候会对程序造成影响_RFID叉车仓储|RFID叉车读写器在智能仓库收发货环节中的应用...
- 量化实战之银行零售资产分池
热门文章
- 【numpy】20道numpy题目
- celery 学习笔记定时任务和异步任务
- 特别慢_背什么都特别慢,该怎么提高记忆力?
- JS_11正则表达式和字符串方法
- ajax 如何使 dropdownlist 无刷新,Jquery实现无刷新DropDownList联动实现代码
- oracle指令df,​ oracle 常用命令大汇总
- 掌握常见的内部排序方法(插入排序,冒泡排序,选择排序,快速排序,堆排序,希尔排序,归并排序,基数排序等)...
- linux环境部署python3+django
- Spring3系列12-Spring AOP AspectJ
- hdu 1505 City Game