Какова основная идея модели линейной регрессии?
Провести линию или гиперплоскость, которая будет лежать максимально близко к точкам данных. Это достигается с помощью метода наименьших квадратов. Такая гиперплоскость наиболее точно описывает данные и позволяет прогнозировать их значения при выходе за известный диапазон.
Что такое коэффициент детерминации? Как его интерпретировать?
Коэффициент детерминации:
R^2 = 1 - \frac{SS_{\text{res}}}{SS_{\text{tot}}}
где:
- ( SS_{\text{res}} = \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 ) — сумма квадратов остатков (residual sum of squares),
- ( SS_{\text{tot}} = \sum_{i=1}^{n} (y_i - \bar{y})^2 ) — общая сумма квадратов (total sum of squares),
- ( y_i ) — истинные значения,
- ( \hat{y}_i ) — предсказанные моделью значения,
- ( \bar{y} ) — среднее значение целевой переменной.
Что означает R^2
- R2∈(−∞,1].
- Показывает долю дисперсии целевой переменной, которую объясняет модель.
- Если R2=1, модель идеально предсказывает данные.
- Если R2=0, модель не лучше среднего.
- Если R2<0, модель хуже, чем просто предсказывать среднее.
Пример:
Если R2=0.85, это означает, что 85% дисперсии в целевой переменной объясняется признаками, а оставшиеся 15% — ошибки модели.
Скорректированный adjusted коэффициент детерминации:
R^2_{\text{adj}} = 1 - \left(1 - R^2\right) \cdot \frac{n - 1}{n - p - 1}
где:
- ( R^2 ) — обычный коэффициент детерминации,
- ( n ) — количество наблюдений (объектов),
- ( p ) — количество признаков (фичей) в модели.
Зачем нужен adjusted R2
- Если мы добавляем признак, а Radj2 увеличивается, — признак полезен.
- Если уменьшается — признак, скорее всего, только добавляет шум.
- Это особенно важно при сравнении моделей разной сложности.
Пример:
Допустим, у нас была модель с 2 признаками, и =мы добавили 3-й. Если:
- R2 вырос с 0.85 до 0.86,
- а Radj2 упал с 0.84 до 0.83,
значит, 3-й признак не улучшает модель по сути, он лишь увеличил переобучение.
Каковы основные метрики качества линейной регрессии и в чем разница между ними?
MSE, RMSE, MAE
Основная разница в метриках – это чувствительность к небольшим изменениям (квадрат усиливает чувствительность) и интерпретируемость. Среднюю абсолютную ошибку легче интерпретировать, так как она считается в тех же самых единицах измерения, что и целевая переменная.
Какие предположения о данных делаются перед применением линейной регрессии?
Данные имеют линейные зависимости.
Наблюдения являются независимыми.
Дисперсия ошибок постоянна (гомоскедастичность).
Как наличие мультиколлинеарности повлияет на качество линейной регрессии?
Наличие слишком сильной корреляции между признаками может привести к слишком большим коэффицентам в модели для некоторых признаков. То есть модель может сильно переоценивать влияние одних признаков и недооценивать влияние других. Это делает ее прогнозы ошибочными на новых данных.
В каких случаях линейная регрессия может работать плохо?
Если данные имеют нелинейную зависимость – это можно сразу увидеть, если построить график или точечную диаграмму признака.
Если в данных есть выбросы.
Если данных мало.
Чем отличаются линейная и полиномиальная регрессия?
Модель полиномиальной регрессии включает в себя данные во 2 и более степени. Это прием повышения качества метрик.
Возведение числовых признаков в квадрат или более высокую степень позволяет выявить нелинейные зависимости между признаками. Это особенно актуально, если сам контекст задачи подразумевает нелинейные зависимости (площади, объемы, перемножение величин).
# Добавление полиномиальности (признаки 2 и более степени)
from sklearn.preprocessing import PolynomialFeatures
from sklearn.pipeline import make_pipeline # Удобно применить полиномиальные признаки через пайплайн
degree = 3
model = make_pipeline(PolynomialFeatures(degree), LinearRegression())
model.fit(X_train, y_train)
Использование полиномиальных признаков может привести к переобучению модели.
Что такое регуляризация в линейной регрессии? Зачем она применяется?
Регуляризация – метод снижения переобучения модели. За счет введения множителей альфа и бета позволяет стабилизировать или выключить некоторые коэффициенты модели.
На практике применяют три варианта регуляризации: L1(Lasso), L2(Ridge) и ElasticNet (комбинация L1 и L2).
Чем отличается fit_intercept=True и False?
При создании объекта LinearRegression() можно задать смещение b с помощью аргумента fit_intercept. Речь о b в формуле линейной регрессии:
\hat{y} = \mathbf{w}^\top \mathbf{x} + b
lr = LinearRegression(fit_intercept=True)
Если смещение не задано, то прямая/гиперплоскость модели пройдет через начало координат. Это полезно, если данные центрированы.
True – используется, если данные не центрированы (не применялся StandardScaler).
False – используется, если данные центрированы (применялся StandardScaler).
Вопросы повышенной трудности и глубины
Почему MSE чувствителен к выбросам, а MAE — нет?
Все дело в квадратичной функции. MSE реагирует более резко на изменения в ошибке, нежели MAE.
Поэтому MSE стоит выбирать в качестве метрики, если необходимо штрафовать за заметные ошибки, когда для задачи критичными являются большие отклонения.
Чем отличается аналитическое решение от численного (градиентного спуска)?
Аналитическое решение выполняется с помощью матричных операций.
\mathbf{w} = \left( \mathbf{X}^\top \mathbf{X} \right)^{-1} \mathbf{X}^\top \mathbf{y}
Ограничения такого метода:
- высокая ресурсоемкость O(N^3) – это особенно критично, если матрицы большие, если много признаков
- сильная зависимость от коллинеарности признаков – это приводит к вырождению матрицы признаков, а это означает, что он нее нельзя будет взять обратную матрицу
Почему нормализация признаков важна перед Ridge/Lasso?
Значения признаков могут отличаться на порядки. Соответственно, у признаков с меньшим значением может быть больший коэффициент. Поэтому нормализация может работать некорректно, штрафуя мелкие признаки за более высокий коэффициент. Но эти признаки могут быть важны.
Если признаки предварительно нормализовать, то их коэффициенты не будут резко отличаться. Нормализация будет работать корректно и даст более качественные результаты.
Как отобрать признаки при помощи регуляризации?
L1 и ElasticNet регуляризация могут обнулять коэффициенты признаков. Таким образом, происходит отсеивание признаков из модели. Они просто не участвуют в прогнозировании результатов модели.
Чтобы выполнить отбор признаков с помощью регуляризации, достаточно просто удалить те признаки, коэффициенты которых обратились в 0 после регуляризации.