如何绘制线性回归成本函数的等值线图?

时间:2016-09-29 17:26:02

标签: octave

我在Coursera上关注machine learning course,其中一个讲座提供了一个变量线性回归的成本函数等值线图:

enter image description here

来源:https://www.coursera.org/learn/machine-learning/lecture/nwpe2/cost-function-intuition-ii

我认为从教育的角度来看,能够重现这个图表是有用的。我没有任何八度音阶经验,所以我需要一步一步的说明,我可以粘贴到八度音命令窗口。

任何人都可以帮忙解决这个问题吗?

更新

我最终得到了以下内容:

function cost = calc_cost (theta0, theta1)
   x = 1:10;
   y = x.*2;
   cost = arrayfun( @(t0, t1) ( 1/(length(x)) * sum( ((t0 + t1*x) - y).^2 )), theta0, theta1);
endfunction

[xx, yy] = meshgrid( -3000:50:3000, -3000:50:3000) ;
zz = calc_cost(xx, yy);
contour(xx, yy, zz )

1 个答案:

答案 0 :(得分:1)

如果您无法重写成本功能,以便接受矩阵输入,则可以使用arrayfun:

function cost = calc_cost (theta0, theta1)
   x = 1:10;
   y = x.*2;
   cost = ( 1/(length(x)) * sum( ((theta0 + theta1*x) - y).^2 ) );
 endfunction

[x,y] = meshgrid (linspace(-5000,5000,20), linspace(-500,500,20));
z = arrayfun (@calc_cost, x, y);
contour (x, y, z)
print out.png

给出 print