Какие знаешь модели линейной регрессии?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Основные модели линейной регрессии
Классическая линейная регрессия (Ordinary Least Squares, OLS)
Это базовая модель, которая минимизирует сумму квадратов ошибок:
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
Плюсы: простота, интерпретируемость коэффициентов, быстрое обучение. Минусы: чувствительна к выбросам и мультиколлинеарности.
Ridge регрессия (L2 регуляризация)
Добавляет штраф на квадрат коэффициентов. Решает проблему мультиколлинеарности за счёт сжатия коэффициентов:
from sklearn.linear_model import Ridge
model = Ridge(alpha=1.0) # alpha — параметр регуляризации
model.fit(X_train, y_train)
Когда использовать: много коррелирующих признаков, нужна стабильность модели.
Lasso регрессия (L1 регуляризация)
Штрафует абсолютное значение коэффициентов. Может обнулять некоторые коэффициенты, выполняя отбор признаков:
from sklearn.linear_model import Lasso
model = Lasso(alpha=0.01)
model.fit(X_train, y_train)
Плюсы: интерпретируемость, автоматический отбор признаков. Минусы: может нестабильно работать с группами коррелирующих признаков.
Elastic Net
Комбинирует L1 и L2 регуляризацию. Параметр l1_ratio управляет балансом:
from sklearn.linear_model import ElasticNet
model = ElasticNet(alpha=0.1, l1_ratio=0.5)
Лучший выбор: когда много признаков и нужны отбор + стабильность.
Полиномиальная регрессия
Преобразует линейную модель для работы с нелинейными зависимостями:
from sklearn.preprocessing import PolynomialFeatures
from sklearn.pipeline import Pipeline
poly = PolynomialFeatures(degree=2)
model = Pipeline([
("poly", poly),
("linear", LinearRegression())
])
Опасность: переобучение при высокой степени полинома.
Выбор модели
- OLS → просто, есть интерпретируемость, мало признаков
- Ridge → много признаков, мультиколлинеарность
- Lasso → отбор признаков, разреженность решения
- Elastic Net → лучший баланс в большинстве случаев
- Полиномиальная → очевидная нелинейность в данных
Во всех случаях обязательно нормализуй признаки и используй cross-validation для подбора гиперпараметров!