Impostare i parametri di GridSearch
Un iperparametro è un parametro all'interno di una funzione. Per esempio, max_depth o min_samples_leaf sono iperparametri della funzione DecisionTreeClassifier(). L’hyperparameter tuning è il processo con cui si testano diversi valori degli iperparametri per trovare quelli ottimali: quelli che forniscono le previsioni migliori in base ai tuoi obiettivi. In sklearn, puoi usare GridSearch per testare diverse combinazioni di iperparametri. Ancora meglio, puoi usare GridSearchCV() per testare diverse combinazioni ed eseguire la cross-validation su di esse in un’unica funzione!
In questo esercizio preparerai i diversi valori che vuoi testare per max_depth e min_samples_leaf. Li inserirai poi in un dizionario, perché è ciò che richiede GridSearchCV():
- le chiavi del dizionario saranno i nomi degli iperparametri
- i valori del dizionario saranno gli attributi (i valori degli iperparametri) che vuoi testare
Invece di scrivere tutti i valori manualmente, userai la funzione range(), che permette di generare valori in modo incrementale. Per esempio, range(1, 10, 2) genererà una lista con valori da 1 incluso a 10 escluso, con incrementi di 2. Quindi il risultato finale sarà [1, 3, 5, 7, 9].
Questo esercizio fa parte del corso
HR Analytics: prevedere l'abbandono dei dipendenti in Python
Istruzioni dell'esercizio
- Seguendo il formato dell’esempio sopra, genera i valori per la profondità massima da 5 a 20 con incrementi di 1
- Fai lo stesso per la dimensione minima del campione con valori da 50 a 450 con incrementi di 50
- Crea il dizionario specificando i valori di
max_depthemin_samples_leafda provare, rispettivamente, usando le variabili che hai appena creato
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Generate values for maximum depth
depth = [i for i in ____(5,21,1)]
# Generate values for minimum sample size
samples = [i for i in range(____,500,____)]
# Create the dictionary with parameters to be checked
parameters = dict(max_depth=depth, min_samples_leaf=____)