public JPmmlModelRunner(Evaluator evaluator, ModelOutputs modelOutputs) { this.eval = evaluator; this.modelOutputs = modelOutputs; activeFields = evaluator.getActiveFields(); predictedFields = eval.getPredictedFields(); outputFields = eval.getOutputFields(); }
private static ModelOutputs create(PMML pmmlModel, List<String> streams) { final Set<String> fieldNames = new LinkedHashSet<>(); final Evaluator evaluator = JpmmlFactory.newEvaluator(pmmlModel); for (FieldName predictedField : evaluator.getPredictedFields()) { fieldNames.add(predictedField.getValue()); } for (FieldName outputField : evaluator.getOutputFields()) { fieldNames.add(outputField.getValue()); } final Map<String, Fields> toDeclare = streams.stream() .collect(Collectors.toMap(Function.identity(), (x) -> new Fields(new ArrayList<>(fieldNames)))); return new JpmmlModelOutputs(toDeclare); } }
public JPmmlModelRunner(Evaluator evaluator, ModelOutputs modelOutputs) { this.eval = evaluator; this.modelOutputs = modelOutputs; activeFields = evaluator.getActiveFields(); predictedFields = eval.getPredictedFields(); outputFields = eval.getOutputFields(); }
private static ModelOutputs create(PMML pmmlModel, List<String> streams) { final Set<String> fieldNames = new LinkedHashSet<>(); final Evaluator evaluator = JpmmlFactory.newEvaluator(pmmlModel); for (FieldName predictedField : evaluator.getPredictedFields()) { fieldNames.add(predictedField.getValue()); } for (FieldName outputField : evaluator.getOutputFields()) { fieldNames.add(outputField.getValue()); } final Map<String, Fields> toDeclare = new LinkedHashMap<>(); for (String stream : streams) { toDeclare.put(stream, new Fields(new ArrayList<>(fieldNames))); } return new JpmmlModelOutputs(toDeclare); } }
private List<MLModelField> doGetOutputFieldsForPMMLStream(String pmmlContents) throws SAXException, JAXBException, UnsupportedEncodingException { List<MLModelField> fieldNames = new ArrayList<>(); PMMLManager pmmlManager = new PMMLManager(IOUtil.unmarshal(new ByteArrayInputStream(pmmlContents.getBytes("UTF-8")))); Evaluator modelEvaluator = (ModelEvaluator<?>) pmmlManager.getModelManager(null, ModelEvaluatorFactory.getInstance()); modelEvaluator.getPredictedFields().forEach((f) -> fieldNames.add(getModelField(modelEvaluator.getDataField(f)))); modelEvaluator.getOutputFields().forEach((f) -> { OutputField outputField = modelEvaluator.getOutputField(f); ResultFeatureType resultFeatureType = outputField.getFeature(); if (resultFeatureType != ResultFeatureType.PREDICTED_VALUE && resultFeatureType != ResultFeatureType.PREDICTED_DISPLAY_VALUE) { fieldNames.add(getModelField(outputField)); } }); return fieldNames; }
private List<MLModelField> doGetOutputFieldsForPMMLStream(String pmmlContents) throws SAXException, JAXBException { List<MLModelField> fieldNames = new ArrayList<>(); PMMLManager pmmlManager = new PMMLManager(IOUtil.unmarshal(new ByteArrayInputStream(pmmlContents.getBytes()))); Evaluator modelEvaluator = (ModelEvaluator<?>) pmmlManager.getModelManager(null, ModelEvaluatorFactory.getInstance()); modelEvaluator.getPredictedFields().forEach((f) -> fieldNames.add(getModelField(modelEvaluator.getDataField(f)))); modelEvaluator.getOutputFields().forEach((f) -> { OutputField outputField = modelEvaluator.getOutputField(f); ResultFeatureType resultFeatureType = outputField.getFeature(); if (resultFeatureType != ResultFeatureType.PREDICTED_VALUE && resultFeatureType != ResultFeatureType.PREDICTED_DISPLAY_VALUE) { fieldNames.add(getModelField(outputField)); } }); return fieldNames; }
this.predictedFields = evaluator.getPredictedFields(); // predicted columns this.outputFields = evaluator.getOutputFields(); // derived output columns (based on predicted columns)