一、添加依赖
<dependency>
<groupId>ml.dmlc</groupId>
<artifactId>xgboost4j_2.12</artifactId>
<version>2.0.1</version>
</dependency>
二、调用模型进行推理
1.训练出的xgboost模型为一个大型的Json字符串,开头表明了预测所需的参数名称及参数类型,如下如所示
2.调用依赖中提供的方法加载模型并进行预测
private void XGBoostJavaPredictor(Float parameter1, Float parameter2, Float parameter3) throws XGBoostError {
// 加载XGBoost模型
Booster model = XGBoost.loadModel(MODEL_PATH);
// 构造待预测的数据
float[] features = {parameter1, parameter2, parameter3};
DMatrix dmatrix = new DMatrix(features, 1,features.length);
// 进行预测
float[][] predictions = model.predict(dmatrix);
// 打印预测结果
for (float[] prediction : predictions) {
for (float value : prediction) {
System.out.println(value);
}
}
}
三、注意事项!!!
以上方式在win/mac环境下是可以直接运行的,但如果放在服务器上跑则会因缺少OpenMP而运行失败,如下图所示:
因此要在Linux环境中安装OpenMP依赖。以centos为例,安装命令如下
sudo yum install libgomp
若是放在docker中运行,则需要在dockerFile中添加以下命令
RUN yum install -y libgomp