classificationevaluationpredictionio

PredictionIO - getting error when build and run Evaluation metrics


I followed this quickstart:

https://docs.prediction.io/templates/classification/quickstart/

and this document for evaluation metrics

https://docs.prediction.io/evaluation/paramtuning/

Everything seems ok until the step build and run evaluation metrics

pio eval org.template.classification.AccuracyEvaluation \ org.template.classification.EngineParamsList I am getting the exception: Exception in thread "main" scala.reflect.internal.MissingRequirementError: object org.template.classification.AccuracyEvaluation not found. at scala.reflect.internal.MissingRequirementError$.signal(MissingRequirementError.scala:16) at scala.reflect.internal.MissingRequirementError$.notFound(MissingRequirementError.scala:17) at scala.reflect.internal.Mirrors$RootsBase.ensureModuleSymbol(Mirrors.scala:126) at scala.reflect.internal.Mirrors$RootsBase.staticModule(Mirrors.scala:161) at scala.reflect.internal.Mirrors$RootsBase.staticModule(Mirrors.scala:21) at io.prediction.workflow.WorkflowUtils$.getEvaluation(WorkflowUtils.scala:103) at io.prediction.workflow.CreateWorkflow$$anonfun$19.apply(CreateWorkflow.scala:146) at io.prediction.workflow.CreateWorkflow$$anonfun$19.apply(CreateWorkflow.scala:144) Could anyone help me with this? Thank you very much.


Solution

  • Had the exact same problem. Fixed it by doing the following:

    For each .scala file in engine_dir/src/main/scala/org/template/engine_name/ you need to change the first line from...

    package <SomeTemplateName>
    

    To the following (replacing engine_name with the name of the folder in the path mentioned above):

    package org.template.<engine_name>
    

    Then, in engine.json you need to change the following line...

    "engineFactory": "<template name>.<template engine>",
    

    To the following (once again replacing engine_name with the name of the folder in the path mentioned above):

    "engineFactory": "org.template.<engine name>.<template engine>",
    

    Now re-run...

    pio build
    pio train
    pio deploy
    

    Then you should be able to run the model evaluation without errors.