GridSearchCV per trovare i parametri ottimali
In questo esercizio affinerai il modello in modo meno “casuale” usando GridSearchCV per fare il lavoro al posto tuo.
Con GridSearchCV puoi definire quale metrica di performance usare per il punteggio delle opzioni. Poiché nel fraud detection ci interessa soprattutto intercettare il maggior numero possibile di frodi, puoi ottimizzare le impostazioni del modello per ottenere il miglior punteggio di Recall. Se ti interessasse anche ridurre il numero di falsi positivi, potresti ottimizzare sull’F1-score, che ti offre un buon compromesso Precision-Recall.
GridSearchCV è già stato importato da sklearn.model_selection, quindi proviamolo!
Questo esercizio fa parte del corso
Rilevamento delle frodi in Python
Istruzioni dell'esercizio
- Definisci nel parametro grid che vuoi provare 1 e 30 alberi e che vuoi testare i criteri di split
giniedentropy. - Definisci il modello come un semplice RandomForestClassifier; mantieni
random_statea 5 per poter confrontare i modelli. - Imposta l’opzione
scoringin modo che ottimizzi per il recall. - Adatta il modello ai dati di addestramento
X_trainey_traine ottieni i parametri migliori per il modello.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Define the parameter sets to test
param_grid = {'n_estimators': [____, ____], 'max_features': ['auto', 'log2'], 'max_depth': [4, 8], 'criterion': ['____', '____']
}
# Define the model to use
model = ____(random_state=5)
# Combine the parameter sets with the defined model
CV_model = GridSearchCV(estimator=model, param_grid=param_grid, cv=5, scoring='____', n_jobs=-1)
# Fit the model to our training data and obtain best parameters
CV_model.fit(____, ____)
CV_model.____