首页 > 解决方案 > `caret` 包重采样输出中不同模型的准确率完全相同

问题描述

我正在使用R 4.0.4和包caret 6.0.89 进行机器学习分析。
在我的许多分析中(使用各种方法、调整和预处理),模型精度比较(即基准测试)的重采样结果对于不同的算法是完全相同的。我什至在 ML 学习教程中也看到了这一点,比如“Jason Brownlee 用 r 掌握 ML”:

library(caret)



# attach the iris dataset to the environment
data(iris)
# rename the dataset
dataset <- iris

trainControl <- trainControl(method="cv", number=10)
metric <- "Accuracy"


# LDA
set.seed(7)
fit.lda <- train(Species~., data=dataset, method="lda", metric=metric,
trControl=trainControl)
# CART
set.seed(7)
fit.cart <- train(Species~., data=dataset, method="rpart", metric=metric,
trControl=trainControl)
# KNN
set.seed(7)
fit.knn <- train(Species~., data=dataset, method="knn", metric=metric,
trControl=trainControl)
# SVM
set.seed(7)
fit.svm <- train(Species~., data=dataset, method="svmRadial", metric=metric,
trControl=trainControl)
# Random Forest
set.seed(7)
fit.rf <- train(Species~., data=dataset, method="rf", metric=metric, trControl=trainControl)

# summarize accuracy of models
results <- resamples(list(lda=fit.lda, cart=fit.cart, knn=fit.knn, svm=fit.svm, rf=fit.rf))


summary(results)

我从上面的书中复制了确切的代码,它显示的结果如下(简化):

Accuracy
       Min. 1st Qu. Median Mean 3rd
lda   0.9167 0.9375 1.0000 0.9750
cart  0.8333 0.9167 0.9167 0.9417
knn   0.8333 0.9167 1.0000 0.9583
svm   0.8333 0.9167 0.9167 0.9417
rf    0.8333 0.9167 0.9583 0.9500   

从上面的准确率结果可以看出,min四个模型的准确率是完全一样的,最值得注意的是cartsvm模型的准确率的所有四分位数都是完全一样的。

在我尝试上面的代码时:

## 
## Call:
## summary.resamples(object = results)
## 
## Models: lda, cart, knn, svm, rf 
## Number of resamples: 10 
## 
## Accuracy 
##           Min.   1st Qu.    Median      Mean   3rd Qu. Max. NA's
## lda  0.9333333 0.9500000 1.0000000 0.9800000 1.0000000    1    0
## cart 0.8666667 0.9333333 0.9333333 0.9400000 0.9833333    1    0
## knn  0.8666667 0.9333333 1.0000000 0.9666667 1.0000000    1    0
## svm  0.8000000 0.9333333 0.9666667 0.9466667 1.0000000    1    0
## rf   0.8666667 0.9333333 0.9666667 0.9600000 1.0000000    1    0

同样,对于不同的算法,许多准确度四分位数是相同的。

我在自己的数据集中多次遇到类似的问题。这是正常的发现还是错误?

标签: rmachine-learningcaret

解决方案


推荐阅读