Machine learning 如何利用倍频程fminunc函数优化θ

Machine learning 如何利用倍频程fminunc函数优化θ,machine-learning,optimization,octave,linear-regression,Machine Learning,Optimization,Octave,Linear Regression,*我试图优化线性回归问题的θ,其中训练集X有3列,包括偏差,并使用fminunc函数优化θ。但调用此函数时显示错误。 我的训练数据X的大小为47x3,y的大小为47x1。我编写了将从fminunc函数调用的代价函数 此线性回归问题的成本函数代码: function [J,grad] = computeCost(theta,X,y) J = 0; theta=[0;0;0]; m=length(y); J=(1/(2))*sum((((X*theta)-y)).^2); grad=sum(((

*我试图优化线性回归问题的θ,其中训练集X有3列,包括偏差,并使用fminunc函数优化θ。但调用此函数时显示错误。 我的训练数据X的大小为47x3,y的大小为47x1。我编写了将从fminunc函数调用的代价函数

此线性回归问题的成本函数代码:

function [J,grad] = computeCost(theta,X,y)  
J = 0;
theta=[0;0;0];
m=length(y);
J=(1/(2))*sum((((X*theta)-y)).^2);
grad=sum(((X*theta)-y)'*X);
end
使用fminunc的代码:

v=load('ex1data2.txt');
X=v(:,1:2);
y=v(:,3);
X=[ones(size(y)),X];
theta=[0;0;0];
options=optimset('GradObj','on','MaxIter','100');
[a,b]=fminunc(@(t)(computeCost(t,X,y)),theta,options);
运行上述代码时,倍频程IDE显示错误消息: 错误:doglegm:运算符:不一致参数(op1是3x3,op2 是1x1) 错误:从调用 fminunc>第458行第5列的doglegm 第266行第9列处的fminunc*