一、选择合适的xgboost版本
c接口预测xgboost时最好选择release_0.90,原因如下:
- 最新版本release_1.4.2不支持gcc4.8.5的编译,而我们项目的线上和开发环境的gcc版本都是4.8.5
- release_0.90这个版本是刚好支持gcc4.8.5的xgboost版本,release_1.0就要求gcc5.0以上了
- release_0.90这个版本编译出来的lib库,包含了libxgboost.a和libxgboost.so,而最新版本release_1.4.2只支持libxgboost.so
- release_0.72版本,虽然也支持gcc4.8.5,也编译后有libxgboost.a和libxgboost.so。但是XGBClassifier不支持save_model这个函数。导致python脚本离线训练的xgboost,无法保存成本地模型!这是个痛点!
简而言之,就是版本太新了不行,太老了,也不行!
注意,一旦选择了xgboost的release_0.90版本后,在pip install的时候也得选择0.90。确保离线python脚本训练的模型和后期c++在线预测的xgboost版本一致。