Visualizzare Coarse to Fine
Stai per affrontare la prima parte di una ricerca Coarse to Fine. Questo comporta l'analisi dei risultati di una ricerca casuale iniziale effettuata su uno spazio di ricerca ampio, per poi decidere qual è il passo successivo più logico per rendere più fine la tua ricerca di iperparametri.
Hai a disposizione:
combinations_list- un elenco delle possibili combinazioni di iperparametri su cui è stata effettuata la random search.results_df- un DataFrame che contiene ogni combinazione di iperparametri e la conseguente accuratezza di tutti i 500 tentativi. Ogni iperparametro è una colonna, con come intestazione il nome dell'iperparametro.visualize_hyperparameter()- una funzione che prende in input una colonna del DataFrame (come stringa) e produce uno scatter plot dei valori di quella colonna rispetto ai punteggi di accuratezza. Un esempio di chiamata della funzione èvisualize_hyperparameter('accuracy')
Se vuoi vedere la definizione della funzione visualize_hyperparameter(), puoi eseguire questo codice:
import inspect
print(inspect.getsource(visualize_hyperparameter))
Questo esercizio fa parte del corso
Ottimizzazione degli iperparametri in Python
Istruzioni dell'esercizio
- Conferma (stampandola) la dimensione di
combinations_list, giustificando la necessità di iniziare con una ricerca casuale. - Ordina
results_dfin base ai valori di accuratezza e stampa le prime 10 righe. Ci sono intuizioni chiare? Attenzione alla dimensione ridotta del campione! - Conferma (stampandoli) quali iperparametri sono stati usati in questa ricerca. Sono i nomi delle colonne in
results_df. - Chiama
visualize_hyperparameter()a turno con ciascun iperparametro (max_depth,min_samples_leaf,learn_rate). Noti qualche trend?
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Confirm the size of the combinations_list
print(____(____))
# Sort the results_df by accuracy and print the top 10 rows
print(results_df.____(by=____, ascending=False).head(____))
# Confirm which hyperparameters were used in this search
print(results_df.____)
# Call visualize_hyperparameter() with each hyperparameter in turn
visualize_hyperparameter(____)
visualize_hyperparameter(____)
visualize_hyperparameter(____)