Я написал функцию внутри lapply для установки GAM (со сплайнами) для каждого элемента в векторе переменных ответа в кадре данных. Я решил использовать caret
для установки моделей вместо прямого использования mgcv
или пакета gam
, потому что я хотел бы, в конечном счете, разделить свои данные на поезд/тестовый набор для проверки и использовать различные методы повторной дискретизации. На данный момент, я просто метод trainControl
установлен в «None», как так:Метод GAM без повторной выборки в карете создает ошибку стоп-кода
# Set resampling method
# tc <- trainControl(method = "boot", number = 100)
# tc <- trainControl(method = "repeatedcv", number = 10, repeats = 1)
tc <- trainControl(method = "none")
fm <- lapply(group, function(x) {
printFormula <- paste(x, "~", inf.factors)
inputFormula <- as.formula(printFormula)
# Partition input data for model training and testing
# dpart <- createDataPartition(mdata[,x], times = 1, p = 0.7, list = FALSE)
# train <- mdata[ data.partition, ]
# test <- mdata[ -data.partition, ]
cat("Fitting:", printFormula, "\n")
# gam(inputFormula, family = binomial(link = "logit"), data = mdata)
train(inputFormula, family = binomial(link = "logit"), data = mdata, method = "gam",
trControl = tc)
})
Когда я выполняю этот код, я получаю следующее сообщение об ошибке:
Error in train.default(x, y, weights = w, ...) :
Only one model should be specified in tuneGrid with no resampling
Если я повторно запустить код в режиме отладки, я могу найти, где caret
останавливает процесс обучения:
if (trControl$method == "none" && nrow(tuneGrid) != 1)
stop("Only one model should be specified in tuneGrid with no resampling")
Очевидно, что функция train
терпит неудачу из-за второго условия, б ut, когда я просматриваю tuning parameters for a GAM (со сплайнами), есть только опция выбора функции (не заинтересована, я хочу сохранить все предиктора в модели) и метод. Следовательно, я не включаю фрейм данных tuneGrid
, когда звоню train
. Это причина, по которой модель не работает таким образом? Какой параметр я должен предоставить и как будет выглядеть tuneGrid?
Я должен добавить, что модель успешно прошла обучение, когда я использую загрузку или k-кратное CV, однако эти методы передискретизации занимают гораздо больше времени, чтобы рассчитать, и мне не нужно их использовать.
Любая помощь по этому вопросу будет оценена по достоинству!
Мне удалось успешно подогнать модели GAM с использованием параметров настройки, которые вы предложили. Я понимаю, что выбор функции отключен и поиск GCV.Cp. Я вижу, что он передается функции 'gam' в пакете' mgcv'. В будущем, какой источник может пользователь проконсультироваться по параметрам параметров настройки? На веб-сайте GitHub я думаю, что документация может по крайней мере связать пользователя с потенциальными параметрами параметров настройки. Это всего лишь мои два цента. Спасибо за вашу помощь, я уверен, что у меня будет больше в будущем! – user2109092