Variância entre Regressão Linear Ordinária e Regressão Ridge

Beginner

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

Introdução

Neste laboratório, utilizaremos a biblioteca Python scikit-learn para explorar a diferença entre os métodos de Regressão Linear Ordinária (OLS) e Regressão Ridge. Examinaremos como esses dois métodos de regressão linear lidam com o ruído nos dados e como diferem em suas previsões.

Dicas da Máquina Virtual

Após o arranque da VM, clique no canto superior esquerdo para mudar para a aba Notebook para aceder ao Jupyter Notebook para a prática.

Por vezes, pode ser necessário esperar alguns segundos para o Jupyter Notebook terminar de carregar. 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 para si.

Importar Bibliotecas

Neste passo, importamos as bibliotecas Python necessárias.

import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model

Criar Dados

Neste passo, criaremos os dados que utilizaremos para a nossa análise.

X_train = np.c_[0.5, 1].T
y_train = [0.5, 1]
X_test = np.c_[0, 2].T

Definir Classificadores

Neste passo, definiremos os classificadores de Regressão Linear (OLS) e Regressão Ridge.

classifiers = dict(
    ols=linear_model.LinearRegression(), ridge=linear_model.Ridge(alpha=0.1)
)

Visualizar os Resultados

Neste passo, visualizaremos os resultados da nossa análise.

for name, clf in classifiers.items():
    fig, ax = plt.subplots(figsize=(4, 3))

    for _ in range(6):
        this_X = 0.1 * np.random.normal(size=(2, 1)) + X_train
        clf.fit(this_X, y_train)

        ax.plot(X_test, clf.predict(X_test), color="gray")
        ax.scatter(this_X, y_train, s=3, c="gray", marker="o", zorder=10)

    clf.fit(X_train, y_train)
    ax.plot(X_test, clf.predict(X_test), linewidth=2, color="blue")
    ax.scatter(X_train, y_train, s=30, c="red", marker="+", zorder=10)

    ax.set_title(name)
    ax.set_xlim(0, 2)
    ax.set_ylim((0, 1.6))
    ax.set_xlabel("X")
    ax.set_ylabel("y")

    fig.tight_layout()

plt.show()

Resumo

Neste laboratório, aprendemos a utilizar a biblioteca Python scikit-learn para explorar as diferenças entre a Regressão Linear Ordinária (OLS) e a Regressão Ridge. Vimos como estes dois métodos de regressão linear lidam com o ruído nos dados e como diferem nas suas previsões. Também visualizamos os resultados da nossa análise.