org.jpmml.evaluator
Interface Evaluator

All Superinterfaces:
Consumer
All Known Implementing Classes:
NeuralNetworkEvaluator, RandomForestEvaluator, RegressionModelEvaluator, TreeModelEvaluator

public interface Evaluator
extends Consumer

Performs the evaluation of a Model in "interpreted mode".

Obtaining Evaluator instance:
 PMML pmml = ...;
 PMMLManager pmmlManager = new PMMLManager(pmml);
 Evaluator evaluator = (Evaluator)pmmlManager.getModelManager(null, ModelEvaluatorFactory.getInstance());
 
Preparing active fields:
 Map<FieldName, Object> parameters = new LinkedHashMap<FieldName, Object>();
 List<FieldName> activeFields = evaluator.getActiveFields();
 for(FieldName activeField : activeFields){
   parameters.put(activeField, evaluator.prepare(activeField, ...));
 }
 
Performing the evaluation:
 Map<FieldName, ?> result = evaluator.evaluate(parameters);
 
Retrieving the value of the predicted field and output fields:
 FieldName targetField = evaluator.getTarget();
 Object targetValue = result.get(targetField);

 List<FieldName> outputFields = evaluator.getOutputFields();
 for(FieldName outputField : outputFields){
   Object outputValue = result.get(outputField);
 }
 
Decoding complex value to simple value:
 Object value = ...;
 if(value instanceof Computable){
   Computable<?> computable = (Computable<?>)value;

   value = computable.getResult();
 }
 

See Also:
EvaluatorUtil

Method Summary
 Map<FieldName,?> evaluate(Map<FieldName,?> parameters)
           
 FieldName getTarget()
          Convenience method for retrieving the predicted field.
 Object prepare(FieldName name, String string)
          Prepares the input value for a field
 
Methods inherited from interface org.jpmml.manager.Consumer
getActiveFields, getDataField, getMiningField, getOutputField, getOutputFields, getPredictedFields, getSummary
 

Method Detail

getTarget

FieldName getTarget()
Convenience method for retrieving the predicted field.

Returns:
The predicted field
Throws:
ModelManagerException - If the number of predicted fields is not exactly one
See Also:
Consumer.getPredictedFields()

prepare

Object prepare(FieldName name,
               String string)
Prepares the input value for a field

Parameters:
name - The name of the field
string - The String representation of the input value. Use null to represent missing input value.
Throws:
EvaluationException - If the input value preparation fails
See Also:
Consumer.getDataField(FieldName), Consumer.getMiningField(FieldName)

evaluate

Map<FieldName,?> evaluate(Map<FieldName,?> parameters)
Parameters:
parameters - Map of active field values.
Returns:
Map of predicted field and output field values. Simple values are represented using the Java equivalents of PMML data types (eg. String, Integer, Float, Double etc.). Complex values are represented as instances of Computable that return simple values.
Throws:
EvaluationException - If the evaluation fails
See Also:
Computable


Copyright © 2013 University of Tartu. All Rights Reserved.