了解在 R 中使用 xgboost 执行交叉验证的错误

Understanding error performing cross-validation with xgboost in R

我运行在R中使用xgboost进行交叉验证

library(xgboost)

data(agaricus.train, package='xgboost')
data(agaricus.test, package='xgboost')
train <- agaricus.train
test <- agaricus.test

cv.res <- xgb.cv(data = train$data, label = train$label, nfold = 5,
                 nrounds = 2, objective = "binary:logistic")

输出如下

[0]  train-error:0.000921+0.000343   test-error:0.001228+0.000687
[1]  train-error:0.001075+0.000172   test-error:0.001228+0.000687

我假设误差只是执行回归时所有 k 折与执行分类时的众数之间的误差平均值,对吗?加号后的第二项是什么?

在回归中,当计算 k 次折叠之间的平均值时,是否考虑了每次折叠的相同权重,或者在某些情况下,它会为特定折叠赋予更多权重?

1.我假设错误只是执行回归时所有 k 折与执行 classification

时的模式之间的平均误差

这是 holdout crossfold 的错误(请参阅下面的引用,该引用也适用于您的第三个问题)。默认情况下,它是此 objective 函数的二进制 class 化错误率。

实际上,要在此处查看哪个指标取决于您。您可以使用 metrics 选项指定它。您的选择是:

  • 错误二进制class化错误率
  • rmse均方根误差
  • logloss 负对数似然函数
  • auc 曲线下面积
  • merror 精确匹配错误,用来评价multi-class classification

不指定时,根据objective函数选择评价指标。

2。加号后的第二项是什么?

这是误差估计的标准差。它在文档中提到了它。您可以使用 showsd.

打开或关闭此功能

3。在回归中,在计算 k 次折叠之间的平均值时,是否考虑了每次折叠的相同权重,或者在某些情况下,它为特定的折叠提供了更多的权重?

根据文档:

Of the nfold subsamples, a single subsample is retained as the validation data for testing the model, and the remaining nfold - 1 subsamples are used as training data.