【问题标题】:Octave plotting step-by-step (!) a costfunction and a gradient descentOctave 逐步(!)绘制成本函数和梯度下降
【发布时间】:2015-12-23 09:53:29
【问题描述】:

对于 Andrew Ng 的 Cousera 课程“机器学习”,我开始使用 Octave

对于线性回归(一个变量)的分配,提供了代码,该代码使用拟合线、弓形成本函数 J( theta_0, theta_1 ) 和等高线图创建原始数据的散点图。

但是:所有这些图只提供最终结果。

我希望看到逐步的情节发展,以便更好地了解正在发生的事情。一步一步的意思是:创建一个图形,添加第一个值,然后添加第二个,然后是第三个,等等,直到得到最终结果。

(1) 一个讲座视频的屏幕截图:是否可以将其可视化,先添加粉红色,然后添加绿色,然后添加红色等点?

(2.1)寻找正确参数的第一步,梯度下降步骤1

(2.2) 寻找正确参数的最后一步,梯度下降:包括所有单步

注意1:关于截图散点图+等高线图:在散点图中总是有一条线是可见的,但它是一步一步变化的。在等高线图中,一个点一个接一个地出现。

注意 2:这不是分配请求! 我只想在 Octave 中学习绘图,并希望将其与学习梯度下降“真正”如何工作相结合。

感谢所有提供代码帮助的人!

【问题讨论】:

  • 您经常提到 Octave - 但标记问题matplotlib,这是一个 Python 库(用于绘图)。如果你真的是指 Octave,你应该将问题重新标记为 octave 并删除 matplotlib
  • 是的,Andrew 是这门 ML 课程的优秀讲师。享受车程!使用 Octave,查看 MATLAB 的所有绘图教程,这些将帮助您前进。
  • 啊……抱歉打错了标签——我真的是八度音。

标签: plot octave


【解决方案1】:

使用hold all(或只使用hold on,但颜色不会自动递增) ColorOrder 是一个轴属性,可以将其设置为后续图形轴的默认值,部分描述为 here

# start with a blank page
clf

# the curve (full line, blue)
x = -5:0.1:10;
y = x.^2;
plot(x, y, '-b')

# successive colors for the points
N_colors = 6;
colororder_map = cool(N_colors);
set(gcf, 'defaultaxesColorOrder', colororder_map)

# this will add the following plots, instead of replacing the old one
hold all
# note: "hold on" does the same, except the colors are not incremented

# the progression
x_p = [10, 7, 3, 1, 0];
y_p = x_p .^2;

# plot the progression
for cpt = 1:numel(x_p)
    x_current = x_p(cpt);
    y_current = y_p(cpt);
    plot(x_current, y_current, 'o')
    pause
endfor

【讨论】:

  • 抱歉回复晚了,我病了。将试用您的代码 - 感谢一百万!
  • 您使用的是哪个版本的 Octave?我无法处理saturnapi.com/fullstack/plotting-a-cost-function
  • @FullStack 该脚本在 octave 3.8.2 和 4.0.0 下运行良好,均使用原生图形或 gnuplot。但它是 pause 命令导致 saturnapi 失败。只需将pause 注释掉,图表就可以正常显示。
  • 你为什么要使用pause?似乎没有必要。无论如何,它现在对我有用。谢谢!
  • @FullStack 因为 OP 要求“一步一步”的情节。但是颜色图已经对进程进行了编码是正确的。
猜你喜欢
  • 2018-02-21
  • 1970-01-01
  • 1970-01-01
  • 2018-10-25
  • 2019-01-31
  • 2015-07-15
  • 2019-09-21
  • 2014-08-26
  • 2021-12-18
相关资源
最近更新 更多