Примечание
Перейти в конец, чтобы скачать полный код примера или запустить этот пример в браузере через JupyterLite или Binder.
График коэффициентов Ridge в зависимости от регуляризации
Демонстрирует влияние мультиколлинеарности на коэффициенты оценивателя.
В этом примере используется регрессия Ridge. Каждый цвет обозначает отдельный признак вектора коэффициентов; коэффициенты отображаются в зависимости от параметра регуляризации.
В этом примере также показана полезность применения регрессии Ridge к матрицам с очень плохой обусловленностью. Для таких матриц небольшое изменение целевой переменной может привести к огромным колебаниям вычисленных весов. В таких случаях полезно задать определенную регуляризацию (alpha), чтобы уменьшить эти колебания (шум).
При очень большом alpha эффект регуляризации преобладает над функцией квадратичных потерь, и коэффициенты стремятся к нулю. В конце пути, когда alpha стремится к нулю, а решение — к методу наименьших квадратов, коэффициенты демонстрируют большие колебания. На практике необходимо настроить alpha так, чтобы сохранить баланс между этими эффектами.
# Authors: The scikit-learn developers # SPDX-License-Identifier: BSD-3-Clause import matplotlib.pyplot as plt import numpy as np from sklearn import linear_model # X is the 10x10 Hilbert matrix X = 1.0 / (np.arange(1, 11) + np.arange(0, 10)[:, np.newaxis]) y = np.ones(10)
Вычисление траекторий
n_alphas = 200
alphas = np.logspace(-10, -2, n_alphas)
coefs = []
for a in alphas:
ridge = linear_model.Ridge(alpha=a, fit_intercept=False)
ridge.fit(X, y)
coefs.append(ridge.coef_)
Отображение результатов
ax = plt.gca()
ax.plot(alphas, coefs)
ax.set_xscale("log")
ax.set_xlim(ax.get_xlim()[::-1]) # reverse axis
plt.xlabel("alpha")
plt.ylabel("weights")
plt.title("Ridge Coefficients vs Regularization Strength (alpha)")
plt.axis("tight")
plt.legend(
[f"Feature {i + 1}" for i in range(X.shape[1])], loc="best", fontsize="small"
)
plt.show()

Общее время выполнения скрипта: (0 минут 0.350 секунды)
Связанные примеры
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/auto_examples/linear_model/plot_ridge_path.html