Dostosowanie modelu
Prostym sposobem na dostosowanie modelu lasu losowego do pracy z mocno niezbalansowanymi danymi o oszustwach jest użycie opcji class_weights podczas definiowania modelu sklearn. Jak się jednak przekonasz, jest to dość ogólny mechanizm, który może nie sprawdzić się w każdym konkretnym przypadku.
W tym ćwiczeniu sprawdzisz tryb weight = "balanced_subsample" w modelu lasu losowego z wcześniejszego ćwiczenia. Dane zostały już podzielone na zbiór treningowy i testowy — dostępne są zmienne X_train, X_test, y_train, y_test. Funkcje metryk zostały już zaimportowane.
To ćwiczenie jest częścią kursu
Wykrywanie oszustw w Pythonie
Instrukcje do ćwiczenia
- Ustaw argument
class_weightklasyfikatora nabalanced_subsample. - Dopasuj model do zbioru treningowego.
- Uzyskaj predykcje i prawdopodobieństwa na podstawie
X_test. - Oblicz
roc_auc_score, raport klasyfikacji oraz macierz pomyłek.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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(____(____, ____))