R插入模型评估与备用性能指标

时间:2014-04-14 16:25:09

标签: r r-caret evaluation-function

我正在使用R的插入符号包进行网格搜索和模型评估。我有一个自定义评估指标,它是绝对误差的加权平均值。权重在观察级别分配。

X <- c(1,1,2,0,1) #feature 1
w <- c(1,2,2,1,1) #weights
Y <- 1:5 #target, continuous

#assume I run a model using X as features and Y as target and get a vector of predictions

mymetric <- function(predictions, target, weights){

v <- sum(abs(target-predictions)*weights)/sum(weights) 
return(v)
}

Here给出了如何使用summaryFunction为插入符号列()定义自定义评估指标的示例。 引用:

trainControl函数有一个名为summaryFunction的参数,它指定用于计算性能的函数。该函数应具有以下参数:

  

数据是具有名为obs的列的数据框或矩阵的参考   和观察到的和预测的结果值的预测值(数值   用于回归的数据或用于分类的字符值)。   目前,类概率不会传递给函数。该   数据中的值是保持预测(及其相关联的   参考值)用于单个调整参数组合。如果   trainControl对象的classProbs参数设置为TRUE,   将出现包含该类的数据中的其他列   概率。这些列的名称与类相同   水平。 lev是具有结果因子级别的字符串   取自训练数据。对于回归,NULL值为   传递给函数。 model是模型的字符串   正在使用(即传递给火车的方法参数的值)。

我无法弄清楚如何将观察权重传递给summaryFunction。

1 个答案:

答案 0 :(得分:4)

您无法将权重直接传递给摘要函数,这是一种疏忽,因为您可以将它们传递给建模函数。如果基础模型适应权重,则它们用于生成预测值。

我将其添加到下一个版本中。

最高