Exemple de régression 岭 avec Scikit-Learn

Beginner

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

Introduction

Ce laboratoire montre comment utiliser la régression 岭 pour estimer les coefficients colinéaires d'un estimateur. La régression 岭 est un type de régression linéaire qui applique une régularisation L2 au modèle.

Dans cet exemple, nous allons générer une matrice de Hilbert 10x10 et utiliser la régression 岭 pour estimer les coefficients de la matrice.

Conseils sur la VM

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

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 des commentaires après la session, et nous résoudrons rapidement le problème pour vous.

Importation des bibliothèques requises

Dans cette étape, nous allons importer les bibliothèques requises pour cet exemple.

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

Générer des données

Dans cette étape, nous allons générer une matrice de Hilbert 10x10 et définir la variable cible y comme étant un vecteur de uns.

X = 1.0 / (np.arange(1, 11) + np.arange(0, 10)[:, np.newaxis])
y = np.ones(10)

Calculer les chemins de régression 岭

Dans cette étape, nous allons calculer les chemins de régression 岭 pour différentes forces de régularisation.

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

Visualiser les résultats

Dans cette étape, nous allons visualiser les résultats des chemins de régression 岭。

ax = plt.gca()

ax.plot(alphas, coefs)
ax.set_xscale("log")
ax.set_xlim(ax.get_xlim()[::-1])  ## inverse l'axe
plt.xlabel("alpha")
plt.ylabel("poids")
plt.title("Coefficients de régression 岭 en fonction de la régularisation")
plt.axis("tight")
plt.show()

Sommaire

Dans ce laboratoire, nous avons démontré comment utiliser la régression 岭 pour estimer les coefficients colinéaires d'un estimateur. Nous avons généré une matrice de Hilbert 10x10 et utilisé la régression 岭 pour estimer les coefficients de la matrice. Nous avons ensuite visualisé les résultats des chemins de régression 岭。La régression 岭 est utile pour réduire la variation (bruit) dans des matrices hautement mal conditionnées. En définissant une certaine force de régularisation, nous pouvons équilibrer l'effet de la régularisation et de la fonction de perte carrée.