Weiter zum Inhalt

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.
Aktualisiert 18. Sept. 2026  · 3 Min. lesen

Mit KI erkunden

ChatGPTClaudePerplexity

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().
eyJsYW5ndWFnZSI6InIgIiwicHJlX2V4ZXJjaXNlX2NvZGUiOiJcbmxpYnJh cnkoY2FyZXQpXG5saWJyYXJ5KG1sYmVuY2gpXG5kYXRhKFwiU29uYXJcIilcblxuZG93bmxvYWQuZmlsZShcImh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2Fzc2V0cy5kYXRhY2FtcC5jb20vcHJvZHVjdGlvbi9jb3Vyc2VfMTE2My9kYXRhc2V0cy9Tb25hcl90cmFpbi5yZHNcIixcbiAgICAgICAgICAgICAgZGVzdGZpbGUgPSBcIlNvbmFyX3RyYWluLnJkc1wiKVxuZG93bmxvYWQuZmlsZShcImh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2Fzc2V0cy5kYXRhY2FtcC5jb20vcHJvZHVjdGlvbi9jb3Vyc2VfMTE2My9kYXRhc2V0cy9Tb25hcl90ZXN0LnJkc1wiLFxuICAgICAgICAgICAgICBkZXN0ZmlsZSA9IFwiU29uYXJfdGVzdC5yZHNcIilcbnRyYWluIDwtIHJlYWRSRFMoXCJTb25hcl90cmFpbi5yZHNcIilcbnRlc3QgPC0gcmVhZFJEUyhcIlNvbmFyX3Rlc3QucmRzXCIpXG5cbmZpeF9jbGFzcyA8LSBmdW5jdGlvbih4KXtcbiAgaWZlbHNlKHggPT0gXCJNXCIsIDEsIDApXG59XG50cmFpbltbXCJDbGFzc1wiXV0gPC0gZml4X2NsYXNzKHRyYWluW1tcIkNsYXNzXCJdXSlcblxuIyBGaXQgZ2xtIG1vZGVsXG5tb2RlbCA8LSBnbG0oQ2xhc3MgfiAuLCBmYW1pbHkgPSBcImJpbm9taWFsXCIsIHRyYWluKVxuXG4jIFByZWRpY3Qgb24gdGVzdFxucCA8LSBwcmVkaWN0KG1vZGVsLCB0ZXN0LCB0eXBlID0gXCJyZXNwb25zZVwiKSIsInNhbXBsZSI6IlxuIyBJZiBwIGV4Y2VlZHMgdGhyZXNob2xkIG9mIDAuNSwgTSBlbHNlIFI6IG1fb3JfclxuXG5cbiMgQ29udmVydCB0byBmYWN0b3I6IHBfY2xhc3NcblxuXG4jIENyZWF0ZSBjb25mdXNpb24gbWF0cml4Iiwic29sdXRpb24iOiJcbiMgSWYgcCBleGNlZWRzIHRocmVzaG9sZCBvZiAwLjUsIE0gZWxzZSBSOiBtX29yX3Jcbm1fb3JfciA8LSBpZmVsc2UocCA+IDAuNSwgXCJNXCIsIFwiUlwiKVxuXG4jIENvbnZlcnQgdG8gZmFjdG9yOiBwX2NsYXNzXG5wX2NsYXNzIDwtIGZhY3RvcihtX29yX3IsIGxldmVscyA9IGxldmVscyh0ZXN0W1tcIkNsYXNzXCJdXSkpXG5cbiMgQ3JlYXRlIGNvbmZ1c2lvbiBtYXRyaXhcbmNvbmZ1c2lvbk1hdHJpeChwX2NsYXNzLCB0ZXN0W1tcIkNsYXNzXCJdXSkiLCJzY3QiOiJcbnRlc3Rfb2JqZWN0KFwicF9jbGFzc1wiLCB1bmRlZmluZWRfbXNnID0gXCJEb24ndCBmb3JnZXQgdG8gY3JlYXRlIGBwX2NsYXNzYCwgYSBmYWN0b3Igb2YgY2xhc3MgcHJlZGljdGlvbnMuXCIsIGluY29ycmVjdF9tc2cgPSBcIkRpZCB5b3UgY3JlYXRlIGBwX2NsYXNzYCB3aXRoIGxldmVscyBgJ00nYCBhbmQgYCdSJ2A/XCIpXG50ZXN0X2Z1bmN0aW9uKFwiY29uZnVzaW9uTWF0cml4XCIsIGFyZ3MgPSBjKFwiZGF0YVwiLCBcInJlZmVyZW5jZVwiKSwgaW5jb3JyZWN0X21zZyA9IFwiRGlkIHlvdSBjcmVhdGUgdGhlIGNvbmZ1c2lvbiBtYXRyaXggYnkgY2FsbGluZyBgY29uZnVzaW9uTWF0cml4KClgIG9uIHRoZSBwcmVkaWN0ZWQgX2NsYXNzXyB2YWx1ZXMgYW5kIHRoZSBhY3R1YWwgdmFsdWVzP1wiKVxudGVzdF9lcnJvcigpXG5zdWNjZXNzX21zZyhcIkdyZWF0IHdvcmshXCIpIiwiaGludCI6IlxuLSBgYGlmZWxzZSgpYGAgdGFrZXMgMyBhcmd1bWVudHM6IGEgbG9naWNhbCBjb25kaXRpb24sIGEgdmFsdWUgdG8gdGFrZSB3aGVuIHRoZSBjb25kaXRpb24gaXMgbWV0LCBhbmQgYSB2YWx1ZSBmb3Igd2hlbiBpdCBpcyBub3QgbWV0LlxuLSBUaGUgZmFjdG9yIGxldmVscyBzaG91bGQgYmUgYGBcIk1cImBgIGFuZCBgYFwiUlwiYGAgKGluIHRoYXQgb3JkZXIpLlxuLSBgYGNvbmZ1c2lvbk1hdHJpeCgpYGAgdGFrZXMgYHBfY2xhc3NgIGFuZCBgYHRlc3RbW1wiQ2xhc3NcIl1dYGAgYXMgYXJndW1lbnRzLiJ9

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)
eyJsYW5ndWFnZSI6InIgIiwicHJlX2V4ZXJjaXNlX2NvZGUiOiJcbmxpYnJh cnkoY2FyZXQpXG5saWJyYXJ5KG1sYmVuY2gpXG5kYXRhKFwiU29uYXJcIilcblxuZG93bmxvYWQuZmlsZShcImh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2Fzc2V0cy5kYXRhY2FtcC5jb20vcHJvZHVjdGlvbi9jb3Vyc2VfMTE2My9kYXRhc2V0cy9Tb25hcl90cmFpbi5yZHNcIixcbiAgICAgICAgICAgICAgZGVzdGZpbGUgPSBcIlNvbmFyX3RyYWluLnJkc1wiKVxuZG93bmxvYWQuZmlsZShcImh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2Fzc2V0cy5kYXRhY2FtcC5jb20vcHJvZHVjdGlvbi9jb3Vyc2VfMTE2My9kYXRhc2V0cy9Tb25hcl90ZXN0LnJkc1wiLFxuICAgICAgICAgICAgICBkZXN0ZmlsZSA9IFwiU29uYXJfdGVzdC5yZHNcIilcbnRyYWluIDwtIHJlYWRSRFMoXCJTb25hcl90cmFpbi5yZHNcIilcbnRlc3QgPC0gcmVhZFJEUyhcIlNvbmFyX3Rlc3QucmRzXCIpXG5cbmZpeF9jbGFzcyA8LSBmdW5jdGlvbih4KXtcbiAgaWZlbHNlKHggPT0gXCJNXCIsIDEsIDApXG59XG50cmFpbltbXCJDbGFzc1wiXV0gPC0gZml4X2NsYXNzKHRyYWluW1tcIkNsYXNzXCJdXSlcblxuIyBGaXQgZ2xtIG1vZGVsXG5tb2RlbCA8LSBnbG0oQ2xhc3MgfiAuLCBmYW1pbHkgPSBcImJpbm9taWFsXCIsIHRyYWluKVxuXG4jIFByZWRpY3Qgb24gdGVzdFxucCA8LSBwcmVkaWN0KG1vZGVsLCB0ZXN0LCB0eXBlID0gXCJyZXNwb25zZVwiKVxuIiwic2FtcGxlIjoiXG4jIElmIHAgZXhjZWVkcyB0aHJlc2hvbGQgb2YgMC4xLCBNIGVsc2UgUjogbV9vcl9yXG5cblxuIyBDb252ZXJ0IHRvIGZhY3RvcjogcF9jbGFzc1xuXG5cbiMgQ3JlYXRlIGNvbmZ1c2lvbiBtYXRyaXhcbiIsInNvbHV0aW9uIjoiXG4jIElmIHAgZXhjZWVkcyB0aHJlc2hvbGQgb2YgMC4xLCBNIGVsc2UgUjogbV9vcl9yXG5tX29yX3IgPC0gaWZlbHNlKHAgPiAwLjEsIFwiTVwiLCBcIlJcIilcblxuIyBDb252ZXJ0IHRvIGZhY3RvcjogcF9jbGFzc1xucF9jbGFzcyA8LSBmYWN0b3IobV9vcl9yLCBsZXZlbHMgPSBsZXZlbHModGVzdFtbXCJDbGFzc1wiXV0pKVxuXG4jIENyZWF0ZSBjb25mdXNpb24gbWF0cml4XG5jb25mdXNpb25NYXRyaXgocF9jbGFzcywgdGVzdFtbXCJDbGFzc1wiXV0pIiwic2N0IjoiXG50ZXN0X29iamVjdChcInBfY2xhc3NcIiwgdW5kZWZpbmVkX21zZyA9IFwiRG9uJ3QgZm9yZ2V0IHRvIGNyZWF0ZSBgcF9jbGFzc2AsIGEgZmFjdG9yIG9mIGNsYXNzIHByZWRpY3Rpb25zLlwiLCBpbmNvcnJlY3RfbXNnID0gXCJEaWQgeW91IGNyZWF0ZSBgcF9jbGFzc2Agd2l0aCBsZXZlbHMgYCdNJ2AgYW5kIGAnUidgP1wiKVxudGVzdF9mdW5jdGlvbihcImNvbmZ1c2lvbk1hdHJpeFwiLCBhcmdzID0gYyhcImRhdGFcIiwgXCJyZWZlcmVuY2VcIiksIGluY29ycmVjdF9tc2cgPSBcIkRpZCB5b3UgY3JlYXRlIHRoZSBjb25mdXNpb24gbWF0cml4IGJ5IGNhbGxpbmcgYGNvbmZ1c2lvbk1hdHJpeCgpYCBvbiB0aGUgcHJlZGljdGVkIF9jbGFzc18gdmFsdWVzIGFuZCB0aGUgYWN0dWFsIHZhbHVlcz9cIilcbnRlc3RfZXJyb3IoKVxuc3VjY2Vzc19tc2coXCJBd2Vzb21lISBOb3RlIHRoYXQgdGhlcmUgYXJlIChzbGlnaHRseSkgbW9yZSBwcmVkaWN0ZWQgbWluZXMgd2l0aCB0aGlzIGxvd2VyIHRocmVzaG9sZDogNTggKDQwICsgMTgpIGFzIGNvbXBhcmVkIHRvIDQ3IGZvciB0aGUgMC41MCB0aHJlc2hvbGQuXCIpIiwiaGludCI6IlxuLSBgYGlmZWxzZSgpYGAgdGFrZXMgMyBhcmd1bWVudHM6IGEgbG9naWNhbCBjb25kaXRpb24sIGEgdmFsdWUgdG8gdGFrZSB3aGVuIHRoZSBjb25kaXRpb24gaXMgbWV0LCBhbmQgYSB2YWx1ZSBmb3Igd2hlbiBpdCBpcyBub3QgbWV0LlxuLSBUaGUgZmFjdG9yIGxldmVscyBzaG91bGQgYmUgYGBcIk1cImBgIGFuZCBgYFwiUlwiYGAgKGluIHRoYXQgb3JkZXIpLlxuLSBgYGNvbmZ1c2lvbk1hdHJpeCgpYGAgdGFrZXMgYHBfY2xhc3NgIGFuZCBgYHRlc3RbW1wiQ2xhc3NcIl1dYGAgYXMgYXJndW1lbnRzLiJ9


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

Themen
R
Datenwissenschaft

R-Kurse

Kurs

Maschinelles Lernen mit caret in R

4 Std.
60.8K
In diesem Kurs lernst du die wichtigsten Konzepte des maschinellen Lernens kennen, zum Beispiel wie man Vorhersagemodelle erstellt und bewertet.
Details anzeigenRight Arrow
Kurs Starten
Mehr anzeigenRight Arrow