IniziaInizia gratis

Costruire le learning curve

Se vogliamo testare molti valori diversi per un singolo iperparametro, può essere difficile visualizzarli chiaramente in un DataFrame. In precedenza hai visto un trucco utile per analizzare questa situazione. Un grafico chiamato "learning curve" mostra bene l’effetto dell’aumento o diminuzione di un determinato iperparametro sul risultato finale.

Invece di testare solo pochi valori per il learning rate, ne proverai molti per vedere facilmente l’effetto di questo iperparametro su un ampio intervallo di valori. Una funzione utile di NumPy è np.linspace(start, end, num), che ti permette di creare un certo numero di valori (num) distribuiti in modo uniforme all’interno di un intervallo (start, end) che specifichi.

Hai a disposizione gli insiemi di dati X_train, X_test, y_train e y_test.

Questo esercizio fa parte del corso

Ottimizzazione degli iperparametri in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Crea un elenco di 30 learning rate distribuiti uniformemente tra 0.01 e 2.
  • Crea un ciclo simile al precedente esercizio ma salva solo gli accuracy score in un elenco.
  • Traccia i learning rate rispetto all’accuracy score.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Set the learning rates & accuracies list
learn_rates = np.linspace(____, ____, num=____)
accuracies = []

# Create the for loop
for learn_rate in learn_rates:
  	# Create the model, predictions & save the accuracies as before
    model = GradientBoostingClassifier(learning_rate=____)
    predictions = model.fit(____, ____).predict(____)
    accuracies.append(accuracy_score(y_test, ____))

# Plot results    
plt.plot(____, ____)
plt.gca().set(xlabel='learning_rate', ylabel='Accuracy', title='Accuracy for different learning_rates')
plt.____
Modifica ed esegui il codice