Kostenanalyse in der Praxis
Du arbeitest in dieser Übung weiterhin mit dem Kredit-Datensatz. Zur Erinnerung: Ein "positive" in diesem Datensatz bedeutet "bad credit", d. h. ein Kunde, der mit seinem Kredit in Verzug geraten ist; ein "negative" bedeutet einen Kunden, der ohne Probleme weitergezahlt hat. Die Bankleitung hat dich informiert, dass die Bank im Durchschnitt 10 K Gewinn mit jedem "good risk"-Kunden macht, aber 150 K mit jedem "bad risk"-Kunden verliert. Dein Algorithmus wird zur Vorauswahl von Antragstellern genutzt: Diejenigen, die als "negative" gelabelt werden, erhalten einen Kredit, und die "positive" werden abgelehnt. Wie hoch sind die Gesamtkosten deines Klassifikators? Die Daten liegen als X_train, X_test, y_train und y_test vor. Die Funktionen confusion_matrix(), f1_score(), precision_score() und RandomForestClassifier() stehen zur Verfügung.
Diese Übung ist Teil des Kurses
Machine-Learning-Workflows in Python entwerfen
Anleitung zur Übung
- Fitte einen Random-Forest-Klassifikator auf die Trainingsdaten.
- Nutze ihn, um die Testdaten zu labeln.
- Extrahiere die False Negatives und False Positives aus
confusion_matrix(). Du musst die Matrix dafür abflachen. - Einen "good"-Kunden fälschlich als "bad" zu klassifizieren, bedeutet, dass der Bank die Chance auf 10 K Gewinn entgeht. Einen "bad"-Kunden fälschlich als "good" zu klassifizieren, bedeutet, dass die Bank 150 K verliert, weil der Kunde seinen Kredit nicht bedient.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Fit a random forest classifier to the training data
clf = ____(random_state=2).fit(____, ____)
# Label the test data
preds = clf.____(____)
# Get false positives/negatives from the confusion matrix
tn, ____, ____, tp = confusion_matrix(y_test, preds).____()
# Now compute the cost using the manager's advice
cost = fp*____ + fn*____