Установка диапазона параметров с помощью каретки - PullRequest
0 голосов
/ 04 сентября 2018

Я использую адаптивный метод, чтобы найти мои лучшие параметры модели. Однако я не смог найти способ установить минимальные и максимальные значения параметров.

Например, в следующем упрощенном примере я хотел бы заставить функцию train найти k между 8 и 12. Конечно, я знаю, что для этого простого случая я мог бы использовать параметр tuneGrid.

library(caret)
ctrl2 <- trainControl(method = "adaptive_cv",
                      repeats = 5)

mod2 <- train(Species ~ ., data = iris,
              method = "knn",
              tuneLength = 3,
              trControl = ctrl2)

1 Ответ

0 голосов
/ 14 сентября 2018

Вы можете использовать tuneGrid, чтобы указать, какие значения настройки выбрать в обучении. Обратите внимание, что разные модели (например, knn, svm, ..) будут иметь разные значения настройки.

Кроме того, как говорится в ?caret::train:

tuneGrid
Кадр данных с возможными значениями настройки. Столбцы названы так же, как параметры настройки. Используйте getModelInfo, чтобы получить список параметров настройки для каждой модели, или посмотрите http://topepo.github.io/caret/available-models.html. (ПРИМЕЧАНИЕ. Если указан, этот аргумент должен быть назван.)

Рабочий код в вашем случае будет:

library(caret)

ctrl2 <- trainControl(method = "adaptive_cv",
                      repeats = 5)

grid_knn <- expand.grid(k=8:12)

set.seed(100)

mod2 <- train(Species ~ ., data = iris,
              method = "knn",
              tuneGrid = grid_knn,
              trControl = ctrl2)

Что дает вывод:

> mod2

 k-Nearest Neighbors 

150 samples
  4 predictor
  3 classes: 'setosa', 'versicolor', 'virginica' 

No pre-processing
Resampling: Adaptively Cross-Validated (10 fold, repeated 5 times) 
Summary of sample sizes: 135, 135, 135, 135, 135, 135, ... 
Resampling results across tuning parameters:

  k   Accuracy   Kappa  Resamples
   8  0.9600000  0.940   5       
   9  0.9733333  0.960  50       
  10  0.9733333  0.960  50       
  11  0.9746667  0.962  50       
  12  0.9666667  0.950   6       

Accuracy was used to select the optimal model using the largest value.
The final value used for the model was k = 11.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...