📜  r 标尺混淆矩阵 - R 编程语言(1)

📅  最后修改于: 2023-12-03 14:46:52.701000             🧑  作者: Mango

R 标尺混淆矩阵

在机器学习领域中,评估分类模型的性能非常重要。混淆矩阵是一种常见的评估分类算法性能的工具。在 R 编程语言中,我们可以使用 confusionMatrix() 来创建混淆矩阵。

安装和加载库

要使用混淆矩阵,我们需要安装并加载 caret 库。

install.packages('caret')
library(caret)
创建混淆矩阵

confusionMatrix() 函数接受两个向量。一个是预测结果,另一个是真实标签。我们可以使用这些向量来创建混淆矩阵。

# 构造预测结果和真实标签
predicted <- c('a', 'b', 'b', 'a', 'a', 'a', 'a', 'b', 'b', 'b')
actual <- c('a', 'b', 'a', 'a', 'b', 'a', 'b', 'b', 'b', 'a')

# 创建混淆矩阵
cm <- confusionMatrix(predicted, actual)

# 打印混淆矩阵
print(cm)

结果:

Confusion Matrix and Statistics

          Reference
Prediction a b
         a 3 1
         b 2 4
                                           
               Accuracy : 0.7             
                 95% CI : (0.355, 0.9246)
    No Information Rate : 0.5             
    P-Value [Acc > NIR] : 0.2659          
                                           
                  Kappa : 0.2857          
                                           
 Mcnemar's Test P-Value : 1.0000          

Statistics by Class:

                     Class: a Class: b
Sensitivity            0.6000   0.8000
Specificity            0.8000   0.6000
Pos Pred Value         0.7500   0.5714
Neg Pred Value         0.6667   0.8333
Prevalence             0.5000   0.5000
Detection Rate         0.3000   0.4000
Detection Prevalence   0.4000   0.7000
Balanced Accuracy      0.7000   0.7000

混淆矩阵以表格的形式展示了预测结果和真实标签之间的各种情况。例如,我们可以看到在 3 个真正例(a)中,有一个被预测为假反例(b),在 4 个真反例(b)中,有两个被预测为真正例(a)。

解释混淆矩阵

在上面的例子中,我们看到混淆矩阵以多种形式提供了有关分类模型性能的有用信息。下面是一些摘录:

  • 准确率(Accuracy):分类器正确预测的样本数与总样本数之比。在此示例中,准确率为 70%。
  • Kappa:表示分类器的精度,并考虑到分类器可能由于随机的原因而分类。在此示例中,kappa 为 0.29。
  • 灵敏度(Sensitivity):真正例被预测为真正例的比率。在此示例中,真正例(a)的灵敏度为 60%。
  • 特异度(Specificity):真反例被正确预测为真反例的比率。在此示例中,真反例(b)的特异度为 60%。
结论

混淆矩阵是一种用于评估分类模型性能的工具。在 R 中,我们可以使用 confusionMatrix() 函数创建混淆矩阵,并从中获得有用的信息。