Какие минусы есть у аналитического метода линейной регрессии?
Что проверяют
Отличаете ли вы минусы именно аналитического решения, то есть нормального уравнения, от минусов линейной модели вообще. Следом обычно спрашивают, чем его заменить на большом датасете и почему библиотеки не обращают матрицу напрямую.
Как отвечать
Начните с формулы: веса находятся в одну операцию как w = (XᵀX)⁻¹Xᵀy. Дальше минусы, которые следуют прямо из неё:
- вычислительная цена: построение
XᵀXстоит порядкаn·d², обращение порядкаd³. При десятках тысяч признаков это уже неподъёмно, тогда как шаг градиентного спуска линеен по размеру данных; - память: нужна вся матрица признаков сразу, дообучение на новых данных и потоковая подача не поддерживаются. Плюс разреженная
Xобычно даёт плотнуюXᵀX; - вырожденность: при мультиколлинеарности или при
d > nматрицаXᵀXнеобратима или почти необратима, решение не единственное или сильно шумит; - численная неустойчивость: число обусловленности
XᵀXравно квадрату числа обусловленностиX, ошибки округления растут. Поэтому на практике решают через QR или SVD, а не через явную обратную матрицу; - нет обобщения: закрытая форма есть только для квадратичной функции потерь. Для Lasso, логистической регрессии, функции Хьюбера её нет, нужна итеративная оптимизация.
Альтернативы: SGDRegressor и мини-батчи для больших данных, сопряжённые градиенты или L-BFGS для средних. Регуляризация Ridge сохраняет закрытую форму (XᵀX + λI)⁻¹Xᵀy и заодно лечит вырожденность.
Честно добавьте, когда аналитика хороша: признаков немного, данные влезают в память, нужен точный ответ без подбора шага обучения.
Где спотыкаются
Перечисляют допущения линейной регрессии: линейность, гомоскедастичность, выбросы. Это минусы модели, и градиентный спуск их не лечит, а вопрос был про метод.
Говорят, что библиотеки считают np.linalg.inv(X.T @ X). Реализации идут через lstsq и разложения, явное обращение считается плохой практикой.
Не могут объяснить, что делать при d > n. Ответ «добавить регуляризацию или снизить размерность» нужно давать сразу.