Я использую модель KNN, используя пакет R's Caret.Я оцениваю точность модели с помощью начальной загрузки 1000 раз, а затем составляю гистограмму точности модели по каждой начальной загрузке.
Функция train () при использовании метода KNN обычно проверяет точность на 5, 7 и 9Ближайшие соседи и секция результатов обеспечивают точность и каппу для разных ближайших соседей.
в моем методе trainControl Я указываю, что секция повторной выборки модели должна возвращать только повторные выборки из наилучшей настроенной модели.Тем не менее, точность наилучшей настройки модели в разделе результатов выше, чем средняя точность повторной выборки.Может кто-нибудь объяснить, почему это так?
library(caret)
library(klaR)
data("iris")
set.seed(10)
train_controlIris <- trainControl(method="boot632", number=1000, returnResamp = 'final',savePredictions = 'final' )
modelIris <- train( Species~.,data=iris, method="knn",trControl=train_controlIris)
modelIris$results
#results are
# k Accuracy Kappa AccuracySD KappaSD AccuracyApparent KappaApparent
# 5 0.9596929 0.9391343 0.02518187 0.03806050 0.9666667 0.95
# 7 0.9636048 0.9450297 0.02477967 0.03746918 0.9733333 0.96
# 9 0.9668314 0.9498840 0.02406576 0.03636270 0.9800000 0.97
mean(modelIris$resample$Accuracy)
#result is 0.9591676