2017-08-16 4 views
0

J'étudie la reconnaissance de formes, donc je fais 2 classes de données et je les ai séparées en utilisant mon modèle. Mes données peuvent uniquement supposer deux valeurs, vrai et faux. Pour tracer mes résultats, j'ai utilisé confusionMatrix, et quand j'ai interprété le résultat, un doute se produit.confusionMatrix dans R

Est-ce que confusionMatrix peut me donner une fausse précision? Par exemple:

J'ai 10 Itens, 5 vrai et 5 faux, mon classificateur prédisent 8 correctes et 2 fautes, donc 1 de faux devrait être vrai et a été classé était faux et l'autre élément devrait être faux et était vrai. Dans ce cas, le résultat est 5 vrai et 5 faux. dans "Aide" de R Studio Je ne vois pas si confusionMatrix compare élément par élément ou seule somme des résultats possibles.

+2

Quel paquet utilisez-vous? J'assume 'caret' mais il y en a d'autres avec' confusionMatrix' en tant que fonction. Aussi, pourriez-vous fournir un [exemple reproductible] (https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)? –

+3

S'il vous plaît enregistrer la balise RStudio pour des questions sur l'éditeur de code RStudio (par exemple, si votre code a travaillé sur la ligne de commande et le RGui, mais n'a pas fonctionné dans RStudio). – Gregor

Répondre

0

Qu'entendez-vous par fausse précision? Impliquez-vous «Faux positif»? Compte tenu de votre cas, la matrice de confusion ressemble à quelque chose comme (A représente réelle, P représente le modèle prédit):

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

Maintenant, il y a plusieurs choses que vous pouvez calculer ici:

Taux vrai positif (Précision) = 4/5

taux réel négatif (je pense que c'est ce que vous cherchez) = 4/5

# where model got wrong 

False positive Rate = 1/5

Taux de faux négatifs = 1/5

Précision (dans l'ensemble ce qu'il a droit) = 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

Je utilise la bibliothèque "de matrice de confusion RSNNS".

Je fais un exemple simple pour tester et mieux comprendre comment confucionMatrix de RSNNS fonctionne.

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 ont 2 valeurs différents, mais même nombre de '0' et '1' de targetsDados.

Le résultat de ce script est:

 predictions 
targets 0 1 
     0 4 1 
     1 1 4 

Alors donnez-moi à matrice de confusion combien de prédictions sont fausses, en comparant point par point.