sepzhu 2018-04-02 02:40 采纳率: 0%
浏览 1858
已结题

matlab逻辑回归代价函数报错

代价函数:

function [jVal,gradient]=costFunc(theta)
%load data
fid=fopen('D:\graduate design\data\track2\training.txt');
temp=textscan(fid,'%f%f%f%f%f%f%f%f%f%f%f%f',1000000);
temp=cell2mat(temp);
X=temp(:,[8 9 7]);
y=temp(:,1);
X=X';
m=length(y);
hypothesis=sigmoid(theta'*X);
jVal=-1/m(sum(y.*log(sigmoid(theta'*X))+(1-y).*log(1-sigmoid(theta'*X))));
gradient=zeros(size(theta));
for j=1:size(theta)
gradient(j)=1/m*sum(hypothesis-y)*X(:,j);
end

    梯度下降:
    function [optTheta,functionVal,exitFlag]=gradientDescent()
options=optimset('GradObj','on','MaxIter',100);
initialTheta=zeros(3,1);
[optTheta,functionVal,exitFlag]=fminunc(@costFunc,initialTheta,options);

end

报错信息:

下标索引必须为正整数类型或逻辑类型。

出错 costFunc (line 11)
jVal=-1/m(sum(y.*log(sigmoid(theta'*X))+(1-y).*log(1-sigmoid(theta'*X))));

出错 fminunc (line 301)
[f,GRAD] = feval(funfcn{3},x,varargin{:});

出错 gradientDescent (line 4)
[optTheta,functionVal,exitFlag]=fminunc(@costFunc,initialTheta,options);

原因:
Failure in initial objective function evaluation. FMINUNC cannot continue.

  • 写回答

2条回答

  • weixin_40811643 2018-04-02 04:11
    关注

    第11行(-1/m) 和后面表达式之间的*丢了

    评论

报告相同问题?

悬赏问题

  • ¥15 Excel发现不可读取的内容
  • ¥15 UE5#if WITH_EDITOR导致打包的功能不可用
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?
  • ¥15 电磁场的matlab仿真
  • ¥15 mars2d在vue3中的引入问题
  • ¥50 h5唤醒支付宝并跳转至向小荷包转账界面
  • ¥15 算法题:数的划分,用记忆化DFS做WA求调
  • ¥15 chatglm-6b应用到django项目中,模型加载失败
  • ¥15 CreateBitmapFromWicBitmap内存释放问题。