Как рассчитать стоимость логистической регрессии? - PullRequest
0 голосов
/ 28 июня 2019

Я использую MATLAB для вычисления функции стоимости логистической регрессии, и я не получаю ожидаемый результат при тестировании своего кода.Все мои шаги кажутся логически правильными.Может кто-нибудь помочь мне исправить это?

function [J, grad] = costFunction(theta, X, y)
m = length(y);
J = 0;
grad = zeros(size(theta));
h = sigmoid(X*theta);
total1 = -y'*log(h);
total2 = (1-y)'* (1-log(h));
total3 = total1-total2;
J = total3*1/m;

Это тестовые случаи:

X = [ones(3,1) magic(3)];
y = [1 0 1]';
theta = [-2 -1 1 2]';

% un-regularized

[j g] = costFunction(theta, X, y)
% or...

[j g] = costFunctionReg(theta, X, y, 0)

% results

j = 4.6832

g =
  0.31722
  0.87232
  1.64812
  2.23787

Я получаю j = -0,3168 вместо 4,6832

...