XG助力列车bst\U分数返回训练错误,而不是验证错误?

2024-06-26 14:23:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用xgboostpythonapi,并使用下面的代码训练我的模型。你知道吗

    num_round =100
    param = {  'alpha': 0.28342488159238677, 'eta' : 0.43347953113507033, 'max_depth': 2, 'min_child_weight' :8.774621448662675,
            'objective':'binary:logistic'}
    dtrain = xgb.DMatrix(X, label=y)
    dval = xgb.DMatrix(val, label=val_y)

    evallist = [(dval, 'eval'), (dtrain, 'train')]
    bst = xgb.train(param, dtrain, evals= evallist, early_stopping_rounds=100, evals_result = eval_dict )

我担心当我打印的时候(最佳成绩)它返回最佳训练分数(这也符合最佳迭代),但通常情况下,这不是具有最佳验证分数的迭代。我不是应该对验证分数感兴趣吗?我不想要一个迭代有疯狂的好(过度拟合)的训练错误,我想要一个在验证集上表现最好的?你知道吗

我使用best\u ntree\u limit进行预测(如here所述),但这是否意味着我使用训练误差最小的模型进行预测?我猜我可以在某个地方更改它,以使用“最佳”度量的验证错误,但我很困惑,因为我从未在示例中看到有人这样做。你知道吗


Tags: 模型param错误evaltrainval分数label