Ошибка получения обучения при использовании пакета Caret в R

Я использую пакет caret для обучения алгоритма K-ближайших соседей. Для этого я запускаю этот код:

Control <- trainControl(method="cv", summaryFunction=twoClassSummary, classProb=T)

tGrid=data.frame(k=1:100)

trainingInfo <- train(Formula, data=trainData, method = "knn",tuneGrid=tGrid,
                              trControl=Control, metric =  "ROC")

Как видите, меня интересует получение параметра AUC ROC. Этот код работает хорошо, но возвращает ошибку тестирования (которую алгоритм использует для настройки параметра k модели) как среднее значение ошибки перекрестной проверки. Я заинтересован в возвращении, в дополнение к ошибке тестирования, ошибки обучения (среднее значение для каждой складки ошибки, полученной с данными обучения). Как мне это сделать?

Спасибо


person ivallesp    schedule 11.10.2014    source источник


Ответы (1)


То, о чем вы спрашиваете, является плохой идеей на нескольких уровнях. Вы сильно переоцените площадь под ROC-кривой. Рассмотрим модель 1-NN: каждый раз у вас будут идеальные прогнозы.

Для этого вам нужно будет снова запустить train и изменить объекты index и indexOut:

library(caret)

set.seed(1)
dat <- twoClassSim(200)

set.seed(2)
folds <- createFolds(dat$Class, returnTrain = TRUE)

Control <- trainControl(method="cv", 
                        summaryFunction=twoClassSummary, 
                        classProb=T,
                        index = folds,
                        indexOut = folds)

tGrid=data.frame(k=1:100)

set.seed(3)
a_bad_idea <- train(Class ~ ., data=dat, 
                    method = "knn",
                    tuneGrid=tGrid,
                    trControl=Control, metric =  "ROC")

Максимум

person topepo    schedule 12.10.2014
comment
Прежде всего, спасибо за ваш ответ. Наверное я не правильно объяснил... Мне нужно вернуть ОБЕ, ошибку обучения и ошибку теста, не запуская ее 2 раза. Не только ошибка поезда. Причина, по которой я хочу это сделать, заключается в том, чтобы оценить, связан ли плохой результат с переоснащением или недообучением. - person ivallesp; 12.10.2014