Introduction
Ce laboratoire montre comment utiliser la régression linéaire pour tracer une droite qui s'ajuste au mieux à un ensemble de données et comment calculer les coefficients, la somme des carrés des résidus et le coefficient de détermination. Nous utiliserons la bibliothèque scikit-learn pour effectuer une régression linéaire sur le jeu de données de diabète.
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 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 limites 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.
Charger le jeu de données de diabète
Nous commençons par charger le jeu de données de diabète à partir de scikit-learn et en sélectionnant seulement une caractéristique du jeu de données.
import numpy as np
from sklearn import datasets
## Charger le jeu de données de diabète
diabetes_X, diabetes_y = datasets.load_diabetes(return_X_y=True)
## Utiliser seulement une caractéristique
diabetes_X = diabetes_X[:, np.newaxis, 2]
Diviser le jeu de données
Ensuite, nous divisons le jeu de données en ensembles d'entraînement et de test. Nous utiliserons 80 % des données pour l'entraînement et 20 % pour les tests.
## Diviser les données en ensembles d'entraînement/tests
diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]
## Diviser les cibles en ensembles d'entraînement/tests
diabetes_y_train = diabetes_y[:-20]
diabetes_y_test = diabetes_y[-20:]
Entraîner le modèle
Maintenant, nous créons un objet de régression linéaire et entraînons le modèle à l'aide des ensembles d'entraînement.
from sklearn import linear_model
## Créer un objet de régression linéaire
regr = linear_model.LinearRegression()
## Entraîner le modèle à l'aide des ensembles d'entraînement
regr.fit(diabetes_X_train, diabetes_y_train)
Effectuer des prédictions
Nous pouvons maintenant utiliser le modèle entraîné pour effectuer des prédictions sur l'ensemble de test.
## Effectuer des prédictions à l'aide de l'ensemble de test
diabetes_y_pred = regr.predict(diabetes_X_test)
Calculer des métriques
Nous pouvons calculer les coefficients, l'erreur quadratique moyenne et le coefficient de détermination.
from sklearn.metrics import mean_squared_error, r2_score
## Les coefficients
print("Coefficients: \n", regr.coef_)
## L'erreur quadratique moyenne
print("Mean squared error: %.2f"
% mean_squared_error(diabetes_y_test, diabetes_y_pred))
## Le coefficient de détermination : 1 est une prédiction parfaite
print("Coefficient of determination: %.2f"
% r2_score(diabetes_y_test, diabetes_y_pred))
Visualiser les résultats
Enfin, nous pouvons tracer les valeurs prédites en fonction des valeurs réelles pour visualiser la qualité de l'ajustement du modèle aux données.
import matplotlib.pyplot as plt
## Tracer les sorties
plt.scatter(diabetes_X_test, diabetes_y_test, color="black")
plt.plot(diabetes_X_test, diabetes_y_pred, color="blue", linewidth=3)
plt.xticks(())
plt.yticks(())
plt.show()
Sommaire
Dans ce laboratoire, nous avons appris à utiliser la régression linéaire pour ajuster une droite à un ensemble de données et à calculer les coefficients, la somme des carrés des résidus et le coefficient de détermination. Nous avons également appris à visualiser les valeurs prédites en fonction des valeurs réelles à l'aide d'un graphique en points.