evalSummaryFunction 中的 R 插入符训练错误:无法计算回归的类概率 [英] R caret train Error in evalSummaryFunction: cannnot compute class probabilities for regression
本文介绍了evalSummaryFunction 中的 R 插入符训练错误:无法计算回归的类概率的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
> cv.ctrl <- trainControl(method = "repeatedcv", repeats = 3,
+ summaryFunction = twoClassSummary,
+ classProbs = TRUE)
>
> set.seed(35)
> glm.tune.1 <- train(y ~ bool_3,
+ data = train.batch,
+ method = "glm",
+ metric = "ROC",
+ trControl = cv.ctrl)
Error in evalSummaryFunction(y, trControl, classLevels, metric, method) :
train()'s use of ROC codes requires class probabilities. See the classProbs option of trainControl()
In addition: Warning message:
In train.default(x, y, weights = w, ...) :
cannnot compute class probabilities for regression
> str(train.batch)
'data.frame': 128046 obs. of 42 variables:
$ offer : int 1194044 1194044 1194044 1194044 1194044 1194044 1194044 1194044 1194044 1194044 ...
$ avgPrice : num 2.68 2.68 2.68 2.68 2.68 ...
...
$ bool_3 : int 0 0 0 0 0 0 0 1 0 0 ...
$ y : num 0 1 0 0 0 1 1 1 1 0 ...
由于 cv.ctrl 将 classProbs 设置为 TRUE,我不明白为什么会出现此错误消息.
Since the cv.ctrl has classProbs set to TRUE, I do not understand why this error message appears.
有人可以建议吗?
推荐答案
显然这个错误是由于我的 y 不是一个因素.
Apparently this error is due to the fact that my y is not a Factor.
以下代码工作正常:
library(caret)
library(mlbench)
data(Sonar)
ctrl <- trainControl(method = "cv",
summaryFunction = twoClassSummary,
classProbs = TRUE)
set.seed(1)
gbmTune <- train(Class ~ ., data = Sonar,
method = "gbm",
metric = "ROC",
verbose = FALSE,
trControl = ctrl)
然后做:
Sonar$Class = as.numeric(Sonar$Class)
同样的代码抛出错误:
> gbmTune <- train(Class ~ ., data = Sonar,
+ method = "gbm",
+ metric = "ROC",
+ verbose = FALSE,
+ trControl = ctrl)
Error in evalSummaryFunction(y, trControl, classLevels, metric, method) :
train()'s use of ROC codes requires class probabilities. See the classProbs option of trainControl()
In addition: Warning message:
In train.default(x, y, weights = w, ...) :
cannnot compute class probabilities for regression
但是插入符训练文档说:
But caret train documentation says:
y a numeric or factor vector containing the outcome for each sample.
这篇关于evalSummaryFunction 中的 R 插入符训练错误:无法计算回归的类概率的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文