R-我可以在“ caret”中优化中位相对绝对误差



我在室内具有KNN模型,我想优化中位相对绝对错误。

library(caret)
model <- train(
  close_price~ ., data = train.data, method = "knn",
  trControl = trainControl("cv", number = 10),
  preProcess = c("center", "scale"),
  metric = "MdRAE",
  tuneLength = 10
)

我尝试使用MdRAEMDRAE,他们都返回了此错误。

Warning message:
In train.default(x, y, weights = w, ...) :
  The metric "MdRAE" was not in the result set. RMSE will be used instead

是否有所有可用指标的列表?我在商标电子书中找不到它。

此指标未直接在caret中实现,但您可以自己轻松地执行:

mdrae_summary <- function(data, lev=NULL, model=NULL) {
    c(MdRAE=median(abs(data$pred - data$obs)/data$obs))
}
model <- train(
  close_price~ ., data = train.data, method = "knn",
  trControl = trainControl("cv", number = 10, summaryFunction = mdrae_summary),
  preProcess = c("center", "scale"),
  metric = "MdRAE",
  tuneLength = 10
)

最新更新