Comments 6
Аналитическое решение получено, переходим к реализации на python
плохо лишь, что умножение на транспонированную матрицу дает симметричную плохо определенную, а потому мы с неизбежностью приходим к необходимости регуляризации.
Либо, в альтернативном варианте, для линейной регрессии можно написать итерационный алгоритм, вообще без расчета матриц - исходя из формул в начале статьи. Кроме того, плюсом для него будет и отсутствие необходимости пересчета полноразмерных матриц при дополнении данных (частая ситуация для МНК на практике).
На счет дополнения данных - градиентным спуском также придется еще раз итерационно проходить и я не уверен, что это будет быстрее чем расчет матриц, а вот вырожденность после умножения дествительно может быть проблемой, наверное в идеале сначала считать определитель матрицы полученной в результате умножения и если он равен нулю выбирать градиентный спуск. Но я не претендовал на идеальную реализацию, цель была лишь разобрать именно данный метод расчета. Спасибо за уточнение!
...необходимо к таблице добавить столбец слева с фактором f0 все значения которого равны 0.
Наверное единичный столбец.
Почему в МНК сумма не делится на количество значений? В одной статье вообще видел деление на 2n.
Линейная регрессия. Разбор математики и реализации на python