Именно поэтому Ridge и Lasso регулярно встречаются в Data Science там, где признаков много, между ними есть корреляции, а простой least squares начинает вести себя нервно. Это могут быть маркетинговые данные, табличные бизнес-признаки, кредитный скоринг, прогнозы спроса, ценовые модели, биомедицинские признаки, текстовые представления, где число колонок быстро растет. В 2026 году эти модели по-прежнему важны не потому, что они новые, а потому, что они остаются очень сильным baseline и хорошим инструментом интерпретируемого машинного обучения.
Почему обычная линейная регрессия начинает ломаться
Обычная линейная регрессия подбирает коэффициенты так, чтобы ошибка предсказания была как можно меньше. Геометрически это можно представить как поиск такой гиперплоскости в пространстве признаков, которая лучше всего проходит через облако точек. Если признаки ведут себя спокойно и данных достаточно, это работает хорошо. Но если признаки сильно коррелируют или часть из них шумовая, коэффициенты начинают компенсировать друг друга. Тогда маленькое изменение в данных может вызвать слишком заметное изменение весов.
С математической точки зрения это означает, что задача оптимизации остается решаемой, но решение становится нестабильным. Модель как будто слишком старается подогнаться под конкретную выборку. Это и есть одна из форм переобучения в линейных моделях. Регуляризация добавляет в функцию потерь дополнительную цену за слишком большие коэффициенты. Мы уже не просто хотим точно предсказывать, мы хотим делать это без чрезмерной агрессии весов. Поэтому рядом особенно полезно и отдельное понимание что такое overfitting, потому что именно оно делает смысл штрафа не формальным, а инженерным.
Именно поэтому Ridge и Lasso лучше всего понимать не в отрыве от базы, а рядом с линейной регрессией как исходной моделью: тогда становится видно, что регуляризация не заменяет линейный подход, а делает его устойчивее.
Ridge: мягкое сжатие коэффициентов
Формула Ridge относится к линейной алгебре, математической статистике и оптимизации. Она добавляет к среднеквадратичной ошибке штраф на квадраты коэффициентов.
(J(\mathbf{w}) = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2 + \lambda \sum_{j=1}^{p} w_j^2)
Что означает каждый символ:
(J(\mathbf{w})) — итоговая функция потерь, которую мы минимизируем при обучении;
(\mathbf{w}) — вектор коэффициентов модели;
(n) — число объектов в выборке;
(p) — число признаков;
(y_i) — истинное значение целевой переменной для объекта (i);
(\hat{y}_i) — предсказание модели для объекта (i);
(w_j) — коэффициент при признаке (j);
(\lambda) — параметр регуляризации, который управляет силой штрафа.
Первая часть формулы — это обычная ошибка линейной регрессии. Вторая часть появляется уже не из данных, а из нашего решения сделать модель более устойчивой. Если (\lambda = 0), мы возвращаемся к обычной регрессии. Если (\lambda) увеличивается, большие коэффициенты становятся дорогими для оптимизатора.
Численный пример: пусть у модели два коэффициента (w_1 = 3) и (w_2 = 4), а средняя квадратичная ошибка равна (5). Если взять (\lambda = 0.1), штраф будет равен
(0.1 \cdot (3^2 + 4^2) = 0.1 \cdot (9 + 16) = 2.5).
Тогда вся функция потерь станет равна
(J(\mathbf{w}) = 5 + 2.5 = 7.5).
Смысл в том, что Ridge не зануляет веса резко, а постепенно притягивает их к нулю. Поэтому он особенно полезен, когда почти все признаки несут какую-то долю сигнала и мы не хотим их выбрасывать.
Lasso: когда модель начинает отбирать признаки
Формула Lasso относится к тем же разделам математики, но штраф устроен иначе. Вместо квадратов коэффициентов используется сумма их модулей.
(J(\mathbf{w}) = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2 + \lambda \sum_{j=1}^{p} |w_j|)
Что означает каждый символ:
обозначения (J(\mathbf{w}), n, p, y_i, \hat{y}_i, w_j, \lambda) означают то же самое, что и в Ridge;
(|w_j|) — модуль коэффициента, то есть его абсолютная величина без учета знака.
Численный пример: пусть снова (w_1 = 3), (w_2 = 4), ошибка равна (5), а (\lambda = 0.1). Тогда штраф равен
(0.1 \cdot (|3| + |4|) = 0.1 \cdot 7 = 0.7).
И полная функция потерь:
(J(\mathbf{w}) = 5 + 0.7 = 5.7).
Но настоящая сила Lasso проявляется не в этих цифрах, а в геометрии оптимизации. Для Ridge область ограничения похожа на круг или сферу, и решение обычно просто сжимается. Для Lasso область ограничения имеет углы, поэтому оптимум чаще попадает прямо на оси. Это и означает, что некоторые коэффициенты становятся ровно нулевыми. Геометрически Lasso легче приводит модель к sparse-решению. В терминах Data Science это означает автоматический отбор признаков. Если хочется отдельно закрепить именно эту механику sparsity, полезно потом открыть и разбор L1-регуляризации, где акцент уже сделан именно на занулении коэффициентов.
Чем Ridge и Lasso отличаются по смыслу
Если говорить интуитивно, Ridge полезен, когда вы считаете, что многие признаки содержат слабый, но реальный сигнал. Тогда лучше оставить их в модели, но не давать им слишком большие веса. Lasso полезен, когда среди признаков много лишнего и вы хотите, чтобы модель сама вычистила часть пространства признаков.
На практике различие особенно заметно при мультиколлинеарности. Если несколько признаков почти дублируют друг друга, Ridge обычно распределяет вес между ними более мягко. Lasso чаще выбирает один из них и подавляет остальные. Поэтому Ridge часто воспринимается как модель стабилизации, а Lasso — как модель стабилизации плюс селекция признаков.
Если хочется отдельно закрепить именно идею sparsity, полезно потом открыть и материал про регуляризацию L1: он помогает интуитивно увидеть, почему зануление коэффициентов вообще возникает и чем оно practically полезно.
Как это связано с машинным обучением
С точки зрения ML обе модели решают одну и ту же проблему: уменьшают variance модели и делают обучение устойчивее на новых данных. Они влияют не на структуру данных, а на поведение оптимизатора. Модель уже не может безнаказанно раздавать огромные коэффициенты признакам, которые хорошо подгоняют train, но плохо переносятся на test.
Это особенно важно в табличном машинном обучении. Если признаков много, а данных не бесконечно много, риск переобучения возрастает. Ridge и Lasso позволяют управлять этим риском через гиперпараметр (\lambda). Маленькое значение почти не ограничивает модель. Большое значение делает модель осторожнее. Поэтому выбор регуляризации — это часть настройки bias-variance tradeoff.
С точки зрения оптимизации обе модели обучаются через минимизацию функции потерь, но Lasso сложнее из-за модуля в штрафе. Тем не менее в библиотеках вроде scikit-learn это уже аккуратно реализовано, и нам остается правильно понимать смысл коэффициентов и результата.
Где Ridge и Lasso применяются в Data Science
В прогнозировании спроса Ridge часто полезен, когда на целевую переменную влияют сезонность, акции, цены, лаговые признаки и множество дополнительных факторов. Все они могут быть полезны, но не должны разгонять веса слишком сильно.
В кредитном скоринге и оценке риска Lasso удобен, когда исходных признаков очень много и часть из них шумовая. Он помогает сделать модель компактнее и интерпретируемее.
В биоинформатике и текстовых задачах Lasso особенно ценен, когда число признаков велико, а наблюдений сравнительно немного. Там идея зануления части коэффициентов становится практически необходимой.
В маркетинговой аналитике обе модели часто используют как baseline перед более сложными ансамблями. Если даже простая линейная модель с регуляризацией дает сильный результат, это уже важный сигнал о структуре данных.
Здесь очень полезна и логика baseline-модели: она не даёт перепутать реальное улучшение от регуляризации с обычным впечатлением от более сложного кода.
Python-пример
Ниже пример на Python, где мы обучаем обычную линейную регрессию, Ridge и Lasso на синтетических данных и сравниваем коэффициенты. Этот код показывает не только вызов библиотек, но и смысл регуляризации на практике.
from sklearn.datasets import make_regression
# Генерируем искусственные данные для задачи регрессии.
from sklearn.model_selection import train_test_split
# Импортируем функцию разделения данных на train и test.
from sklearn.linear_model import LinearRegression, Ridge, Lasso
# Импортируем обычную линейную регрессию, Ridge и Lasso.
from sklearn.metrics import mean_squared_error
# Импортируем метрику MSE для оценки качества на тесте.
X, y = make_regression(
n_samples=300,
n_features=12,
n_informative=5,
noise=20,
random_state=42
)
# Создаем датасет: всего 12 признаков, но реально полезны только 5.
# Это удобная ситуация, чтобы посмотреть, как регуляризация работает с лишними признаками.
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
# Делим данные на обучающую и тестовую части.
linear = LinearRegression()
# Создаем обычную линейную регрессию без регуляризации.
ridge = Ridge(alpha=1.0)
# Создаем Ridge-модель. В scikit-learn сила регуляризации задается параметром alpha.
lasso = Lasso(alpha=0.1)
# Создаем Lasso-модель. Более сильный штраф будет агрессивнее занулять коэффициенты.
linear.fit(X_train, y_train)
# Обучаем обычную линейную регрессию.
ridge.fit(X_train, y_train)
# Обучаем Ridge на тех же данных.
lasso.fit(X_train, y_train)
# Обучаем Lasso на тех же данных.
linear_pred = linear.predict(X_test)
# Получаем прогноз обычной линейной регрессии.
ridge_pred = ridge.predict(X_test)
# Получаем прогноз Ridge.
lasso_pred = lasso.predict(X_test)
# Получаем прогноз Lasso.
print("Linear MSE:", round(mean_squared_error(y_test, linear_pred), 3))
# Считаем ошибку обычной линейной регрессии на тесте.
print("Ridge MSE:", round(mean_squared_error(y_test, ridge_pred), 3))
# Считаем ошибку Ridge на тесте.
print("Lasso MSE:", round(mean_squared_error(y_test, lasso_pred), 3))
# Считаем ошибку Lasso на тесте.
print("Linear coefficients:", linear.coef_)
# Смотрим коэффициенты обычной модели.
print("Ridge coefficients:", ridge.coef_)
# Смотрим коэффициенты Ridge: они обычно более сжаты.
print("Lasso coefficients:", lasso.coef_)
# Смотрим коэффициенты Lasso: часть из них может стать ровно нулевой.Если такой код запустить, обычно видно три вещи. Во-первых, Ridge уменьшает разброс коэффициентов. Во-вторых, Lasso делает часть весов равной нулю. В-третьих, на test-выборке регуляризованные модели часто ведут себя стабильнее, чем обычная линейная регрессия, если данные шумные или признаки избыточны.
Как выбирать между Ridge и Lasso
Если задача требует интерпретации и сокращения числа признаков, часто начинают с Lasso. Если признаки в целом полезны, но коррелируют между собой, чаще логично пробовать Ridge. В реальной работе обычно не спорят абстрактно, какая модель «лучше». Их сравнивают на кросс-валидации, подбирают (\lambda) и смотрят на устойчивость результата.
И оценивать их всё равно стоит в контексте задачи: для численного прогноза полезно помнить, какую метрику для регрессии вы вообще считаете основной, иначе выбор между Ridge и Lasso легко сводится к абстрактному спору без прикладного смысла.
Есть и промежуточный вариант — Elastic Net, который комбинирует оба штрафа. Но именно Ridge и Lasso дают лучшую интуицию о том, что вообще делает регуляризация. Одна модель сжимает все коэффициенты, другая еще и чистит пространство признаков. Понять это — значит понять один из ключевых механизмов борьбы с переобучением в линейных моделях.
Поэтому Ridge и Lasso остаются актуальными в Data Science в 2026 году не из уважения к классике, а потому что они решают практическую задачу: помогают строить модели, которые не только хорошо подгоняются под train, но и адекватно ведут себя на новых данных.