📜  如何在 r 中制作混淆矩阵 (1)

📅  最后修改于: 2023-12-03 15:08:46.443000             🧑  作者: Mango

如何在 R 中制作混淆矩阵

混淆矩阵可以帮助我们评估分类模型的性能。它是一个表格,显示实际类别和预测类别之间的差异。

在 R 中,我们可以使用 confusionMatrix() 函数来制作混淆矩阵。这个函数是 caret 包的一部分,因此我们需要首先安装并加载 caret 包。

install.packages("caret")
library(caret)

接下来,我们需要准备数据并使用分类模型进行预测。这里我们使用 iris 数据集作为例子,并使用 k-近邻算法进行分类。

# 准备数据
data(iris)
trainIndex <- createDataPartition(iris$Species, p = 0.7, list = FALSE)
trainData <- iris[trainIndex, ]
testData <- iris[-trainIndex, ]

# 训练模型并进行预测
knnModel <- train(Species ~ ., data = trainData, method = "knn")
predictions <- predict(knnModel, testData)

现在我们已经有了预测结果,可以使用 confusionMatrix() 函数制作混淆矩阵了。

# 制作混淆矩阵
confMat <- confusionMatrix(predictions, testData$Species)
print(confMat)

输出结果应该是一个混淆矩阵,显示实际类别和预测类别之间的差异。

Confusion Matrix and Statistics

            Reference
Prediction   setosa versicolor virginica
  setosa         15         0         0
  versicolor      0        18         0
  virginica       0         0        12

Overall Statistics
                                         
               Accuracy : 1              
                 95% CI : (0.9354, 1)    
    No Information Rate : 0.311          
    P-Value [Acc > NIR] : < 2.2e-16      
                                         
                  Kappa : 1              
                                         
 Mcnemar's Test P-Value : NA             

Statistics by Class:

                     Class: setosa Class: versicolor Class: virginica
Sensitivity                  1.0000            1.0000           1.0000
Specificity                  1.0000            1.0000           1.0000
Pos Pred Value               1.0000            1.0000           1.0000
Neg Pred Value               1.0000            1.0000           1.0000
Prevalence                   0.3333            0.3333           0.3333
Detection Rate               0.3333            0.3333           0.3333
Detection Prevalence         0.3333            0.3333           0.3333
Balanced Accuracy            1.0000            1.0000           1.0000

我们可以看到,混淆矩阵显示了 3 种不同的鸢尾花品种实际和预测分类之间的差异。同时,我们还可以看到模型的准确率和其他评估指标。

以上就是使用 R 制作混淆矩阵的方法,希望对大家有所帮助。