@Override public Map<FieldName, ?> predictScores(Map<FieldName, FieldValue> preProcInputs) { LOG.debug("Predicting scores for pre processed inputs: = [{}]", preProcInputs); Map<FieldName, ?> predictedScores = eval.evaluate(preProcInputs); LOG.debug("Predicted scores = [{}]", predictedScores); return predictedScores; }
@Override public Map<FieldName, ?> predictScores(Map<FieldName, FieldValue> preProcInputs) { LOG.debug("Predicting scores for pre processed inputs: = [{}]", preProcInputs); Map<FieldName, ?> predictedScores = eval.evaluate(preProcInputs); LOG.debug("Predicted scores = [{}]", predictedScores); return predictedScores; }
Map variables = new HashMap(); variables.put("ANGLE", "3.0"); variables.put("PI", "3.14"); Evaluator evaluator = new Evaluator(); evaluator.setVariables(variables); String result = evaluator.evaluate("#{ANGLE} * #{PI} / 2"));
Map<FieldName, ?> actualResults = evaluator.evaluate(arguments); actualResults = Maps.filterKeys(actualResults, predicate::test);
Map<FieldName, ?> actualResults = evaluator.evaluate(arguments); actualResults = Maps.filterKeys(actualResults, predicate::test);
static protected EvaluationResponse evaluate(Evaluator evaluator, EvaluationRequest request){ logger.info("Received {}", request); Map<String, ?> requestArguments = request.getArguments(); EvaluationResponse response = new EvaluationResponse(request.getId()); Map<FieldName, FieldValue> arguments = new LinkedHashMap<>(); List<InputField> inputFields = evaluator.getInputFields(); for(InputField inputField : inputFields){ FieldName inputName = inputField.getName(); String key = inputName.getValue(); Object value = requestArguments.get(key); if(value == null && !requestArguments.containsKey(key)){ logger.warn("Evaluation request {} does not specify an input field {}", request.getId(), key); } FieldValue inputValue = inputField.prepare(value); arguments.put(inputName, inputValue); } logger.debug("Evaluation request {} has prepared arguments: {}", request.getId(), arguments); Map<FieldName, ?> results = evaluator.evaluate(arguments); // Jackson does not support the JSON serialization of <code>null</code> map keys results = replaceNullKey(results); logger.debug("Evaluation response {} has result: {}", response.getId(), results); response.setResults(EvaluatorUtil.decode(results)); logger.info("Returned {}", response); return response; }
Map<FieldName, ?> results = evaluator.evaluate(arguments);
@Override public Result evaluate(Map<Descriptor, ?> values) throws Exception { org.jpmml.evaluator.Evaluator evaluator = (org.jpmml.evaluator.Evaluator) getModelManager(); Map<FieldName, org.jpmml.evaluator.FieldValue> arguments = new LinkedHashMap<FieldName, org.jpmml.evaluator.FieldValue>(); Map<FieldName, DataField> dataFieldMap = new LinkedHashMap<FieldName, DataField>(); List<Descriptor> descriptors = getDescriptors(); for(Descriptor descriptor : descriptors){ FieldName field = FieldNameUtil.encodeDescriptor(descriptor); DataField dataField = dataFieldMap.get(field); if(dataField == null){ dataField = evaluator.getDataField(field); // For compatibility with generic PMML producer software if(dataField == null){ field = new FieldName(descriptor.getId()); dataField = evaluator.getDataField(field); } // End if if(dataField == null){ throw new IllegalArgumentException(); } dataFieldMap.put(field, dataField); } Object value = values.get(descriptor); org.jpmml.evaluator.FieldValue fieldValue = EvaluatorUtil.prepare(evaluator, field, value); arguments.put(field, fieldValue); } Map<FieldName, ?> result = evaluator.evaluate(arguments); Object targetValue = result.get(evaluator.getTargetField()); return new Result(EvaluatorUtil.decode(targetValue), values); }
Map<FieldName, ?> result = evaluator.evaluate(this.preparedRow);
Map<FieldName, ?> results = evaluator.evaluate(arguments);
Map<FieldName, ?> results = evaluator.evaluate(arguments);
Map<FieldName, ?> results = evaluator.evaluate(arguments);