虽然我定义了target <- factor(train$target, levels = c(0, 1))
,但下面给出的代码提供了此错误:
cut.default中的错误(y,唯一(分位数(y,probs = seq(0,1,length =) cut))),:无效的间隔数此外:警告 消息:1:在train.default(x,y,weights = w,...):cannnot 计算回归的概率
这是什么意思以及如何解决这个问题?
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]
答案 0 :(得分:1)
首先,不要这样做:
target <- factor(train$target, levels = c(0, 1))
你会收到警告:
至少有一个类级别不是有效的R变量名称;如果生成类概率,这可能会导致错误,因为变量名称将转换为:X0,X1
其次,您创建了一个名为target
的对象。使用公式方法意味着train
将在数据框target
中使用名为train
的列,这些列是不同的数据。修改列。