function [J, grad] = costFunction(theta, X, y)
m = length(y);
h = sigmoid(X*theta);
sh = sigmoid(h);
grad = (1/m)*X'*(sh - y);
J = (1/m)*sum(-y.*log(sh) - (1 - y).*log(1 - sh));
end
Я пытаюсь вычислить функцию стоимости для логистической регрессии. Может кто-нибудь, пожалуйста, скажите мне, почему это не точно?Logisitic Regression Cost Function
Update: сигмовидной функция
function g = sigmoid(z)
g = zeros(size(z));
g = 1./(1 + exp(1).^(-z));
end
Я просто посмотрел на это, и это кажется правильным ... Может быть, проблема с функцией 'sigmoid'? И правильно ли, что вы используете его дважды (для 'X * theta', а затем еще раз для' h')? Кстати, как вы понимаете, что это не точно? –
Я отправил сигмовидную функцию. Насколько я могу судить, он работает нормально. –
Какая у вас переменная 'm'?. Вы ссылаетесь на него в 'costFunction', но не передаете его. – Justin