Variance de la régression linéaire ordinaire (OLS) et de la régression Ridge

Machine LearningMachine LearningBeginner
Pratiquer maintenant

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

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous utiliserons la bibliothèque Python scikit-learn pour explorer la différence entre la régression linéaire ordinaire (OLS) et la régression Ridge. Nous examinerons comment ces deux méthodes de régression linéaire gèrent le bruit dans les données et comment elles diffèrent dans leurs prédictions.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Notebook pour accéder à Jupyter Notebook pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session et nous réglerons rapidement le problème pour vous.

Importation des bibliothèques

Dans cette étape, nous allons importer les bibliothèques Python nécessaires.

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

Création des données

Dans cette étape, nous allons créer les données que nous utiliserons pour notre analyse.

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

Définition des classifieurs

Dans cette étape, nous allons définir les classifieurs pour la régression linéaire ordinaire (OLS) et la régression Ridge.

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

Visualiser les résultats

Dans cette étape, nous allons visualiser les résultats de notre analyse.

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()

Sommaire

Dans ce laboratoire, nous avons appris à utiliser la bibliothèque Python scikit - learn pour explorer la différence entre la régression linéaire ordinaire (OLS) et la régression Ridge. Nous avons vu comment ces deux méthodes de régression linéaire font face au bruit dans les données et en quoi elles diffèrent dans leurs prédictions. Nous avons également visualisé les résultats de notre analyse.