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

NPE with weighted sum #49

Closed potz378 closed 4 years ago

potz378 commented 4 years ago

Hello i got a problem in trying to convert a model into a pmml file here is the code:

best_param['n_estimators'] = best4.best_ntree_limit xgb_pipeline = PMMLPipeline([("mapper", DataFrameMapper( [(i, None) for i in best4.feature_names])), ("classifier", XGBClassifier(**best_param))])

xgb_pipeline.fit(X_train, y_train)

sklearn2pmml(xgb_pipeline,path + '/test.pmml', with_repr=True, debug=True)

And i got the error SEVERE: Failed to convert java.lang.NullPointerException

potz378 commented 4 years ago

And below is the debug

python: 3.7.6 sklearn: 0.23.1 sklearn2pmml: 0.60.0 joblib: 0.14.1 sklearn_pandas: 1.8.0 pandas: 1.0.1 numpy: 1.18.1 java: N/A Executing command: java -cp C:\Users\user\anaconda3\lib\site-packages\sklearn2pmml\resources\gson-2.6.2.jar;C:\Users\user\anaconda3\lib\site-packages\sklearn2pmml\resources\guava-21.0.jar;C:\Users\user\anaconda3\lib\site-packages\sklearn2pmml\resources\h2o-genmodel-3.30.0.6.jar;C:\Users\user\anaconda3\lib\site-packages\sklearn2pmml\resources\h2o-logger-3.30.0.6.jar;C:\Users\user\anaconda3\lib\site-packages\sklearn2pmml\resources\h2o-tree-api-0.3.9.jar;C:\Users\user\anaconda3\lib\site-packages\sklearn2pmml\resources\istack-commons-runtime-3.0.8.jar;C:\Users\user\anaconda3\lib\site-packages\sklearn2pmml\resources\jakarta.activation-api-1.2.1.jar;C:\Users\user\anaconda3\lib\site-packages\sklearn2pmml\resources\jakarta.xml.bind-api-2.3.2.jar;C:\Users\user\anaconda3\lib\site-packages\sklearn2pmml\resources\jaxb-runtime-2.3.2.jar;C:\Users\user\anaconda3\lib\site-packages\sklearn2pmml\resources\jcommander-1.72.jar;C:\Users\user\anaconda3\lib\site-packages\sklearn2pmml\resources\jpmml-converter-1.4.2.jar;C:\Users\user\anaconda3\lib\site-packages\sklearn2pmml\resources\jpmml-h2o-1.1.1.jar;C:\Users\user\anaconda3\lib\site-packages\sklearn2pmml\resources\jpmml-lightgbm-1.3.2.jar;C:\Users\user\anaconda3\lib\site-packages\sklearn2pmml\resources\jpmml-python-1.0.6.jar;C:\Users\user\anaconda3\lib\site-packages\sklearn2pmml\resources\jpmml-sklearn-1.6.3.jar;C:\Users\user\anaconda3\lib\site-packages\sklearn2pmml\resources\jpmml-xgboost-1.4.2.jar;C:\Users\user\anaconda3\lib\site-packages\sklearn2pmml\resources\pickle-1.0.jar;C:\Users\user\anaconda3\lib\site-packages\sklearn2pmml\resources\pmml-agent-1.5.1.jar;C:\Users\user\anaconda3\lib\site-packages\sklearn2pmml\resources\pmml-model-1.5.1.jar;C:\Users\user\anaconda3\lib\site-packages\sklearn2pmml\resources\pmml-model-metro-1.5.1.jar;C:\Users\user\anaconda3\lib\site-packages\sklearn2pmml\resources\serpent-1.30.jar;C:\Users\user\anaconda3\lib\site-packages\sklearn2pmml\resources\slf4j-api-1.7.30.jar;C:\Users\user\anaconda3\lib\site-packages\sklearn2pmml\resources\slf4j-jdk14-1.7.30.jar org.jpmml.sklearn.Main --pkl-pipeline-input C:\Users\user\AppData\Local\Temp\pipeline-994e5ezt.pkl.z --pmml-output C:\Users\user\Downloads\Internships\Smartec\XGBOOST\Real/test.pmml Standard output is empty Standard error: Jul 24, 2020 5:48:53 PM org.jpmml.sklearn.Main run INFO: Parsing PKL.. Jul 24, 2020 5:48:53 PM org.jpmml.sklearn.Main run INFO: Parsed PKL in 61 ms. Jul 24, 2020 5:48:53 PM org.jpmml.sklearn.Main run INFO: Converting.. Jul 24, 2020 5:48:53 PM org.jpmml.sklearn.Main run SEVERE: Failed to convert java.lang.NullPointerException at org.jpmml.xgboost.ObjFunction.createMiningModel(ObjFunction.java:98) at org.jpmml.xgboost.BinomialLogisticRegression.encodeMiningModel(BinomialLogisticRegression.java:47) at org.jpmml.xgboost.GBTree.encodeMiningModel(GBTree.java:74) at org.jpmml.xgboost.Learner.encodeMiningModel(Learner.java:246) at xgboost.sklearn.BoosterUtil.encodeBooster(BoosterUtil.java:59) at xgboost.sklearn.XGBClassifier.encodeModel(XGBClassifier.java:45) at xgboost.sklearn.XGBClassifier.encodeModel(XGBClassifier.java:27) at sklearn2pmml.pipeline.PMMLPipeline.encodePMML(PMMLPipeline.java:231) at org.jpmml.sklearn.Main.run(Main.java:233) at org.jpmml.sklearn.Main.main(Main.java:151)

Exception in thread "main" java.lang.NullPointerException at org.jpmml.xgboost.ObjFunction.createMiningModel(ObjFunction.java:98) at org.jpmml.xgboost.BinomialLogisticRegression.encodeMiningModel(BinomialLogisticRegression.java:47) at org.jpmml.xgboost.GBTree.encodeMiningModel(GBTree.java:74) at org.jpmml.xgboost.Learner.encodeMiningModel(Learner.java:246) at xgboost.sklearn.BoosterUtil.encodeBooster(BoosterUtil.java:59) at xgboost.sklearn.XGBClassifier.encodeModel(XGBClassifier.java:45) at xgboost.sklearn.XGBClassifier.encodeModel(XGBClassifier.java:27) at sklearn2pmml.pipeline.PMMLPipeline.encodePMML(PMMLPipeline.java:231) at org.jpmml.sklearn.Main.run(Main.java:233) at org.jpmml.sklearn.Main.main(Main.java:151)

Preserved joblib dump file(s): C:\Users\user\AppData\Local\Temp\pipeline-994e5ezt.pkl.z