R中的百分比混淆矩阵

8

如何在R中获取百分比(或1的分数)的混淆矩阵。 “caret”包提供了有用的函数,但显示样本的绝对数量。

library(caret)
data(iris)
T <- iris$Species
P <- sample(iris$Species)
confusionMatrix(P, T)
Confusion Matrix and Statistics
             Reference
Prediction   setosa versicolor virginica
setosa         15         16        19
versicolor     19         16        15
virginica      16         18        16

prop.table(confusionMatrix(P, T)$table, {1|2}) 该代码是用于计算分类模型的混淆矩阵并计算行或列的比例。 - chl
1
如果您已经得到了答案,那么接受答案是一种礼貌的行为,这样问题就可以标记为已解决。 - cdeterman
1个回答

7

如果您需要所有的汇总统计信息,caret函数非常棒。如果您只关心“百分比”混淆矩阵,则可以直接使用prop.tabletable。另外,以后请将严格的编程问题发布到stackoverflow而不是CrossValidated。

prop.table(table(P,T))
> prop.table(table(P,T))
            T
P                setosa versicolor  virginica
  setosa     0.11333333 0.10666667 0.11333333
  versicolor 0.09333333 0.13333333 0.10666667
  virginica  0.12666667 0.09333333 0.11333333

如果您想保留caret的摘要统计信息,只需在混淆矩阵对象上使用prop.table即可。
prop.table(caret::confusionMatrix(P,T)$table)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接