如何计算精度 F1-Score 精密灵敏度等

How to calculate Accuracy F1-Score Precision Sensitivity etc

我正在努力学习 R。所以我在互联网上找到了一些实践,这就是其中之一。我想根据这段代码计算准确度、F1 分数、精度、灵敏度等。但我什至无法计算混淆矩阵。 我应该怎么办?有谁帮忙

net = neuralnet(formul,data=train_data,hidden=5,linear.output=FALSE)
plot(net)
predict_net_test <- compute(net,test_data[,1:9])
predict_result<-round(predict_net_test$net.result, digits = 0)
net.prediction = c("benign", "malignant")[apply(predict_result, 1, which.max)]
predict.table = table(cleanedData$Class[-index], net.prediction)
predict.table

CrossTable(x = cleanedData$Class[-index], y = net.prediction,
       prop.chisq=FALSE)

不太确定为什么要从另一个数据帧 cleanedData 调用实际标签以及您正在使用的包。请日后提供。您有混淆矩阵,只需将其输入插入符号的 confusionMatrix() 以获得统计信息,例如:

library(caret)
library(neuralnet)

dat = data.frame(matrix(runif(1000),100))
dat$Class = sample(c("benign", "malignant"),100,replace=TRUE)
dat$Class = factor(dat$Class)

train_data = dat[1:70,]
test_data = dat[71:100,]

net = neuralnet(Class ~ .,data=train_data,hidden=5,linear.output=FALSE)
predict_net_test = c("benign", "malignant")[max.col(predict(net,test_data))]

你需要把预测放在第一位:

predict.table = table(predict_net_test,test_data$Class)

然后:

confusionMatrix(predict.table,positive="malignant")
                
predict_net_test benign malignant
       benign         5         7
       malignant     10         8
                                          
               Accuracy : 0.4333          
                 95% CI : (0.2546, 0.6257)
    No Information Rate : 0.5             
    P-Value [Acc > NIR] : 0.8192          
                                          
                  Kappa : -0.1333         
                                          
 Mcnemar's Test P-Value : 0.6276          
                                          
            Sensitivity : 0.5333          
            Specificity : 0.3333          
         Pos Pred Value : 0.4444          
         Neg Pred Value : 0.4167          
             Prevalence : 0.5000          
         Detection Rate : 0.2667          
   Detection Prevalence : 0.6000          
      Balanced Accuracy : 0.4333          
                                          
       'Positive' Class : malignant 

为了精确召回,做:

    confusionMatrix(predict.table,positive="malignant",mode = "prec_recall")

Confusion Matrix and Statistics

                
predict_net_test benign malignant
       benign         3         8
       malignant     10         9
                                         
               Accuracy : 0.4            
                 95% CI : (0.2266, 0.594)
    No Information Rate : 0.5667         
    P-Value [Acc > NIR] : 0.9782         
                                         
                  Kappa : -0.2442        
                                         
 Mcnemar's Test P-Value : 0.8137         
                                         
              Precision : 0.4737         
                 Recall : 0.5294         
                     F1 : 0.5000         
             Prevalence : 0.5667         
         Detection Rate : 0.3000         
   Detection Prevalence : 0.6333         
      Balanced Accuracy : 0.3801         
                                         
       'Positive' Class : malignant