Progressi del diabete
Fa parte della sezione Apprendimento supervisionato del percorso Machine Learning di Coddy. Lezione 55 di 58.
Una clinica per il diabete programma le visite di controllo in base a quanto progredirà la malattia di ciascun paziente nell'arco di un anno. Nella sezione 2, una caratteristica ne descriveva solo una parte:
Ora vengono inserite tutte e dieci le misurazioni di load_diabetes. Di quale modello dovrebbe fidarsi la clinica e di quanti punti sbaglierà?
Vuole una selezione equa tramite convalida incrociata, errori affidabili su pazienti mai visti e un controllo dei residui per individuare tutto ciò che il modello non coglie.
Sfida
DifficileIl programma legge gli alpha di Ridge in alphas; il codice iniziale prepara un grafico con un titolo.
- Separa un quarto dei dati per il test con
random_state=0. - Calcola il punteggio di un
LinearRegressione di unRidgeper ogni alpha con una CV a 5 fold sulle righe di training. Stampa ogni R squared medio (3 decimali), poi il vincitore. - Addestra il vincitore e stampa MAE e RMSE sul test (1 decimale) e R squared (3).
- Rappresenta con uno scatter plot i residui del test, valore reale meno valore predetto, rispetto alle predizioni. Aggiungi una linea a zero, poi mostra il grafico.
Per un'altra clinica e gli alpha 0.5 e 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.414Poi Coddy descrive il tuo grafico dei residui.
Provalo tu
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
# I valori alpha di Ridge da provare
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)")
# Scrivi il tuo codice qui sotto
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Apprendimento supervisionato
1Il tuo primo modello
Imparare dagli esempiInsiemi di addestramento e testAdattare e prevedereValutare un modelloRiepilogo: Ordinatore di semi4Regressione logistica
Previsioni sì o noLa soglia decisionaleI pesi come evidenzePiù classiRiepilogo: filtro antispam2Vicini più prossimi
Come decide k-NNScegliere kConfini decisionaliNormalizzare le scale per i viciniRiepilogo: vicini del vino5Misurare i classificatori
La matrice di confusionePrecisione e richiamoIl punteggio F1Classi sbilanciateCurve ROCRiepilogo: test di screening8Convalida incrociata
Validazione K-foldConfronto equo tra modelliRicerca a grigliaRiepilogo: riparazioni di skateboard11Progetto: specie di pinguini
Incontra i pinguiniPrepara i datiScegli un modelloOttimizza il miglioreDistribuisci il modello3Regressione lineare
Prevedere numeriPiù caratteristicheMisurare gli erroriGrafici dei residuiRiepilogo: noleggio di biciclette6Alberi decisionali
Gli alberi fanno domandeLeggere un alberoProfondità dell’alberoImportanza delle caratteristicheRiepilogo: decisioni sui prestiti9Insiemi
Foreste casualiPerché funzionano le foresteGradient BoostingRiepilogo: il guardiano della foresta12Sfide finali
Progressi del diabeteApprovazione del creditoCifre scritte a manoAbbandono dei clientiEsercitati da solo: Compilatore Python online