Leave-one-out cross-validation
Supponiamo che la tua caramella preferita non sia presente nell'insieme di dati delle caramelle e che tu voglia stimarne la popolarità. Usare una cross-validation con 5 fold allena il modello solo sull’80% dei dati alla volta. Tuttavia, il dataset delle caramelle ha solo 85 righe e lasciare fuori il 20% dei dati potrebbe penalizzare il nostro modello. Con la leave-one-out cross-validation, invece, possiamo sfruttare al massimo il nostro insieme di dati limitato e ottenere la stima migliore della popolarità della tua caramella preferita!
In questo esercizio userai cross_val_score() per eseguire la LOOCV.
Questo esercizio fa parte del corso
Validazione dei modelli in Python
Istruzioni dell'esercizio
- Crea uno scorer usando
mean_absolute_errorda passare across_val_score(). - Completa
cross_val_score()in modo che utilizzi il modellorfr, il nuovomae_scorere la LOOCV. - Stampa la media e la deviazione standard di
scoresusandonumpy(importato comenp).
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
from sklearn.metrics import mean_absolute_error, make_scorer
# Create scorer
mae_scorer = ____(____)
rfr = RandomForestRegressor(n_estimators=15, random_state=1111)
# Implement LOOCV
scores = cross_val_score(____, X=X, y=y, cv=____, scoring=____)
# Print the mean and standard deviation
print("The mean of the errors is: %s." % np.____(____))
print("The standard deviation of the errors is: %s." % np.____(____))