Compiled Model Predictor: the evaluation method of the model could not be executed

Hi to everybody,

I was playing around with some PMML amenities in KNIME. It’s great that KNIME give so much support on PMML, which is the de facto standard for predictive models storage and exchange. According to this blog the usage of PMML Compiler and Compiled Model Predictor nodes can lead to predictions 4 times faster than the non-compiled PMML versions.

I gave it a try but it gave me the following error with no more details:

 

Execute failed: The evaluation method of the model could not be executed

 

Is it possible that PMML Compiler and Compiled Model Predictor nodes cannot be used with ensemble models? When I test them with a PMML non-ensemble model they seems to work well.

Thanks,

Gio

Hi Gio,

some ensemble types work with the Compiled Model Predictor, but unfortunately not all. Can you share the PMML model you tried it with? Did you create that model in KNIME or another software?

Kind regards,

Alexander

Hi Alexander,

Thanks for your reply. The PMML model (version 4.2) in question was developed using KNIME (version 3.3.1). As I cannot share that specific model, I re-built a similar example dummy workflow to share with you (attached).

The model is a regression Random Forest and it was built using the following sequence of nodes:

  1. Random Forest Learner (Regression)

  2. Tree Ensemble Model Extract

  3. Table to PMML Ensemble

  4. Empty PMML Model Creator

  5. PMML Transformation Appender

  6. PMML Model Appender

  7. PMML Validation Data Appender

  8. PMML Writer

  9. PMML Reader

  10. PMML Compiler

  11. Compiled Model Predictor

Can you please tell me which type of ensemble models do work with Compiled Model Predictor and which do not?

Thank in advance

Gio

Here is the example dummy workflow.

Hi Alexander,

Is there any news on this issue? Can you please tell me which type of ensemble models do work with Compiled Model Predictor and which do not?

Regards,

Gio

Hi Gio,
sorry for taking so long to respond! I think when the Compiled Model Predictor was developed we did not have regression trees yet and this is why it fails. Deep down it seems to call one of the models in the ensemble and expects it to return a string of characters, but actually gets a number and then fails. So I’m afraid the problem are the regression trees.
Kind regards
Alexander

Hi Alexander,
Thanks for your reply. That makes sense. Any chance that this node will be extended to be usable also with regression model in the future?

Hi, In general the model compilation does not work that well for large models, e.g. ensembles, because the translation process is slow and the Java virtual machine has constraints on class and method sizes that make some large compiled ensembles unusable. So if this keeps coming up, I might invest the time to do it, but I can’t promise anything :slight_smile:

OK thank you for the clarification. Have a nice day!