Градиентный спуск дает один способ минимизации J. Давайте обсудим второй способ сделать это, на этот раз выполнив минимизацию явно и не прибегая к итеративному алгоритму. В методе «Нормального уравнения» мы минимизируем J, явно взяв его производные с относительно θj и приравняв их к нулю. Это позволяет нам найти оптимальную тета без итерации. Формула нормального уравнения приведена ниже:
There is no need to do feature scaling with the normal equation.
The following is a comparison of gradient descent and the normal equation:
With the normal equation, computing the inversion has complexity O(n^3). So if we have a very large number of features, the normal equation will be slow. In practice, when n exceeds 10,000 it might be a good time to go from a normal solution to an iterative process.
Normal Equation Noninvertibility
When implementing the normal equation in octave we want to use the 'pinv' function rather than 'inv.' The 'pinv' function will give you a value of θ even if X^TX is not invertible.
If X^TX is noninvertible, the common causes might be having :
, Избыточные функции, когда две функции очень тесно связаны (т. е. они линейно зависимы). . Слишком много функций (например, m ≤ n). В этом случае удалите некоторые функции или используйте «регуляризацию». Решения вышеупомянутых проблем включают удаление функции, которая линейно зависит от другой, или удаление одной или нескольких функций, когда их слишком много.