为Andrew Ng的Cousera课程"机器学习"我开始使用 Octave
。
对于线性回归分配(一个变量),提供了一个代码,用于创建原始数据与拟合线的散点图,弓形成本函数 J( theta_0, theta_1 )
和一个轮廓情节。
但是:所有这些图只提供最终结果。
我希望看到一步一步的情节发展,以便更好地了解正在发生的事情。循序渐进的意思是:创建一个数字,添加第一个值,然后是第二个,然后是第三个,等到达到最终结果。
(1)一个讲座视频的截图:是否有可能将其显示出来,添加粉红色然后是绿色,然后是红色等等?
(2.1)搜索正确参数的第一步,梯度下降步骤1
(2.2)搜索正确参数的最后一步,梯度下降:包括所有单步
注意1:关于屏幕截图散点图+等值线图:在散点图中总是有一行可见,但它在步骤之间变化。在等高线图中,一个点后面出现。
注2:这不是作业请求! 我只想学习Octave
中的绘图,并希望将其与学习梯度下降的方式结合起来"真的"的工作原理。
感谢每一位提供一些代码帮助的人!
答案 0 :(得分:2)
使用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