Modelaanpassingen
Een eenvoudige manier om het random forest-model aan te passen aan sterk onevenwichtige fraudedata is de class_weights-optie te gebruiken bij het definiëren van je sklearn-model. Maar zoals je zult zien, is het een nogal bot mechanisme en werkt het misschien niet voor jouw specifieke geval.
In deze oefening verken je de modus weight = "balanced_subsample" van het Random Forest-model uit de vorige oefening. Je hebt je data al gesplitst in een trainings- en testset; X_train, X_test, y_train, y_test zijn dus beschikbaar. De functies uit metrics zijn al geïmporteerd.
Deze oefening maakt deel uit van de cursus
Fraudedetectie in Python
Oefeninstructies
- Zet het argument
class_weightvan je classifier opbalanced_subsample. - Fit je model op de trainingsset.
- Haal voorspellingen en waarschijnlijkheden op uit
X_test. - Bepaal de
roc_auc_score, het classificatierapport en de verwarringsmatrix.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Define the model with balanced subsample
model = RandomForestClassifier(class_weight='____', random_state=5)
# Fit your training model to your training set
model.fit(____, ____)
# Obtain the predicted values and probabilities from the model
predicted = ____.____(____)
probs = ____.____(____)
# Print the roc_auc_score, the classification report and confusion matrix
print(____(____, ____))
print(____(____, ____))
print(____(____, ____))