Я провожу ряд исследований KNN. В настоящее время я тренирую модель на полных данных и использую метод repeatcv, который разбивает данные
на 4 части, чтобы получить оценку точности. Я хочу знать две вещи
Является ли указание повторений = 100 в функции поезда с использованием repeatcv аналогично ручному выбору четверти данных, которые должны быть назначены в качестве набора тестов, с использованием createDataPartition () и Forex (). Для меня единственная разница заключается в том, что в первом случае модель оптимизируется с точки зрения прогнозирующей способности для всех данных, тогда как в последнем случае она оптимизируется только на обучающем разделе. Поэтому, если я просто оцениваю влияние предикторов, а не пытаюсь применить модель к новым данным, лучше использовать поезд. Это правильно?
Можно ли получить информацию без учета скорости, оставшейся во время тренировки, как вы можете получить для матрицы путаницы оценки?
Я включил приведенный ниже код, используя набор данных Iris в качестве примера
set.seed(10)
#using the train and resampling procedure on whole data to determine accuracy
train_controlIris <- trainControl(method="repeatedcv", number=4,repeats = 100, returnResamp = 'final',savePredictions = 'final' )
modelIris <- train( Species~.,data=iris, method="knn",trControl=train_controlIris)
confMatrixRepeatCV<-confusionMatrix(modelIris)
print(confMatrixRepeatCV)
#The confusion matrix gives no No Information Rate in the output
Cross-Validated (4 fold, repeated 100 times) Confusion Matrix
(entries are percentual average cell counts across resamples)
Reference
Prediction setosa versicolor virginica
setosa 33.3 0.0 0.0
versicolor 0.0 31.7 1.5
virginica 0.0 1.6 31.9
Accuracy (average) : 0.9689
#now creating a partition and using the data to predict the test partition
index <- createDataPartition(iris$Species, p=0.75, list=FALSE)
#make test and train sets
data.train<- iris[index,]
data.test<- iris[-index,]
model_knn <- train(data.train[, 1:4], data.train$Species, method='knn')
predictions<-predict(object=model_knn,data.test[,1:4])
evaluationCaret<-confusionMatrix(predictions,data.test$Species)
print(evaluationCaret)
#this confusion matrix does give a No information Rate
Confusion Matrix and Statistics
Reference
Prediction setosa versicolor virginica
setosa 12 0 0
versicolor 0 11 1
virginica 0 1 11
Overall Statistics
Accuracy : 0.9444
95% CI : (0.8134, 0.9932)
No Information Rate : 0.3333
P-Value [Acc > NIR] : 1.728e-14
Kappa : 0.9167
Mcnemar's Test P-Value : NA