有没有办法让插入符号使用RMSE和二进制分类问题?
如果您尝试将metric = "RMSE"
用于分类问题,您将收到以下消息:
Error in train.default(x, y, weights = w, ...) :
Metric RMSE not applicable for classification models
哪个有道理。但有没有办法定义自定义指标?例如,如果您的结果为0
或1
,则可以将错误定义为outcome - p
,其中p
是模型预测的概率。
编辑====================
为了给出一些背景信息以及想要使用此度量的一些推理,请参阅Michael J. Procopio的An Experimental Analysis of Classifier Ensembles for Learning Drifting Concepts Over Time in Autonomous Outdoor Robot Navigation中的2.7.1,或paper on softclassval
答案 0 :(得分:8)
Y应该是一个因素。在训练模型之前,请在其上使用as.factor()。
答案 1 :(得分:2)
我不知道你为什么要这样做但你可以自己制作汇总函数:
library(caret)
set.seed(1)
dat <- twoClassSim(100)
foo <- function(data, lev = NULL, model = NULL) {
probs <- data[, lev[1]]
c(rmse = RMSE(pred = probs,
obs = ifelse(data$obs == lev[1], 1, 0)))
}
ctrl <- trainControl(classProbs = TRUE,
summaryFunction = foo)
set.seed(2)
mod <- train(Class ~ ., data = dat,
method = "lda",
metric = "rmse",
minimize = TRUE,
trControl = ctrl)
最高