Évolution du diabète
Fait partie de la section Apprentissage supervisé du Journey Machine Learning de Coddy. Leçon 55 sur 58.
Une clinique du diabète planifie les consultations de suivi en fonction de la progression de la maladie de chaque patient sur une année. Dans la section 2, une caractéristique n’en expliquait qu’une partie :
Maintenant, les dix mesures de load_diabetes sont toutes prises en compte. À quel modèle la clinique devrait-elle faire confiance, et de combien de points se trompera-t-il ?
Il veut une sélection équitable par validation croisée, des erreurs honnêtes sur des patients jamais vus et une vérification des résidus pour repérer tout ce que le modèle ne prend pas en compte.
Défi
DifficileLe programme lit les alphas de Ridge dans alphas ; le code de départ prépare un graphique avec un titre.
- Réserve un quart des données pour le test avec
random_state=0. - Évalue une
LinearRegressionet unRidgepour chaque alpha avec une validation croisée à 5 plis sur les lignes d’entraînement. Affiche chaque R carré moyen (3 décimales), puis le gagnant. - Entraîne le gagnant et affiche ses MAE et RMSE de test (1 décimale) ainsi que son R carré (3 décimales).
- Représente les résidus de test, valeurs réelles moins valeurs prédites, en fonction des prédictions. Ajoute une ligne à zéro, puis affiche le graphique.
Pour une autre clinique et les alphas 0.5 et 2.0 :
Linear: CV R squared 0.472
Ridge 0.5: CV R squared 0.481
Ridge 2.0: CV R squared 0.402
Winner: Ridge 0.5
Test errors: MAE 47.3, RMSE 58.9, R squared 0.414Ensuite, Coddy décrit ton graphique des résidus.
Essayez vous-même
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_diabetes
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.linear_model import LinearRegression, Ridge
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
diabetes = load_diabetes(as_frame=True)
X = diabetes.data
y = diabetes.target
# Les valeurs alpha de Ridge à essayer
n = int(input())
alphas = []
for i in range(n):
alphas.append(float(input()))
fig, ax = plt.subplots()
ax.set_title("Residuals on Test Patients")
ax.set_xlabel("Predicted progression")
ax.set_ylabel("Residual (true - predicted)")
# Écrivez votre code ci-dessous
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Apprentissage supervisé
1Votre premier modèle
Apprendre à partir d’exemplesJeux d’entraînement et de testAjuster et prédireÉvaluer un modèleRécapitulatif : trieur de graines4Régression logistique
Prédictions oui ou nonLe seuil de décisionLes poids comme indicesPlusieurs classesRécapitulatif : filtre anti-spam2Plus proches voisins
Comment k-NN prend ses décisionsChoisir kFrontières de décisionMettre les voisins à l’échelleRécapitulatif : voisins et vin5Évaluer les classificateurs
La matrice de confusionPrécision et rappelLe score F1Classes déséquilibréesCourbes ROCRécapitulatif : test de dépistage8Validation croisée
Validation K-foldComparer les modèles équitablementRecherche par grilleRécapitulatif : réparations de skateboard11Projet : espèces de manchots
À la rencontre des manchotsPréparer les donnéesChoisir un modèleOptimiser le modèle gagnantDéployer le modèle3Régression linéaire
Prédire des nombresPlusieurs caractéristiquesMesurer les erreursGraphiques des résidusRécapitulatif : locations de vélos6Arbres de décision
Les arbres posent des questionsLire un arbreProfondeur de l’arbreImportance des caractéristiquesRécapitulatif : décisions de prêtEntraînez-vous par vous-même : Compilateur Python en ligne