混淆矩阵R

时间:2017-06-27 14:06:39

标签: r confusion-matrix

我正在努力解决这个混乱矩阵应用程序:

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)

基本上,我对第2代,第6行和第7行感到困惑。下面您可以在运行代码后看到结果。但我仍然感到困惑,我必须把它放在括号内。当然,我知道这些值只是一个例子,但在教程中并没有解释这些值的含义。

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

truth
pred   abnormal  normal
abnormal   231       32
normal     27        54

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我认为你对他们创建数据集的方式比对 confusionMatrix 本身更加困惑。所以我将尝试逐步解释这些问题。

在这里,他只是创建了稍后在数据生成中使用的级别名称。

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

现在,他生成了一个矢量用作测试集的真实标签,他用rep复制了级别名称,对于每个级别,他设置了一个特定的次数。函数参数。然后,他将向量转换为factor,并按级别名称的相反顺序指定级别。相反的顺序是组织函数table将输出数据的顺序。

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

在这里,它与上面的过程相同,加入两个rep函数只是为了弄乱数据并模拟预测器的响应

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

最后,使用table函数创建混淆矩阵,使用此表可以分析许多指标,如总体准确性,敏感性和特异性。已使用caret::confusionMatrix计算这些指标。

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

指定为正类的类是因子实例中级别向量的第一个名称。

相关问题