Я хочу построить полиномиальную модель логистической регрессии для прогнозирования классов.Чтобы убедиться, что прогностическая способность модели не отклоняется от новых данных, я попытался использовать процедуру повторной перекрестной проверки через пакет caret
.Я не могу понять, как я должен интерпретировать вывод.Данные, которые у меня есть, довольно большие, поэтому для воспроизводимости я использовал набор данных iris
в качестве примера.Код выглядит следующим образом:
library(caret)
library(nnet)
iris_data <- iris
## Base Class against which log odds are calculated
iris_data$Species <- relevel(iris_data$Species,ref='setosa')
train_control <- trainControl(method='repeatedcv',number=10,repeats = 10,verboseIter = TRUE)
model_cv <- caret::train(Species~.,data=iris_data,trControl=train_control,
method='multinom')
Приведенный выше код приводит к 100 итерациям перекрестной проверки (10-кратная перекрестная проверка повторяется 10 раз), и следующие являются одним из выходных данных.
- Fold10.Rep10: decay=1e-04
Aggregating results
Selecting tuning parameters
Fitting decay = 0.1 on full training set
# weights: 18 (10 variable)
initial value 164.791843
iter 10 value 29.291910
iter 20 value 26.055889
iter 30 value 26.039352
iter 30 value 26.039352
iter 30 value 26.039352
final value 26.039352
converged
Я не могу понять, что означает вывод value
.Это остаточное отклонение?
Стабильность модели
И для оценки устойчивости модели я использовал команду model_cv$resample
, которая дала мне следующий результат (усеченный).Нужно ли оценивать стабильность модели, рассматривая отклонения в баллах точности?Или мне не хватает ключевой функциональности в caret
?Заранее спасибо!
Accuracy Kappa Resample
1 0.9333333 0.9 Fold04.Rep02
2 1.0000000 1.0 Fold03.Rep02
3 0.9333333 0.9 Fold02.Rep02
4 0.9333333 0.9 Fold05.Rep02
5 1.0000000 1.0 Fold01.Rep02
6 1.0000000 1.0 Fold10.Rep01
7 1.0000000 1.0 Fold06.Rep02
8 1.0000000 1.0 Fold03.Rep01
9 1.0000000 1.0 Fold08.Rep01
10 1.0000000 1.0 Fold07.Rep02