Я работаю со списком dataframes (72), который я хочу использовать в качестве входных данных для train
, но у меня возникают проблемы при использовании пользовательской функции. Я нашел потенциальный ответ here, но он относится к tuneGrid
, а не к trainControl
. Обе эти функции я написал не передать указанные trainControl
параметры train
:{caret} как передать параметры `trainControl` в пользовательскую функцию в r?
fun.train.rf <- function(x) {
ctrl <- trainControl(method = "repeatedcv", repeats = 3)
train(index ~ ., data = x, method = "rf",
trainControl = ctrl)
}
model.list <- lapply(list.partition, fun.train.rf)
или:
fun.train.rf <- function(x) {
train(index ~ ., data = x, method = "rf",
trainControl = list(method="repeatedcv", repeats = 3, p = 0.75))
}
model.list <- lapply(list.partition, fun.train.rf)
Обе функции выше «работы», но обе модели возврата, которые появляются, чтобы игнорировать указанный trainControl
параметры. Когда я анализирую полученный список подготовленных моделей, оба примера по всей видимости, с использованием параметров по умолчанию обучения (например, method = boot
):
model.list$modelA$control$method
[1] "boot"
...
Это моя первая реальная попытка использования lapply и списков, поэтому я предполагаю, приведенные выше примеры скорее всего плохо продуманны, чем недостаток caret
.
Как правильно передать параметры trainControl
в пользовательскую функцию с использованием функции train
?