Closed farsunset closed 3 years ago
This error indicates that you have trained a regression-type XGBoost model using a categorical objective function (most likely, binary:logistic
).
Fix your Python code - it is non-sensical right now.
Okay, reopening, because the SkLearn2PMML/JPMML-SkLearn stack could issue a more informative exception message here.
Basically, should issue a humand-friendly message whenever an XGBRegressor
model type is paired with a categorical label, or XGBClassifier
is paired with a continuous label.
thanks
java -jar ./jpmml-sklearn-executable-1.6.25.jar --pkl-input pipeline.pkl.z --pmml-output pipeline.pmml
八月 12, 2021 4:54:56 下午 org.jpmml.sklearn.Main run 信息: Parsing PKL.. 八月 12, 2021 4:54:56 下午 org.jpmml.sklearn.Main run 信息: Parsed PKL in 35 ms. 八月 12, 2021 4:54:56 下午 org.jpmml.sklearn.Main run 信息: Converting PKL to PMML.. 八月 12, 2021 4:54:56 下午 org.jpmml.sklearn.Main run 严重: Failed to convert PKL to PMML java.lang.ClassCastException: org.jpmml.converter.ContinuousLabel cannot be cast to org.jpmml.converter.CategoricalLabel at org.jpmml.converter.regression.RegressionModelUtil.createBinaryLogisticClassification(RegressionModelUtil.java:98) at org.jpmml.converter.mining.MiningModelUtil.createBinaryLogisticClassification(MiningModelUtil.java:70) at org.jpmml.xgboost.BinomialLogisticRegression.encodeMiningModel(BinomialLogisticRegression.java:50) at org.jpmml.xgboost.GBTree.encodeMiningModel(GBTree.java:99) at org.jpmml.xgboost.Learner.encodeMiningModel(Learner.java:337) at xgboost.sklearn.BoosterUtil.encodeBooster(BoosterUtil.java:63) at xgboost.sklearn.XGBRegressor.encodeModel(XGBRegressor.java:45) at xgboost.sklearn.XGBRegressor.encodeModel(XGBRegressor.java:27) at sklearn.Estimator.encode(Estimator.java:83) at sklearn2pmml.pipeline.PMMLPipeline.encodePMML(PMMLPipeline.java:235) at org.jpmml.sklearn.Main.run(Main.java:226) at org.jpmml.sklearn.Main.main(Main.java:143)