求解答:xgboost 命令行训练和python接口训练得到的模型不一样


如题:数据统一使用xgboost/demo/rank下的mq2008数据进行训练,一种训练方式采用命令行:xgboost mq2008.conf task=train,另一种训练方式采用原生python而非scikit-learn,分别得到模型dump之后有差异,但是差异很奇怪,只是选择分裂的特征index不同,分裂value完全一致,训练了100颗树,其他参数均选择默认。
附上两个模型的部分
1、命令行训练
<booster[0]:
0:[f39<0.598631501] yes=1,no=2,missing=1
1:[f24<0.503728509] yes=3,no=4,missing=3
3:[f23<0.623638988] yes=7,no=8,missing=7
7:leaf=-0.0802629143
8:leaf=0.0331640467
4:[f17<0.639610529] yes=9,no=10,missing=9
9:[f41<0.414285481] yes=19,no=20,missing=19
19:leaf=-0.0219882298
20:leaf=-0.0685327575
10:[f41<0.633333504] yes=21,no=22,missing=22
21:leaf=0.063892968
22:leaf=-0.0375602506>

2、python训练
<booster[0]:
0:[f38<0.598631501] yes=1,no=2,missing=1
1:[f23<0.503728509] yes=3,no=4,missing=3
3:[f22<0.623638988] yes=7,no=8,missing=7
7:leaf=-0.0802629143
8:leaf=0.0331640467
4:[f16<0.639610529] yes=9,no=10,missing=9
9:[f40<0.414285481] yes=19,no=20,missing=19
19:leaf=-0.0219882298
20:leaf=-0.0685327575
10:[f40<0.633333504] yes=21,no=22,missing=22
21:leaf=0.063892968
22:leaf=-0.0375602506>
已邀请:

要回复问题请先登录注册

返回顶部