机器学习过程中经常需要可视化,有助于加强对模型和参数的理解。

  • 下面对梯度下降过程进行动图演示,可以修改不同的学习率,观看效果。
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 绘制梯度下降求解过程相关推荐

  1. 唐宇迪​​机器学习实战——梯度下降求解逻辑回归(理论基础+源代码实现)

    问题的提出 符号问题,这里的lg就是指log2,你的理解是正确的!在计算机科学中有些符号的使用跟我们在数学中使用的有区别.比如有时候log用来表示自然对数(以e为底数).希望对你有帮助! 首先计算机科 ...

  2. 深度学习-tensorflow1.x- 理解 经过softmax_cross_entropy_with_logit后 随机梯度下降的过程

    环境 tensorflow 1.4 numpy 3.6 背景介绍 想深刻理解随机梯度下降的过程. 假设我们有两个神经元的输入[5,8], 经过softmax 函数与交叉熵之后. 做随机梯度下降后, 这 ...

  3. qr分解求线性方程组_梯度下降求解线性方程组算例设计

    凸二次优化问题 Theory. 设 是实对称正定矩阵, ,则求解凸二次优化问题 等价于求解线性方程组 . Proof. 二次型二阶可导,极小值点处梯度为零,现对优化的目标函数求梯度.二次型本质上具有: ...

  4. python实现梯度下降求解方程斜率和截距,线性回归算法LinearRegression

    使用sklearn可以实现线性回归算法,新手练习写一个类似于线性回归的算法,进行比较. 1.调用sklearn中的LinearRegression: 导包: import numpy as np im ...

  5. 大白话5分钟带你走进人工智能-第九节梯度下降之函数最优化算法和梯度下降代码过程解析(4)

        第九节梯度下降之函数最优化算法(4) 上一节中我们介绍了梯度下降的两种方式,批量梯度下降和随机梯度下降的两种方式,介绍了其具体的梯度下降的方式.本节的话,我们介绍一种函数最优化的算法.以后一听 ...

  6. Java应用梯度下降求解线性SVM模型参考代码

    下面的代码是参考网上的,直接执行,主要是为了后续进一步掌握SVM原理而发布. 两个基本原理还是要去掌握:SVM原理和梯度下降法. 1)SVM分类器: 支持向量机,因其英文名为support vecto ...

  7. python机器学习梯度下降求解逻辑回归

    Logistic Regression The data 我们将建立一个逻辑回归模型来预测一个学生是否被大学录取.假设你是一个大学系的管理员,你想根据两次考试的结果来决定每个申请人的录取机会.你有以前 ...

  8. 机器学习代价函数求导梯度下降求解最优值源码数据

    文章目录 前言 一.代价函数的产生 二.代价函数的定义 1.Training set: 总结 数据 前言 (文末见数据) 在逻辑回归中,我们预测: 我们有:hθ(x)=g(θTx),g(z)=sigm ...

  9. 梯度下降求解一元二次函数

最新文章

  1. python流程控制:while循环
  2. 《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》一2.2 内部函数与操作
  3. 076_html5事件属性
  4. 案例式c语言程序设计陈明,C语言程序设计教程 清华大学出版社 陈明主编 第1章答案...
  5. Android中关于setLatestEventInfo()过时以及构建Notification的解决方法
  6. asp.net自定义控件的使用
  7. PostgreSQL11 data数据库目录迁移
  8. ubuntu server版本安装指南(1)
  9. salt-api安装与配置
  10. 抗衰老,吃这些食物越来越年轻
  11. pyinstaller安装_如何打包Python Web项目,实现免安装一键启动?
  12. 三维观察---三维裁剪算法
  13. 代号红狗:那些站在微软云起点的中国创业者
  14. 高频电子线路复习考试题及答案
  15. QT视频采集之编码Enc和录像Rec
  16. 南京邮电大学网络攻防训练平台逆向第三题PY交易
  17. 谷俊丽:基于大数据的深度学习
  18. 组合导航(一):定位技术分类与介绍
  19. 多余的读写端口什么时候会对程序造成影响_RFID叉车仓储|RFID叉车读写器在智能仓库收发货环节中的应用...
  20. 量化实战之银行零售资产分池

热门文章

  1. 【numpy】20道numpy题目
  2. celery 学习笔记定时任务和异步任务
  3. 特别慢_背什么都特别慢,该怎么提高记忆力?
  4. JS_11正则表达式和字符串方法
  5. ajax 如何使 dropdownlist 无刷新,Jquery实现无刷新DropDownList联动实现代码
  6. oracle指令df,​ oracle 常用命令大汇总
  7. 掌握常见的内部排序方法(插入排序,冒泡排序,选择排序,快速排序,堆排序,希尔排序,归并排序,基数排序等)...
  8. linux环境部署python3+django
  9. Spring3系列12-Spring AOP AspectJ
  10. hdu 1505 City Game