GBM 和 Caret 包:无效的间隔数
GBM and Caret package: invalid number of intervals
虽然我定义了 target <- factor(train$target, levels = c(0, 1))
,但下面给出的代码提供了这个错误:
Error in cut.default(y, unique(quantile(y, probs = seq(0, 1, length =
cuts))), : invalid number of intervals In addition: Warning
messages: 1: In train.default(x, y, weights = w, ...) : cannnot
compute class probabilities for regression
这是什么意思,如何解决?
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]
首先,不要这样做:
target <- factor(train$target, levels = c(0, 1))
您将收到警告:
At least one of the class levels are not valid R variables names; This may cause errors if class probabilities are generated because the variables names will be converted to: X0, X1
其次,您创建了一个名为 target
的对象。使用公式方法意味着 train
将使用数据框 train
中名为 target
的列,这些是不同的数据。修改列。
虽然我定义了 target <- factor(train$target, levels = c(0, 1))
,但下面给出的代码提供了这个错误:
Error in cut.default(y, unique(quantile(y, probs = seq(0, 1, length = cuts))), : invalid number of intervals In addition: Warning messages: 1: In train.default(x, y, weights = w, ...) : cannnot compute class probabilities for regression
这是什么意思,如何解决?
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]
首先,不要这样做:
target <- factor(train$target, levels = c(0, 1))
您将收到警告:
At least one of the class levels are not valid R variables names; This may cause errors if class probabilities are generated because the variables names will be converted to: X0, X1
其次,您创建了一个名为 target
的对象。使用公式方法意味着 train
将使用数据框 train
中名为 target
的列,这些是不同的数据。修改列。