xgboost模型保存转为pmml,并在python环境加载

注:此方法必须用原生xgboost训练出的模型,需要.model文件和.fmap文件,后文会说到如何生成.fmap文件。

一、环境配置

1.首先需要下载jdk并将环境配置好,可参考:

jdk 下载 安装 环境变量配置(图文)步骤教程超详细 - 砰砰的猿 - 博客园 (cnblogs.com)

2.再将maven下载配置好,可参考:

maven的下载安装配置教程(详细图文) - 砰砰的猿 - 博客园 (cnblogs.com)

3.下载转换工具:

GitHub - jpmml/jpmml-xgboost: Java library and command-line application for converting XGBoost models to PMML

4.参考以下4、5步骤:

lightgbm模型保存为pmml文件,并加载_lightgbm pmml-CSDN博客

二、生成.model文件和.fmap文件

1.生成.model文件

xgb_model = xgb.train(param, dtrain, num_boost_round=400)
# 模型训练
xgb_model.save_model('xgb_model.model')
# 保存为.model文件

2.生成.fmap文件,参考借鉴:

如何画XGBoost里面的决策树 - 知乎 (zhihu.com)

def ceate_feature_map(features):
    outfile = open('xgb.fmap', 'w')
    i = 0
    for feat in features:
        outfile.write('{0}\t{1}\tq\n'.format(i, feat))
        i = i + 1
    outfile.close()
ceate_feature_map(train_data.columns)#特征名列表

注:我发现.model文件好像无法保存模型的特征名称,.fmap文件能用来保存模型特征名称文件,文件打开后的格式如下:

中间就是自定义的特征名称了

三、转为.pmml文件

1.把.model文件和.fmap文件放入target目录下,生成的.pmml文件默认在此目录下

2.转到target目录下输入命令:

java -jar "E:\jpmml-xgboost-master\jpmml-xgboost-master\pmml-xgboost-example\target\pmml-xgboost-example-executable-1.8-SNAPSHOT.jar" --model-input xgb_model.model --fmap-input xgb.fmap --pmml-output xgb_model.pmml

参考:

xgb和lgb模型文件转pmml环境配置及步骤_lightgbm pmml-CSDN博客

四、模型加载

1.下载所需要的python模块

pip install sklearn2pmml -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pypmml -i https://pypi.tuna.tsinghua.edu.cn/simple

2.模型加载 

from sklearn2pmml import PMMLPipeline,sklearn2pmml
from pypmml import Model
m = Model.fromFile('xgb_model.pmml')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值