Exemple de régression linéaire

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

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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/metrics("Metrics") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/metrics -.-> lab-49231{{"Exemple de régression linéaire"}} ml/sklearn -.-> lab-49231{{"Exemple de régression linéaire"}} end

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.