5

我有以下混淆矩阵,现在我需要从中计算精度、召回率和 FScore,我该如何使用获得的值来做到这一点?混淆矩阵和统计

      Reference
Prediction One Zero
      One   37   43
      Zero  19  131

               Accuracy : 0.7304          
                 95% CI : (0.6682, 0.7866)
    No Information Rate : 0.7565          
    P-Value [Acc > NIR] : 0.841087        

                  Kappa : 0.3611          
 Mcnemar's Test P-Value : 0.003489        

            Sensitivity : 0.6607          
            Specificity : 0.7529          
         Pos Pred Value : 0.4625          
         Neg Pred Value : 0.8733          
             Prevalence : 0.2435          
         Detection Rate : 0.1609          
   Detection Prevalence : 0.3478          
      Balanced Accuracy : 0.7068          

       'Positive' Class : One

根据其他用户的建议,我使用了以下编辑过的代码

library(class)
library(e1071)
library(caret)
library(party)
library(nnet)
library(forecast)
pimad <- read.csv("C:/Users/USER/Desktop/AMAN/pimad.csv")
nrow(pimad)  
set.seed(9850)
gp<-runif(nrow(pimad))
pimad<-pimad[order(gp),]
idx <- createDataPartition(y = pimad$class, p = 0.7, list = FALSE)
train<-pimad[idx,]
test<-pimad[-idx,]
svmmodel<-svm(class~.,train,kernel="radial")
psvm<-predict(svmmodel,test)
table(psvm,test$class)
library(sos)
findFn("confusion matrix precision recall FScore")
df<-(confusionMatrix(test$class, psvm))
dim(df)
df[1,2]/sum(df[1,2:3])
df
4

3 回答 3

6

您无需做任何其他事情,您已经在 df.xml 中获得了所有要求的措施。只需输入:

ls(df) [1] "byClass" "dots" "mode" "overall" "positive" "table"

df$byClass # 这是我研究过的另一个例子

现在所有参数,包括灵敏度、特异性、pos pred val、neg pred val、precision、recall、F1、流行度、检测率、检测流行度和平衡准确度都显示在一个表格中

于 2016-11-30T05:23:30.753 回答
1

好吧,这是对矩阵进行子集化的简单计算。

如果您的混淆矩阵被调用,请使用此处此处df的公式:

df
  Prediction One Zero
1        One  37   43
2       Zero  19  131

# Precision: tp/(tp+fp):
df[1,1]/sum(df[1,1:2])
[1] 0.4625

# Recall: tp/(tp + fn):
df[1,1]/sum(df[1:2,1])
[1] 0.6607143

# F-Score: 2 * precision * recall /(precision + recall):
2 * 0.4625 * 0.6607143 / (0.4625 + 0.6607143)
[1] 0.5441177
于 2015-11-07T12:36:47.887 回答
0
cm<-confusionMatrix(table(test_actual,test_predicted))
cm$byclass
cm$overall

注1:cm是R的插入符号库获得的confusionMatrix

NOTE 2: cm$byclass 给出:Sensitivity,Specificity,Pos Pred Value,Neg Pred Value, Precision, Recall,F1,Prevalence,Detection Rate Detection Prevalence Balanced Accuracy

注 3:cm$overall 给出 Accuracy、Kappa、AccuracyLower、AccuracyUpper、AccuracyNull、AccuracyPValue

于 2021-08-21T19:11:48.977 回答