2017-08-16 2 views
0

Ich studiere Mustererkennung, also mache ich 2 Klassen von Daten und trennte sie mit meinem Modell. Meine Daten können nur zwei Werte annehmen, wahr und falsch.confusionMatrix in R

für meine Ergebnisse habe ich confusionMatrix verwendet, und wenn ich das Ergebnis interpretiere, passiert ein Zweifel.

Kann confusionMatrix mir eine falsche Genauigkeit geben? Zum Beispiel:

Ich habe 10 itens, 5 wahr und 5 falsch, meine Klassifizierer sagen 8 richtig und 2 Unrecht voraus, so sollte 1 falsch sein wahr und wurde klassifiziert falsch war und anderes Element sollte falsch sein und war wahr. In diesem Fall sind die Ergebnisse 5 wahr und 5 falsch. in "Hilfe" von R Studio Ich kann nicht sehen, wenn confusionMatrix Element für Element oder nur Summe der möglichen Ergebnisse vergleichen.

+2

Welches Paket verwenden Sie? Ich nehme "caret" an, aber es gibt andere mit 'confusionMatrix' als Funktion. Könnten Sie auch ein [reproduzierbares Beispiel] (https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) bereitstellen? –

+3

Bitte speichern Sie das RStudio-Tag für Fragen zum Code-Editor RStudio (zum Beispiel, wenn Ihr Code in der Kommandozeile und dem RGui funktioniert hat, aber nicht in RStudio funktioniert). – Gregor

Antwort

0

Was meinen Sie mit falscher Genauigkeit? Implizieren Sie "falsch positiv"? Angesichts Ihrem Fall der Konfusionsmatrix Sieht so etwas wie (A Actual, P stellt Modell sagt voraus):

 A.T A.F 
P.T 4 1 
P.F 1 4 

Nun gibt es mehrere Dinge, die Sie hier berechnen:

wahre positive Rate (Precision) = 4/5

wahre negative Rate (ich glaube, das ist, was Sie suchen) = 4/5

# where model got wrong 

false Positive Rate = 1/5

falsch-negative Rate = 1/5

Genauigkeit (Gesamt was es richtig) = 8/10

#to get the above (not using confusion matrix from `caret`) 

a=4 # correct positives 
b=1 # incorrect positive 
c=4 # correct negative 
d=1 # incorrect negative 

TPR = a/(a+b) 
TNR = d/(c+d) 
FPR = b/(b+d) 
FNR = c/(a+c) 
Accuracy = (a+d)/(a+b+c+d) 
0

Ich bin Konfusionsmatrix aus der Bibliothek "RSNNS" verwenden.

Ich mache ein einfaches Beispiel, um besser zu testen und zu verstehen, wie confucionMatrix von RSNNS funktioniert.

rm(list = ls()) 
library("RSNNS") 


targetsDados <- 1*c(1,0,1,0,1,0,1,0,1,0) 
targetsPredictions <- 1*c(0,1,1,0,1,0,1,0,1,0) 


confusionMatrix(targetsDados,targetsPredictions) 

targetsPredictions haben 2 differents Werte, aber dieselbe Anzahl von '0' und '1' als targetsDados.

Das Ergebnis dieses Skripts ist:

 predictions 
targets 0 1 
     0 4 1 
     1 1 4 

So Konfusionsmatrix mir geben, wie viele Vorhersagen falsch sind, zu vergleichen Punkt für Punkt.