jpmml / jpmml-xgboost

Java library and command-line application for converting XGBoost models to PMML
GNU Affero General Public License v3.0
128 stars 43 forks source link

Support for xgboost 2.0.0 #66

Closed szymoonl closed 9 months ago

szymoonl commented 2 years ago

I'm facing issue while trying to convert xgboost:

Aug 17, 2022 10:11:21 AM org.jpmml.sklearn.example.Main run
INFO: Parsing PKL..
Aug 17, 2022 10:11:21 AM org.jpmml.sklearn.example.Main run
INFO: Parsed PKL in 6 ms.
Aug 17, 2022 10:11:21 AM org.jpmml.sklearn.example.Main run
INFO: Converting PKL to PMML..
Aug 17, 2022 10:11:21 AM sklearn2pmml.pipeline.PMMLPipeline initTargetFields
WARNING: Attribute 'sklearn2pmml.pipeline.PMMLPipeline.target_fields' is not set. Assuming y as the name of the target field
Aug 17, 2022 10:11:21 AM org.jpmml.sklearn.example.Main run
SEVERE: Failed to convert PKL to PMML
java.lang.IllegalArgumentException: 2.0
        at org.jpmml.xgboost.Learner.loadUBJSON(Learner.java:172)
        at org.jpmml.xgboost.Learner.loadUBJSON(Learner.java:310)
        at org.jpmml.xgboost.XGBoostUtil.loadLearner(XGBoostUtil.java:86)
        at org.jpmml.xgboost.XGBoostUtil.loadLearner(XGBoostUtil.java:60)
        at xgboost.sklearn.Booster.loadLearner(Booster.java:52)
        at xgboost.sklearn.Booster.getLearner(Booster.java:42)
        at xgboost.sklearn.BoosterUtil.getLearner(BoosterUtil.java:110)
        at xgboost.sklearn.BoosterUtil.getNumberOfFeatures(BoosterUtil.java:55)
        at xgboost.sklearn.XGBClassifier.getNumberOfFeatures(XGBClassifier.java:38)
        at sklearn2pmml.pipeline.PMMLPipeline.initActiveFields(PMMLPipeline.java:576)
        at sklearn2pmml.pipeline.PMMLPipeline.encodePMML(PMMLPipeline.java:218)
        at org.jpmml.sklearn.example.Main.run(Main.java:226)
        at org.jpmml.sklearn.example.Main.main(Main.java:151)

Exception in thread "main" java.lang.IllegalArgumentException: 2.0
        at org.jpmml.xgboost.Learner.loadUBJSON(Learner.java:172)
        at org.jpmml.xgboost.Learner.loadUBJSON(Learner.java:310)
        at org.jpmml.xgboost.XGBoostUtil.loadLearner(XGBoostUtil.java:86)
        at org.jpmml.xgboost.XGBoostUtil.loadLearner(XGBoostUtil.java:60)
        at xgboost.sklearn.Booster.loadLearner(Booster.java:52)
        at xgboost.sklearn.Booster.getLearner(Booster.java:42)
        at xgboost.sklearn.BoosterUtil.getLearner(BoosterUtil.java:110)
        at xgboost.sklearn.BoosterUtil.getNumberOfFeatures(BoosterUtil.java:55)
        at xgboost.sklearn.XGBClassifier.getNumberOfFeatures(XGBClassifier.java:38)
        at sklearn2pmml.pipeline.PMMLPipeline.initActiveFields(PMMLPipeline.java:576)
        at sklearn2pmml.pipeline.PMMLPipeline.encodePMML(PMMLPipeline.java:218)
        at org.jpmml.sklearn.example.Main.run(Main.java:226)
        at org.jpmml.sklearn.example.Main.main(Main.java:151)

xgboost version:

Name: xgboost
Version: 2.0.0.dev0
Summary: XGBoost Python Package
Home-page: https://github.com/dmlc/xgboost
Author: 
Author-email: 
License: Apache-2.0
Location: /usr/local/src/xgboost/python-package
Requires: numpy, scipy
Required-by: autoviz

Version 1.6.1 is working fine.