【发布时间】:2014-04-11 16:23:33
【问题描述】:
我在 Matlab 中遇到梯度下降问题。 我不知道如何构建函数。
默认设置:
max_iter = 1000;
learing = 1;
degree = 1;
我的逻辑回归成本函数:(正确???)
function [Jval, Jgrad] = logcost(function(theta, matrix, y)
mb = matrix * theta;
p = sigmoid(mb);
Jval = sum(-y' * log(p) - (1 - y')*log(1 - p)) / length(matrix);
if nargout > 1
Jgrad = matrix' * (p - y) / length(matrix);
end
现在是我的梯度下降函数:
function [theta, Jval] = graddescent(logcost, learing, theta, max_iter)
[Jval, Jgrad] = logcost(theta);
for iter = 1:max_iter
theta = theta - learing * Jgrad; % is this correct?
Jval[iter] = ???
end
感谢所有帮助 :),汉斯
【问题讨论】: