Введение
В этом практическом занятии показано, как использовать Регуляризованную линейную регрессию (Ridge Regression) для оценки коэффициентов, которые могут быть линейно зависимы. Ridge Regression - это линейная регрессия, которая применяет L2-регуляризацию к модели.
В этом примере мы сгенерируем матрицу Гильберта размером 10x10 и применим Ridge Regression для оценки коэффициентов этой матрицы.
Советы по использованию ВМ
После запуска ВМ кликните в верхнем левом углу, чтобы переключиться на вкладку Notebook и приступить к практике в Jupyter Notebook.
Иногда может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Проверка операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы столкнетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Импортируем необходимые библиотеки
В этом шаге мы импортируем необходимые библиотеки для данного примера.
import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model
Генерируем данные
В этом шаге мы сгенерируем матрицу Гильберта размером 10x10 и зададим целевую переменную y в виде вектора, состоящего из единиц.
X = 1.0 / (np.arange(1, 11) + np.arange(0, 10)[:, np.newaxis])
y = np.ones(10)
Вычисляем пути Регуляризованной линейной регрессии (Ridge Regression)
В этом шаге мы вычислим пути Регуляризованной линейной регрессии для различных значений коэффициента регуляризации.
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_)
Визуализируем результаты
В этом шаге мы визуализируем результаты путей Регуляризованной линейной регрессии (Ridge Regression).
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 as a function of the regularization")
plt.axis("tight")
plt.show()
Резюме
В этом практическом занятии мы показали, как использовать Регуляризованную линейную регрессию (Ridge Regression) для оценки коэффициентов, которые могут быть линейно зависимы. Мы сгенерировали матрицу Гильберта размером 10x10 и использовали Регуляризованную линейную регрессию для оценки коэффициентов этой матрицы. Затем мы визуализировали результаты путей Регуляризованной линейной регрессии. Регуляризованная линейная регрессия полезна для уменьшения вариации (шума) в сильно плохообусловленных матрицах. Задав определенную силу регуляризации, мы можем достичь баланса между эффектом регуляризации и квадратичной функцией потерь.