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

时间:2016-06-24 00:32:17

标签: r xgboost

我正在使用R中的xgboost进行交叉验证。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME':  'xxxxxxx',                  
        'USER': 'xxxxxxx',
        'PASSWORD': 'xxxxxxxxxxx',
        'HOST': 'xxxxxxxxxxxxxxx.compute-1.amazonaws.com',
        'PORT': '5432',
    },
    'admin': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME':  'xxxxxxxxxxxx',                  
        'USER': 'xxxxxxxxxxxxxxxxxxx',
        'PASSWORD': 'xxxxxxxxxxxxxxxxxxxx',
        'HOST': 'xxxxxxxxxxxxxxxxxx.compute-1.amazonaws.com',
        'PORT': '5432',
    }    
}

输出如下

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")

我假设错误只是执行回归时所有k倍之间的误差平均值和执行分类时的模式,这是正确的吗?加号后的第二个词是什么?

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

1 个答案:

答案 0 :(得分:1)

<强> 1。我假设错误只是执行回归时所有k倍之间的误差平均值和执行分类时的模式

来自holdout crossfold的错误(请参阅下面的引文,该引用也适用于您的第3个问题)。默认情况下,它是此目标函数的二进制分类错误率。

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

  • 错误二进制分类错误率
  • rmse 生根均方误差
  • logloss 负对数似然函数
  • auc 曲线下面积
  • merror 完全匹配错误,用于评估多类分类

如果未指定,则根据目标函数选择评估指标。

<强> 2。加号后的第二个词是什么?

它是误差估计的标准偏差。它在文档中提到它。您可以使用showsd打开或关闭此功能。

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

根据文件:

  

在nfold子样本中,单个子样本被保留为   用于测试模型的验证数据,以及剩余的nfold - 1   子样本用作训练数据。