Ottimizzare la tua Random Forest per la rilevazione di frodi
In questo esercizio esplorerai le opzioni del classificatore random forest: assegnerai dei pesi e modificherai la struttura degli alberi decisionali nella foresta. Definirai manualmente i pesi per compensare parzialmente lo sbilanciamento. Nel nostro caso abbiamo 300 casi di frode e 7000 di non-frode, quindi impostando il rapporto dei pesi a 1:12 otteniamo un rapporto di 1/3 frode e 2/3 non-frode, che è sufficientemente buono per addestrare il modello.
I dati in questo esercizio sono già stati divisi in training set e test set, quindi concentrati solo sulla definizione del modello. Puoi poi usare la funzione get_model_results() come scorciatoia. Questa funzione adatta il modello ai dati di training, effettua le predizioni e calcola metriche di performance simili ai passaggi che hai svolto negli esercizi precedenti.
Questo esercizio fa parte del corso
Rilevamento delle frodi in Python
Istruzioni dell'esercizio
- Modifica l'opzione
weightper impostare il rapporto a 1 a 12 tra casi di non-frode e di frode, e imposta il criterio di split su 'entropy'. - Imposta la profondità massima a 10.
- Imposta il numero minimo di campioni nelle foglie a 10.
- Imposta il numero di alberi da usare nel modello a 20.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Change the model options
model = RandomForestClassifier(bootstrap=True, class_weight={0:____, 1:____}, criterion='____',
# Change depth of model
max_depth=____,
# Change the number of samples in leaf nodes
min_samples_leaf=____,
# Change the number of trees to use
n_estimators=____, n_jobs=-1, random_state=5)
# Run the function get_model_results
get_model_results(X_train, y_train, X_test, y_test, model)