xgboost中的访问训练和评估错误

2024-02-11

我开始使用Pythonxgboost后勤。有没有办法在每个训练时期获得训练和验证错误?我在其中找不到一个文档 https://xgboost.readthedocs.org/en/latest/python/index.html#contents

训练了一个简单的模型并得到了输出:

[09:17:37] src/tree/updater_prune.cc:74:树修剪结束,1根, 124个额外节点,0个剪枝节点,max_深度=6

[0] eval-rmse:0.407474 train-rmse:0.346349 [09:17:37] src/tree/updater_prune.cc:74:树修剪结束,1根,116额外 节点,0 个修剪节点,max_深度=6

1 https://xgboost.readthedocs.org/en/latest/python/index.html#contents评估-rmse:0.410902 火车-rmse:0.339925 [09:17:38] src/tree/updater_prune.cc:74:树修剪结束,1根,124额外 节点,0 个修剪节点,max_深度=6

[2] eval-rmse:0.413563 train-rmse:0.335941 [09:17:38] src/tree/updater_prune.cc:74:树修剪结束,1根,126额外 节点,0 个修剪节点,max_深度=6

[3] eval-rmse:0.418412 train-rmse:0.333071 [09:17:38] src/tree/updater_prune.cc:74:树修剪结束,1根,114额外 节点,0 个修剪节点,max_深度=6

不过我需要通过这些eval-rmse and train-rmse进一步在代码中或至少绘制这些曲线。


保存中间结果的一种方法是通过evals_result论证xgb.train method.

假设您创建了一个train and an evalXGB格式的矩阵,并初始化了一些参数params对于 XGBoost(就我而言,params = {'max_depth':2, 'eta':1, 'silent':1, 'objective':'binary:logistic' }).

  1. 创建一个空字典

    progress = dict()

  2. 创建一个监视列表(我猜您已经有了它,因为您正在打印 train-rmse)

    watchlist = [(train,'train-rmse'), (eval, 'eval-rmse')]

  3. 将这些传递给xgb.train

    bst = xgb.train(param, train, 10, watchlist, evals_result=progress)

在迭代结束时,progress字典将包含所需的训练/验证错误

> print progress
{'train-rmse': {'error': ['0.50000', ....]}, 'eval-rmse': { 'error': ['0.5000',....]}}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

xgboost中的访问训练和评估错误 的相关文章

随机推荐