Zum Hauptinhalt springen

Die Konfusionsmatrix in R verstehen

Dieses Tutorial basiert auf Inhalten aus DataCamps Machine Learning Toolbox-Kurs und lässt dich Konfusionsmatrizen in R praktisch üben.
· 3 Min. lesen

Entdecke KI

Wenn du unseren Machine Learning Toolbox-Kurs machen möchtest, findest du hier den Link.

Eine Konfusionsmatrix berechnen

Wie im Video gezeigt, ist eine Konfusionsmatrix ein äußerst nützliches Werkzeug, um die Ausgabe eines Modells zu kalibrieren und alle möglichen Vorhersageergebnisse zu untersuchen (True Positive, True Negative, False Positive, False Negative).

Bevor du die Konfusionsmatrix erstellst, musst du deine vorhergesagten Wahrscheinlichkeiten an einem Schwellenwert „abschneiden“, um daraus Klassen vorhersagen zu können. Das geht in R bequem mit der Funktion ifelse(), z. B. so:

class_prediction <-
  ifelse(probability_prediction > 0.50,
         "positive_class",
         "negative_class"
  )

Mit Base R könntest du eine solche Kreuztabelle mit table() erstellen. confusionMatrix() aus caret liefert dir jedoch zusätzlich zu den Grundraten in der Tabelle viele hilfreiche Kennzahlen. Du berechnest die Konfusionsmatrix (inklusive zugehöriger Statistiken) aus den vorhergesagten und den tatsächlichen Klassen, z. B. so:

confusionMatrix(predicted, actual)

Anleitung

  • Wandle die numerischen Vorhersagen p in einen Vektor mit Klassenprädiktionen namens p_class um, mit einem Cutoff von 0,50. Verwende für die positive Klasse "M" und für die negative Klasse "R", damit die Klassen mit den Originaldaten übereinstimmen.
  • Erstelle eine Konfusionsmatrix mit p_class, den tatsächlichen Werten im test-Datensatz und der Funktion confusionMatrix().

# If p exceeds threshold of 0.5, M else R: m_or_r


# Convert to factor: p_class


# Create confusion matrix

Ergibt das Sinn? Dann weiter zur nächsten Übung! Falls nicht, schau dir dieses Überblicksvideo an.

Überblicksvideo zur Konfusionsmatrix

Von Wahrscheinlichkeiten zur Konfusionsmatrix

Angenommen, du willst ganz sicherstellen, dass dein Modell alle Minen korrekt als Minen erkennt. Dann würdest du statt eines Schwellenwerts von 0,90 eher 0,10 wählen.

Die Konfusionsmatrix erstellst du genauso wie zuvor – diesmal mit den neuen Klassenprädiktionen:

pred <- ifelse(probability > threshold, "M", "R")

Anschließend rufst du confusionMatrix() wie in der vorherigen Übung auf:

confusionMatrix(pred, actual)

# If p exceeds threshold of 0.1, M else R: m_or_r


# Convert to factor: p_class


# Create confusion matrix


Wenn du mehr aus diesem Kurs mitnehmen willst, hier ist der Link.

Themen

Ähnlich

Tutorial

OLS-Regression: Die wichtigsten Ideen erklärt

Tutorial

Python Datenstrukturen Tutorial

Tutorial

Python-Arrays