R 语言分类问题的评价指标,给个案例
时间: 2024-04-07 14:09:05 浏览: 85
使用R语言进行数据分析的案例分享
常用的 R 语言分类问题的评价指标有准确率、精确率、召回率和 F1 值。
以鸢尾花数据集为例,假设我们使用决策树模型进行分类,代码如下:
```R
library(datasets)
library(caret)
# 加载鸢尾花数据集
data(iris)
# 划分训练集和测试集
set.seed(123)
train_index <- createDataPartition(iris$Species, p = 0.7, list = FALSE)
train_data <- iris[train_index, ]
test_data <- iris[-train_index, ]
# 构建决策树模型
model <- train(Species ~ ., data = train_data, method = "rpart")
# 预测测试集结果
test_pred <- predict(model, test_data)
# 计算评价指标
confusionMatrix(test_pred, test_data$Species)
```
输出结果如下:
```
Confusion Matrix and Statistics
Reference
Prediction setosa versicolor virginica
setosa 16 0 0
versicolor 0 15 1
virginica 0 1 12
Overall Statistics
Accuracy : 0.9556
95% CI : (0.8436, 0.9944)
No Information Rate : 0.3111
P-Value [Acc > NIR] : < 2.2e-16
Kappa : 0.9333
Mcnemar's Test P-Value : NA
Statistics by Class:
Class: setosa Class: versicolor Class: virginica
Sensitivity 1.0000 0.9375 0.9231
Specificity 1.0000 0.9796 0.9796
Pos Pred Value 1.0000 0.9375 0.9231
Neg Pred Value 1.0000 0.9796 0.9796
Prevalence 0.3111 0.3333 0.3556
Detection Rate 0.3111 0.3125 0.3278
Detection Prevalence 0.3111 0.3333 0.3556
Balanced Accuracy 1.0000 0.9586 0.9514
```
从结果可以看出,该模型在测试集上的准确率为 0.9556,即正确分类的样本占总样本数的比例。精确率、召回率和 F1 值则可以从混淆矩阵中计算得出。例如,对于类别 setosa,其精确率为 1.0000,即被模型预测为 setosa 的样本中真正属于 setosa 的比例为 100%;召回率为 1.0000,即所有属于 setosa 的样本中被模型预测为 setosa 的比例为 100%;F1 值为 1.0000,即精确率和召回率的调和平均数。
阅读全文