[英]Need to apply confusionMatrix from caret to an already computed confusion matrix
我有一個混淆矩陣,該矩陣是使用保存在文本文件中的另一個軟件計算的。 該文件中沒有出現4個類。 我們可以引用C1,C2,C3,C4類。 輸入文件conf_mat.txt的內容如下所示:
830 0 10 0
0 1262 18 0
3 37 1262 18
1 0 5 1314
我讀文件如下:
cm <- read.table("conf_mat.txt")
它看起來如下:
V1 V2 V3 V4
1 830 0 10 0
2 0 1262 18 0
3 3 37 1262 18
4 1 0 5 1314
我需要根據這些矩陣的敏感性,特異性,F1等,使用byClass計算統計信息,因此confusionMatrix確實有用。 但是我沒有依次獲得每個樣本的實際列表和預測列表。
萬一這以后可能對某人有所幫助,這就是我找到的答案。
我根據輸入混淆矩陣的列構造了這些類:
class0 <- rep(c('C0', 'C1', 'C2', 'C3'), cm[,1])
class1 <- rep(c('C0', 'C1', 'C2', 'C3'), cm[,2])
class2 <- rep(c('C0', 'C1', 'C2', 'C3'), cm[,3])
class3 <- rep(c('C0', 'C1', 'C2', 'C3'), cm[,4])
我用正確的類制作了一個數組:
trueClass <- c(rep('C0', sum(cm[,1])), rep('C1', sum(cm[,2])), rep('C2', sum(cm[,3])), rep('C3', sum(cm[,4])))
還有一個與預測的:
predictedClass <- c(class0, class1, class2, class3)
然后將confusionMatrix應用於兩個數組
newCM <- confusionMatrix(predictedClass, trueClass)
newCM
這會導致從文本文件讀取相同的混淆矩陣,但會計算其他統計信息。
Confusion Matrix and Statistics
Reference
Prediction C0 C1 C2 C3
C0 830 0 10 0
C1 0 1262 18 0
C2 3 37 1262 18
C3 1 0 5 1314
Overall Statistics
Accuracy : 0.9807
95% CI : (0.9763, 0.9844)
No Information Rate : 0.2798
P-Value [Acc > NIR] : < 2.2e-16
Kappa : 0.974
Mcnemar's Test P-Value : NA
Statistics by Class:
Class: C0 Class: C1 Class: C2 Class: C3
Sensitivity 0.9952 0.9715 0.9745 0.9865
Specificity 0.9975 0.9948 0.9833 0.9982
Pos Pred Value 0.9881 0.9859 0.9561 0.9955
Neg Pred Value 0.9990 0.9894 0.9904 0.9948
Prevalence 0.1752 0.2729 0.2721 0.2798
Detection Rate 0.1744 0.2651 0.2651 0.2761
Detection Prevalence 0.1765 0.2689 0.2773 0.2773
Balanced Accuracy 0.9963 0.9832 0.9789 0.9924
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.