2017-06-27 1 views
1

ich mit dieser Verwirrung Matrix Anwendung habe Schwierigkeiten:Confusion Matrix R

lvs <- c("normal", "abnormal") 
truth <- factor(rep(lvs, times = c(86, 258)), 
levels = rev(lvs)) 
pred <- factor(
c(
rep(lvs, times = c(54, 32)), 
rep(lvs, times = c(27, 231))), 
levels = rev(lvs)) 
xtab <- table(pred, truth) 

Grundsätzlich bin ich verwirrt mit Zeilennummer 2, 6 und 7. Im Folgenden finden Sie das Ergebnis nach dem Ausführen des Codes sehen. Aber ich bin immer noch verwirrt, was ich in die Klammern setzen muss. Natürlich weiß ich, dass die Werte nur ein Beispiel waren, aber im Tutorial wurde nicht erklärt, was diese Werte bedeuten.

https://artax.karlin.mff.cuni.cz/r-help/library/caret/html/confusionMatrix.html

truth 
pred abnormal normal 
abnormal 231  32 
normal  27  54 

Vielen Dank für Ihre Hilfe!

Antwort

1

Ich denke, Sie sind mehr darüber verwirrt, wie sie den Datensatz als die confusionMatrix selbst erstellen. Also werde ich versuchen, diese Zeilen Schritt für Schritt zu erklären.

Hier erstellt er nur Ebenen Namen später bei der Datengenerierung verwendet werden.

lvs <- c("normal", "abnormal") 

nun er den Vektor eines Testsatzes zu verwenden, wie wahre Etiketten erzeugt, repliziert er die Namen Ebene mit rep, für jede Ebene er eine bestimmte Anzahl von Malen in dem Funktionsargument setzt. Danach transformiert er den Vektor als factor und weist Ebenen in umgekehrter Reihenfolge des Ebenennamens zu. Die umgekehrte Reihenfolge besteht darin, den Auftrag zu organisieren, der als table die Daten ausgibt.

truth <- factor(rep(lvs, times = c(86, 258)),levels = rev(lvs)) 

Hier ist es das gleiche Verfahren, wie oben, indem er zwei rep Funktionen verbindet nur die Daten chaotisch und Antworten von einem Prädiktor zu simulieren.

pred <- factor(c(rep(lvs, times = c(54, 32)), 
        rep(lvs, times = c(27, 231))), 
        levels = rev(lvs)) 

Endlich verwenden Sie die table Funktion, um eine Verwechslungsmatrix zu erstellen, und mit dieser Tabelle können Sie viele Kennzahlen wie Gesamtgenauigkeit, Sensibilität, Spezifität analysieren. Diese Metriken werden bereits mit caret::confusionMatrix berechnet.

xtab <- table(pred, truth) 
caret::confusionMatrix(pred, truth) 

Die Klasse zugewiesen als Positive Klasse ist der erste Name des Niveaus Vektors in der Faktor-Instanz.