Я пытаюсь реализовать некоторые функции для сравнения пяти различных моделей машинного обучения, чтобы предсказать некоторые значения в задаче регрессии.
Я намерен работать над набором функций, которые могли бы обучать различные коды и организовыватьих в костюме результатов.Модели, которые я выбираю по экземпляру: Лассо, Случайный лес, SVM, Линейная модель и Нейронная сеть.Для настройки некоторых моделей я собираюсь использовать ссылки Макса Куна: https://topepo.github.io/caret/available-models.html. Однако, поскольку каждая модель требует различных параметров настройки, я сомневаюсь, как их настроить:
Сначала я настроилнастройка сетки на модель 'nnet'.Здесь я выбрал различное количество узлов в скрытом слое и коэффициент затухания:
my.grid <- expand.grid(size=seq(from = 1, to = 10, by = 1), decay = seq(from = 0.1, to = 0.5, by = 0.1))
Затем я создаю функции, которые будут запускать пять моделей 5 раз в 6-кратной конфигурации:
my_list_model <- function(model) {
set.seed(1)
train.control <- trainControl(method = "repeatedcv",
number = 6,
repeats = 5,
returnResamp = "all",
savePredictions = "all")
# The tunning configurations of machine learning models:
set.seed(1)
fit_m <- train(ST1 ~.,
data = train, # my original dataframe, not showed in this code
method = model,
metric = "RMSE",
preProcess = "scale",
trControl = train.control
linout = 1 # linear activation function output
trace = FALSE
maxit = 1000
tuneGrid = my.grid) # Here is how I call the tune of 'nnet' parameters
return(fit_m)
}
Наконец, я выполняю пять моделей:
lapply(list(
Lass = "lasso",
RF = "rf",
SVM = "svmLinear",
OLS = "lm",
NN = "nnet"),
my_list_model) -> model_list
Однако, когда я запускаю это, он показывает:
Ошибка: Сетка параметров настройки не должна иметь фракцию столбцов
Судя по тому, что я понял, я не знал, как очень хорошо указать параметры мелодии.Если я попытаюсь отбросить модель 'nnet' и изменить ее, например, на модель XGBoost, в предпоследней строке, похоже, она работает хорошо, и результаты будут рассчитаны.То есть, похоже, проблема в параметрах настройки «nnet».
Тогда я думаю, что мой реальный вопрос заключается в следующем: как настроить эти различные параметры моделей, в частности, в модели «nnet».Кроме того, поскольку мне не нужно было настраивать параметры лассо, случайного леса, svmLinear и линейной модели, как они настраивались с помощью пакета caret?