0

虽然我正在定义它target <- factor(train$target, levels = c(0, 1)),但下面给出的代码提供了这个错误:

cut.default(y, unique(quantile(y, probs = seq(0, 1, length = cut))) 中的错误:无效的间隔数另外:警告消息:1:在 train.default(x, y , weights = w, ...) : 无法计算回归的类别概率

这是什么意思以及如何解决这个问题?

  gbmGrid <- expand.grid(n.trees = (1:30)*10, 
                         interaction.depth = c(1, 5, 9), 
                         shrinkage = 0.1)

  fitControl <- trainControl(method = "repeatedcv", 
                             number = 5, 
                             repeats = 5, 
                             verboseIter = FALSE, 
                             returnResamp = "all",
                             classProbs = TRUE)

  target <- factor(train$target, levels = c(0, 1)) 

  gbm <- caret::train(target ~ .,
                      data = train,
                      #distribution="gaussian",
                      method = "gbm",
                      trControl = fitControl,
                      tuneGrid = gbmGrid)

  prob = predict(gbm, newdata=testing, type='prob')[,2]
4

1 回答 1

1

首先,不要这样做:

 target <- factor(train$target, levels = c(0, 1)) 

你会得到一个警告:

至少有一个类级别不是有效的 R 变量名称;如果生成类概率,这可能会导致错误,因为变量名称将转换为:X0,X1

其次,您创建了一个名为target. 使用公式方法意味着将使用数据框中train调用的列,它们是不同的数据。修改列。targettrain

于 2015-02-27T23:11:41.677 回答