-
Notifications
You must be signed in to change notification settings - Fork 173
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Missing field when trying to score lightgbm model #48
Comments
@vruusmann hopefully you'll be able to help me. I generated PMML files for the models in the jpmml-lightgbm package to compare to my model and some of them contain "transformedLgbmValue". I'm however struggling to get this to work with the openscoring-service. Any help would be much appreciated cheers. |
It's interesting that the same (and possibly very major) issue gets reported twice by two different people in such a short timeframe. Issue 47 is about XGBoost, whereas this issue is about LightGBM. However, the exception condition is exactly the same - the second stage of a GBT model (a This issue provides a fully reproducible example, so I can observe this exceptional behaviour myself - thanks for that! I'm puzzled right now. In most cases this exception means that the first stage of the GBT model was executed with incomplete input. But I can see that in this case the argument data record is complete (contains values for all seven input fields). |
The most puzzling part for me is that if I download the latest 1.4.8 release of the JPMML-Evaluator command-line application, and convert the JSON request to a CSV file request, then the prediction succeeds without problem:
If there was a problem with the PMML file, or the 1.4.8 version of the JPMML-Evaluator library, then the above execution should fail with the same It's worth pointing out that issue 47 reports that the latest 1.4.X release of Openscoring works fine. It's the 2.0-SNAPSHOT codebase (ie. git clone) that is broken. |
On line 60 of the example <OutputField name="transformedLgbmValue" optype="continuous" dataType="double" feature="transformedValue" isFinalResult="false"> If the value of the <OutputField name="transformedLgbmValue" optype="continuous" dataType="double" feature="transformedValue" isFinalResult="true"> This attribute value was toggled in one of the latest JPMML-LightGBM (as well as JPMML-XGBoost) releases. Both |
@vruusmann so the current solution is to modify the xgb/lgb pmml file manually? |
Cheers @vruusmann |
I am getting |
@sam-s If you're absolutely sure that your input data record is complete (ie. there are no missing/omitted) values, then it's the same thing |
It's possible to disable output field filtering by commenting out this line (invocation of This issue only affects the WIP codebase. If you've bothered to build a WIP version manually, then my recommendation is that you should comment out the above line, and rebuild. |
Hi i've used https://github.com/jpmml/jpmml-lightgbm to generate a PMML file from a lightgbm model
lightgbm.txt
lightgbm.pmml.txt
When i load this into the server i get the following response
curl -X PUT --data-binary @lightgbm.pmml -H "Content-type: text/xml" http://localhost:8080/openscoring/model/lightgbm
However when i try to test this i get the following error
curl -X POST --data-binary @lightgbm_request.json -H "Content-type: application/json" http://localhost:8080/openscoring/model/lightgbm
with the following request json
Based off the returned model schema i don't understand why i can't score this? Looking through the PMML file there is a transformedLgbmValue but it isn't in the expected inputFields?
The text was updated successfully, but these errors were encountered: