/** * @see LoadingModelEvaluatorBuilder#load(InputStream) * @see LoadingModelEvaluatorBuilder#load(InputStream, String) */ @Deprecated static public Evaluator createEvaluator(InputStream is) throws SAXException, JAXBException { EvaluatorBuilder evaluatorBuilder = new LoadingModelEvaluatorBuilder() .load(is); Evaluator evaluator = evaluatorBuilder.build(); // Perform self-testing evaluator.verify(); return evaluator; } }
@Override public Evaluator getEvaluator() throws Exception { PMML pmml = getPMML(); EvaluatorBuilder evaluatorBuilder = new ModelEvaluatorBuilder(pmml); Evaluator evaluator = evaluatorBuilder.build(); evaluator.verify(); return evaluator; }
@Override public Evaluator getEvaluator() throws Exception { PMML pmml = getPMML(); EvaluatorBuilder evaluatorBuilder = new ModelEvaluatorBuilder(pmml); Evaluator evaluator = evaluatorBuilder.build(); evaluator.verify(); return evaluator; }
@Override public Model readFrom(Class<Model> type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String, String> httpHeaders, InputStream entityStream) throws IOException { MultivaluedMap<String, String> queryParameters = this.uriInfo.getQueryParameters(); String modelName = queryParameters.getFirst("modelName"); CountingInputStream countingIs = new CountingInputStream(entityStream); HashingInputStream hashingIs = new HashingInputStream(Hashing.md5(), countingIs); EvaluatorBuilder evaluatorBuilder; try { evaluatorBuilder = this.modelEvaluatorBuilder.clone() .load(hashingIs, modelName); } catch(SAXException | JAXBException e){ logger.error("Failed to load the PMML document", e); throw new BadRequestException(e); } catch(PMMLException pe){ logger.error("Failed to find a scorable model element", pe); throw new BadRequestException(pe); } Evaluator evaluator; try { evaluator = evaluatorBuilder.build(); evaluator.verify(); } catch(PMMLException pe){ logger.error("Failed to build a model evaluator", pe); throw new BadRequestException(pe); } Model model = new Model(evaluator); model.putProperty(Model.PROPERTY_FILE_SIZE, countingIs.getCount()); model.putProperty(Model.PROPERTY_FILE_MD5SUM, (hashingIs.hash()).toString()); return model; }
@Override public void execute() throws Exception { PMML pmml = readPMML(this.model); CsvUtil.Table inputTable = readTable(this.input, this.separator); CsvUtil.Table outputTable = readTable(this.output, this.separator); EvaluatorBuilder evaluatorBuilder = new ModelEvaluatorBuilder(pmml) .setModelEvaluatorFactory((ModelEvaluatorFactory)newInstance(this.modelEvaluatorFactoryClazz)); Evaluator evaluator = evaluatorBuilder.build(); // Perform self-testing evaluator.verify(); java.util.function.Function<String, String> cellParser = createCellParser(new HashSet<>(this.missingValues)); List<? extends Map<FieldName, ?>> inputRecords = BatchUtil.parseRecords(inputTable, cellParser); List<? extends Map<FieldName, ?>> outputRecords = BatchUtil.parseRecords(outputTable, cellParser); Predicate<FieldName> predicate; if(this.ignoredFields != null && this.ignoredFields.size() > 0){ predicate = (FieldName name) -> !this.ignoredFields.contains(name); } else { predicate = (FieldName name) -> true; } List<Conflict> conflicts; try(Batch batch = createBatch(evaluator, inputRecords, outputRecords, predicate)){ conflicts = BatchUtil.evaluate(batch, new PMMLEquivalence(this.precision, this.zeroThreshold)); } for(Conflict conflict : conflicts){ System.err.println(conflict); } }
.setOutputFilter(this.filterOutput ? OutputFilters.KEEP_FINAL_RESULTS : OutputFilters.KEEP_ALL); Evaluator evaluator = evaluatorBuilder.build();