2

有没有办法让插入符号将 RMSE 用于二进制分类问题?

如果您尝试使用metric = "RMSE"分类问题,您将收到以下消息:

Error in train.default(x, y, weights = w, ...) :
    Metric RMSE not applicable for classification models

这是有道理的。但是有没有办法定义自定义指标?例如,如果您的结果是01,您可以将误差定义为模型预测的概率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,或关于 softclassval 的论文

4

2 回答 2

8

Y应该是一个因素。在训练模型之前使用 as.factor() 。

于 2015-10-21T12:23:30.077 回答
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)

最大限度

于 2013-12-05T04:00:25.957 回答