Coursera 机器学习_Octave Cost Function

我一开始写的是

h = X*theta;
J = 1 / 2*m * sum((h-y) .^ 2);

得到的结果是

我以为是没有给数据做normalization,于是

%avg_x = sum(X(:,2))/length(X);
%X = [ ones(length(X),1) ,(X(:,2) - avg_x) / (max(X(:,2)) - min(X(:,2)))];

%avg_y = sum(y)/length(y);
%y = (y-avg_y) / ( max(y) - min(y) );
但是发现结果还是不对,最后我才发现,原来是
J = 1 / 2*m * sum((h-y) .^ 2);
公式的计算顺序不对,导致m由分母变成了分子


然后就得到正确结果了。

分母部分一定要用( )括起来,保证运算顺序正确



你可能感兴趣的:(机器学习)