Regressão Ridge para Modelagem Linear

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Neste laboratório, aprenderemos a utilizar a Regressão Ridge para regressão linear com regularização L2, a fim de prevenir o sobreajuste. Utilizaremos a biblioteca de aprendizado de máquina scikit-learn, popular em Python.

Dicas da Máquina Virtual

Após o arranque da máquina virtual, clique no canto superior esquerdo para mudar para a aba Notebook e aceder ao Jupyter Notebook para praticar.

Por vezes, pode ser necessário aguardar alguns segundos para o Jupyter Notebook terminar o carregamento. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se tiver problemas durante o aprendizado, não hesite em contactar o Labby. Forneça feedback após a sessão e resolveremos o problema rapidamente.

Importação de bibliotecas necessárias

Começaremos importando as bibliotecas necessárias para este laboratório.

import matplotlib.pyplot as plt
import numpy as np
from sklearn.datasets import make_regression
from sklearn.linear_model import Ridge
from sklearn.metrics import mean_squared_error

Geração de dados aleatórios

Vamos gerar dados aleatórios com a função make_regression do scikit-learn. Definiremos n_samples para 10, n_features para 10 e random_state para 1. Esta função retornará as nossas características de entrada X, a variável alvo y e os valores verdadeiros dos coeficientes w.

X, y, w = make_regression(
    n_samples=10, n_features=10, coef=True, random_state=1, bias=3.5
)

Inicializar o modelo de Regressão Ridge

Inicializaremos o modelo de Regressão Ridge com seus hiperparâmetros padrão.

clf = Ridge()

Treinar o modelo com diferentes níveis de regularização

Treinaremos o modelo com diferentes níveis de regularização usando um loop. Definiremos o nível de regularização alterando o valor de alpha na função set_params. Guardaremos os coeficientes e os erros para cada valor de alpha.

coefs = []
errors = []

alphas = np.logspace(-6, 6, 200)

for a in alphas:
    clf.set_params(alpha=a)
    clf.fit(X, y)
    coefs.append(clf.coef_)
    errors.append(mean_squared_error(clf.coef_, w))

Plotar os resultados

Plotaremos os coeficientes e os erros em função da força de regularização usando Matplotlib.

plt.figure(figsize=(20, 6))

plt.subplot(121)
ax = plt.gca()
ax.plot(alphas, coefs)
ax.set_xscale("log")
plt.xlabel("alpha")
plt.ylabel("pesos")
plt.title("Coeficientes Ridge em função da regularização")
plt.axis("tight")

plt.subplot(122)
ax = plt.gca()
ax.plot(alphas, errors)
ax.set_xscale("log")
plt.xlabel("alpha")
plt.ylabel("erro")
plt.title("Erro dos coeficientes em função da regularização")
plt.axis("tight")

plt.show()

Resumo

Neste laboratório, aprendemos a utilizar a Regressão Ridge com regularização L2 para prevenir o sobreajuste. Gerámos dados aleatórios, treinámos um modelo de Regressão Ridge com diferentes níveis de regularização e plotamos os coeficientes e erros em função da força de regularização.