nans производятся при применении градиентного спуска в октаве для многомерной линейной регрессии - PullRequest
0 голосов
/ 14 июля 2020
% in gradientDescentMulti.m 
function [theta, J_history] = gradientDescentMulti(X, y, theta, alpha, num_iters)

    m = length(y);
    J_history = zeros(num_iters, 1);

    for iter = 1:num_iters
        t1=sum(X*theta-y);
        t2=sum((X*theta-y).*X(:,2));
        t3=sum((X*theta-y).*X(:,3));
        theta(1)=theta(1)-((alpha/m)*(t1));
        theta(2)=theta(2)-((alpha/m)*(t2));
        theta(3)=theta(3)-((alpha/m)*(t3));

        J_history(iter) = computeCostMulti(X, y, theta);
    end
end
% in computeCostMulti.m
function J = computeCostMulti(X, y, theta)
     m = length(y);
     J = 0;
     J = (1/(2*m))*sum(((X*theta)-y).^2);
end

Я новичок ie пытаюсь изучить градиентный спуск Эта функция отлично работала для линейной регрессии с одной переменной, но выдает значения nan для многовариантной регрессии

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...