2017-08-16 130 views
0

我正在学习模式识别,所以我制作了两类数据并使用我的模型进行分隔。 我的数据只能假设两个值,true和false。confusionMatrix in R

用于绘制我的结果我使用了confusionMatrix,当我解释结果时会发生疑问。

可confusionMatrix给我一个错误的准确性?例如:

我有10个itens,5个true和5个false,我的分类器预测8个正确和2个错误,所以错误1应该是true,并且被分类为false,其他项目应该是false并且是真实的。 在这种情况下,结果是5真5假。 R Studio中的“帮助”中的 我无法看到confusionMatrix是逐项比较还是仅可能结果的总和。

+2

你正在使用哪个包?我假设'caret'然而有其他'confusionMatrix'作为一个函数。另外,你能提供一个[可重现的例子](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)? –

+3

有关代码编辑器RStudio的问题,请保存RStudio标签(例如,如果您的代码在命令行和RGui上工作,但在RStudio中不工作)。 – Gregor

回答

0

你是什么意思的错误的准确性?你是否暗示'假正面'?鉴于你的情况下,混淆矩阵看起来像(A代表实际,P代表模型预测):

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

现在有许多东西你可以计算出在这里:

真阳性率(精密)= 4/5

真阴性率(我认为这是你在找什么)= 4/5

# where model got wrong 

误报率= 1/5

假阴性率= 1/5

精度(总体什么了右)=使用混淆矩阵从图书馆 “RSNNS” 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

I'm。

我做了一个简单的例子来测试和更好地理解来自RSNNS的confucionMatrix是如何工作的。

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有2个不同的值,但是与targetsDados的'0'和'1'数目相同。

这个脚本的结果是:

 predictions 
targets 0 1 
     0 4 1 
     1 1 4 

所以混淆矩阵给我多少的预测是错误的,由项目比较项目。