【问题标题】:Understanding error performing cross-validation with xgboost in R了解在 R 中使用 xgboost 执行交叉验证时出错
【发布时间】:2016-06-24 08:58:28
【问题描述】:

我正在 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 折之间的平均值时,是否考虑到每个折的权重相等,或者在某些情况下它会为特定折赋予更多权重?

【问题讨论】:

    标签: r xgboost


    【解决方案1】:

    1.我假设误差只是执行回归时所有 k 折和执行分类时的模式之间的误差平均值

    这是来自坚持交叉折叠的错误(请参阅下面的引用,它也适用于您的第三个问题)。默认是这个目标函数的二分类错误率。

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

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

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

    2。加号后面的第二个词是什么?

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

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

    根据文档:

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

    【讨论】:

    • 感谢您的回答,非常清楚。我检查了加号后面的术语,确实是standard deviation
    • @ThiagoBalbo 不客气。是的,你是对的,它是标准偏差。几分钟前我更新了我的答案以添加它。您可以使用showsd 将其打开或关闭。
    猜你喜欢
    • 2018-09-09
    • 2020-12-26
    • 2018-08-02
    • 2019-11-16
    • 2014-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-01
    相关资源
    最近更新 更多