Функция стоимости взорвана - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь решить проблему многомерной линейной регрессии в python (numpy). Подробности моего кода следующие: X это 47x3 матрица y это 47x1 матрица

После итерации с использованием градиентного спуска значение функции стоимости увеличивается (NaN после нескольких итераций). Что я тут не так делаю?

def computeCost(X,y,theta):
  m = np.size(X,0);
  error = X * theta -y;
  return (1/(2*m)) * (error.T * error).item(0);


if __name__ == "__main__":
  x = np.matrix(np.genfromtxt('ex3x.dat'));
  y = np.matrix(np.genfromtxt('ex3y.dat')).T;

  ones = np.matrix(np.ones((np.size(x,0),1)));

  X = np.concatenate((ones, x), axis=1)
  theta = np.matrix([[1],[2],[3]])

  iter = 30
  J_history = np.ones(iter);
  alpha = 0.01;
  m = np.size(x,0);

  for i in range(iter):
    J_history[i] = computeCost(X,y,theta);
    theta = theta - (alpha/m) * (X.T * (X*theta-y))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...