首页 > 解决方案 > 我可以优化“插入符号”中的中值相对绝对误差吗?

问题描述

我在插入符号中有一个 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
)

我尝试使用MdRAE并且MDRAE他们都返回了这个错误。

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

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

标签: rmachine-learningr-caret

解决方案


该指标并未直接实现,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
)

推荐阅读