R语言confusionMatrix()函数解析
时间: 2024-05-12 08:19:51 浏览: 182
confusionMatrix()函数是R语言中一个用于计算混淆矩阵的函数。它可以根据实际和预测值计算出分类模型的性能指标,例如准确率、召回率、F1分数和AUC等。
函数的基本语法如下:
confusionMatrix(data, reference, positive = NULL, dnn = c("Prediction", "Reference"), ...)
其中,参数说明如下:
- data:一个向量、矩阵或数据框,包含预测结果。
- reference:一个向量、矩阵或数据框,包含真实结果。
- positive:一个标量或字符向量,表示正类别的名称。
- dnn:一个字符向量,表示列名。
- ...:其他可选参数。
函数返回一个包含混淆矩阵和性能指标的列表。
混淆矩阵是一个二维表格,其中行表示真实类别,列表示预测类别。表格中的每个元素表示实际属于该行类别的样本被预测为该列类别的数量。根据混淆矩阵,可以计算出分类模型的准确率、召回率、F1分数和AUC等性能指标。
例如,假设有一个二分类模型,对100个样本进行预测,其中60个样本属于正类别,40个样本属于负类别。模型预测结果如下:
```r
# 随机生成100个样本的预测结果
set.seed(123)
pred <- sample(c("Positive", "Negative"), 100, replace = TRUE, prob = c(0.6, 0.4))
```
真实结果如下:
```r
# 随机生成100个样本的真实结果
set.seed(123)
ref <- sample(c("Positive", "Negative"), 100, replace = TRUE, prob = c(0.6, 0.4))
```
使用confusionMatrix()函数计算混淆矩阵和性能指标:
```r
library(caret)
cm <- confusionMatrix(pred, ref, positive = "Positive")
cm
```
输出结果如下:
```r
Confusion Matrix and Statistics
Reference
Prediction Negative Positive
Negative 17 16
Positive 12 55
Accuracy : 0.72
95% CI : (0.6168, 0.8082)
No Information Rate : 0.6
P-Value [Acc > NIR] : 0.05072
Kappa : 0.3934
Mcnemar's Test P-Value : 0.18473
Sensitivity : 0.8209
Specificity : 0.6579
Pos Pred Value : 0.7843
Neg Pred Value : 0.6962
Prevalence : 0.6000
Detection Rate : 0.4920
Detection Prevalence : 0.6270
Balanced Accuracy : 0.7394
'Positive' Class : Positive
```
输出结果中包含了混淆矩阵和一些性能指标,例如准确率、召回率、F1分数和AUC等。可以根据需要来选择性能指标。
阅读全文