我怎么画这个?

时间:2014-05-04 02:47:45

标签: matlab regression

做一点机器学习,并进行一些线性回归。我似乎无法用Matlab绘制这个。

给出一堆数据

enter image description here

如何绘制

enter image description here

在matlab中

?我知道它应该是抛物线的,但我的代码(如下所示)并没有给我paraboloid

x=linspace(0,1,1001);
M=numel(x);

y=2*x-3+(-2+4*rand());

plot(x,y)

[theta1,theta2]=meshgrid(0:0.01:3,-5:0.01:-2);

J=zeros(length(theta1),length(theta2));

for i = 1:M

     J=J+(theta1*x(i)-theta2-y(i)).^2;

 end

 J=(2*M)^(-1)*J;

 mesh(theta1,theta2,J)

1 个答案:

答案 0 :(得分:1)

您的代码存在两个非常小的问题:

数字1:总和中应该是theta2*y(i)

2号:您的射程太小,无法看到抛物面形状!尝试运行以下示例:

x=linspace(0,1,1001);
M=numel(x);

y=2*x-3+(-2+4*rand());

plot(x,y)

[theta1,theta2]=meshgrid(-20:1:20,-20:1:20);

J=zeros(size(theta1));

for i = 1:M

     J=J+(theta1*x(i)-theta2*y(i)).^2;

 end

 J=(2*M)^(-1)*J;
figure(1);
 mesh(theta1,theta2,J)
 xlabel('\theta_1');
 ylabel('\theta_2');

产生:

Paraboloid Output