使用 caret 包训练随机森林

training random forest using caret package

我想用我的训练数据来训练随机森林模型,但是出现了一些错误。

报错信息如下:

Error in train.default(x, y, weights = w, ...) : 
At least one of the class levels is not a valid R variable name; This will cause errors when class probabilities
are generated because the variables names will be converted to  X1, X2, X3, X4, X5, X6, X7 . Please use factor 
levels that can be used as valid R variable names  (see ?make.names for help).

下面是我的代码:

rf.ctrl <- trainControl(method = "repeatedcv",
                    number = 10,
                    repeats = 10,
                    classProbs = TRUE,
                    summaryFunction = twoClassSummary)


set.seed(256)

#train the calssification model with random forest
rf.model <- train(as.factor(response) ~ .,data = trainvals,
              method = "rf",
              trControl = rf.ctrl,
              tuneLength = 10,
              metic = "ROC")

trainvals 的结构是:

class 响应级别为 1、2、3、4、5、6 和 7。

trainvals 数据框中的一列或多列不是因子类型,因此出现错误。您可以使用以下方法将所有列转换为因子:

trainvals[] <- lapply(trainvals, factor)