【发布时间】:2020-06-02 21:28:40
【问题描述】:
我正在尝试使用 caretList 进行合奏。我正在使用的代码如下。 代码:::
library(tidyverse)
library(caret)
library(doParallel)
library(nnet)
library(e1071)
library(caretEnsemble)
#load data.
#using data sets created in assignment1.R
set.seed(1234)
assignment_data1<-train.data
# create training and test data from the 58104 examples
training.samples <- assignment_data1$Cover_Type %>%
createDataPartition(p = 0.7, list = FALSE)
train.data_ensemble <- assignment_data1[training.samples, ]
test.data_ensemble <- assignment_data1[-training.samples, ]
#set up parallel env
cl<-makePSOCKcluster(detectCores()-3)
registerDoParallel(cl)
set.seed(1234)
my_control <- trainControl(method = "cv", # for “cross-validation”
number = 10, # number of k-folds
savePredictions = "final",
classProbs = TRUE,
index=createResample(train.data_ensemble$Cover_Type , 25),
allowParallel = TRUE)
model_list <- c("ranger", "rpart","svmLinear","nnet")
set.seed(1234)
# Fit the model on the training set without preProcess
list_of_models<- caretList(
Cover_Type ~., data = train.data_ensemble,
methodList =model_list,
trControl = my_control,
tuneLength = 20,
continue_on_fail = TRUE
)
我得到的错误如下:
caretList 中的错误(Cover_Type ~ ., data = train.data_ensemble, methodList = model_list, : caret:train 对所有模型都失败了。请检查您的数据。
当我使用 train() 单独拟合模型时,我没有问题,我确实得到了结果。使用的数据集是来自 Kaggle (https://www.kaggle.com/c/forest-cover-type-prediction) 的覆盖类型预测。
【问题讨论】:
-
这行得通。一个后续问题 - 有没有一种方法可以使用 caretStack() 来解决多分类问题来创建一个集合。