jpmml / jpmml-lightgbm

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

Support for empty (constant) boosters #41

Closed Gufra-bollom closed 3 years ago

Gufra-bollom commented 3 years ago

ERROR - Convert lightgbm model to pmml error! b'Exception in thread "main" java.lang.NullPointerException org.jpmml.lightgbm.LightGBMUtil.parseStringArray(LightGBMUtil.java:100) org.jpmml.lightgbm.LightGBMUtil.parseIntArray(LightGBMUtil.java:111) org.jpmml.lightgbm.Section.getIntArray(Section.java:62) org.jpmml.lightgbm.Tree.load(Tree.java:79) org.jpmml.lightgbm.GBDT.load(GBDT.java:119) org.jpmml.lightgbm.LightGBMUtil.loadGBDT(LightGBMUtil.java:53) org.jpmml.lightgbm.LightGBMUtil.loadGBDT(LightGBMUtil.java:45) org.jpmml.lightgbm.Main.run(Main.java:125) org.jpmml.lightgbm.Main.main(Main.java:118)

vruusmann commented 3 years ago

Reproducible example about how you managed to produce a LightGBM model text file that contains a null value for the right_child attribute?

Gufra-bollom commented 3 years ago

Reproducible example about how you managed to produce a LightGBM model text file that contains a null value for the right_child attribute?

I trained a multi-class model with lightGBM with hyper-parameter "num_class" value as 6, but actual label class number in training dataset was 5, and then I got a lightGBM model with following leave information:

Tree=5 num_leaves=1 num_cat=0 split_feature= split_gain= threshold= decision_type= left_child= right_child= leaf_value=-34.538776391283193 leaf_count= internal_value= internal_count= shrinkage=1.39804e-76

and then when I tried to transfer this model into pmml model, nullpointer exception occured.