从 R 中的混淆矩阵中得到 "Accuracy (average)"

get "Accuracy (average)" from confusion Matrix in R

我有以下混淆矩阵:

confusionMatrix(test_gbm)

Cross-Validated (60 fold) Confusion Matrix 

(entries are percentual average cell counts across resamples)

Prediction    A    B    C    D    E
Reference A 28.0  0.6  0.0  0.0  0.0
          B  0.3 18.3  0.6  0.1  0.2
          C  0.1  0.5 16.6  0.5  0.2
          D  0.0  0.0  0.2 15.7  0.2
          E  0.0  0.0  0.0  0.1 17.8

      Accuracy (average) : 0.9635

我想以编程方式提取准确性。

这是海峡数据

List of 4
 $ table: table [1:5, 1:5] 27.9941 0.2905 0.1019 0.0408 0.0102 ...
  ..- attr(*, "dimnames")=List of 2
  .. ..$ Prediction: chr [1:5] "A" "B" "C" "D" ...
  .. ..$ Reference : chr [1:5] "A" "B" "C" "D" ...
 $ norm : chr "overall"
 $ B    : int 60
 $ text : chr "Cross-Validated (60 fold) Confusion Matrix"
  - attr(*, "class")= chr [1:2] "confusionMatrix.train" "confusionMatrix.train.formula"

我似乎无法弄清楚它的存储位置。

在这种情况下,准确度未存储在 confusionMatrix 对象中,但似乎是根据混淆矩阵本身动态计算的。尽管如此,你也可以自己计算准确率,因为它只是混淆矩阵对角线元素的总和。

假设您将混淆矩阵存储在一个名为 cm 的对象中。那么准确率是:

sum(diag(cm$table))/100

或者,不存储混淆矩阵对象:

sum(diag(confusionMatrix(test_gbm)$table))/100