Попытка лучше понять, как работает train(tuneLength = )
в {caret}
. Моя путаница возникла при попытке понять некоторые различия между методами SVM из {kernlab}
Я просмотрел документацию (здесь) и страницу обучения каретки (здесь).
В моей игрушечной модели было создано пять моделей с использованием набора данных iris
. Результаты здесь, и воспроизводимый код здесь (они довольно длинны, поэтому я не копировал и не вставлял их в сообщение).
Из документации {caret}
:
tuneLength
целое число, обозначающее степень детализации в сетке параметров настройки. По умолчанию этот аргумент представляет собой количество уровней для каждого параметра настройки, который должен быть сгенерирован поездом. Если у trainControl есть опция search = "random", это максимальное количество комбинаций параметров настройки, которые будут генерироваться случайным поиском. (ПРИМЕЧАНИЕ. Если задано, этот аргумент должен быть назван.)
В этом примере trainControl(search = "random")
и train(tuneLength = 30)
, но, как представляется, 67 результатов, а не 30 (максимальное количество комбинаций параметров настройки)? Я попытался поиграть, чтобы увидеть, возможно, было 30 уникальных значений ROC
или даже значений ydim
, но по моим подсчетам это не так.
В примере с игрушкой я создал следующую таблицу:
Есть ли способ увидеть, что происходит "под капотом"? Например, M1
(svmRadial
) и M3
(svmRadialSigma
) берут и задаются одни и те же параметры настройки, но на основе вызова $results
видимому, используют их по-разному?
Мое понимание train(tuneLength = 9)
состояло в том, что обе модели будут давать результаты sigma
и C
каждый с 9 values, 9 times
поскольку 9
- количество уровней для каждого параметра настройки (исключение - случайный поиск)? Аналогично, M4
будет 9^3
поскольку train(tuneLength = 9)
и есть 3
параметра настройки?
Майкл