/** * Create the normalized output for model, since the final score should be 0 ~ 1000, instead of 0.o ~ 1.0 * * @return output for model */ protected Output createNormalizedOutput() { Output output = new Output(); output.withOutputFields(createOutputField(RAW_RESULT, OpType.CONTINUOUS, DataType.DOUBLE, ResultFeatureType.PREDICTED_VALUE)); OutputField finalResult = createOutputField(FINAL_RESULT, OpType.CONTINUOUS, DataType.DOUBLE, ResultFeatureType.TRANSFORMED_VALUE); finalResult.withExpression(createNormExpr()); output.withOutputFields(finalResult); return output; }
@Override public VisitorAction visit(Output output){ if(output.hasOutputFields()){ this.outputFields.addAll(output.getOutputFields()); } return super.visit(output); }
@Override public VisitorAction accept(Visitor visitor) { VisitorAction status = visitor.visit(this); if (status == VisitorAction.CONTINUE) { visitor.pushParent(this); if ((status == VisitorAction.CONTINUE)&&hasExtensions()) { status = org.dmg.pmml.PMMLObject.traverse(visitor, getExtensions()); } if ((status == VisitorAction.CONTINUE)&&hasOutputFields()) { status = org.dmg.pmml.PMMLObject.traverse(visitor, getOutputFields()); } visitor.popParent(); } if (status == VisitorAction.TERMINATE) { return VisitorAction.TERMINATE; } return VisitorAction.CONTINUE; }
@Override public TreeModel encodeModel(Schema schema){ S4Object binaryTree = getObject(); RGenericVector tree = (RGenericVector)binaryTree.getAttributeValue("tree"); Output output; switch(this.miningFunction){ case REGRESSION: output = new Output(); break; case CLASSIFICATION: CategoricalLabel categoricalLabel = (CategoricalLabel)schema.getLabel(); output = ModelUtil.createProbabilityOutput(DataType.DOUBLE, categoricalLabel); break; default: throw new IllegalArgumentException(); } output.addOutputFields(ModelUtil.createEntityIdField(FieldName.create("nodeId"))); TreeModel treeModel = encodeTreeModel(tree, schema) .setOutput(output); return treeModel; }
.setDataType(DataType.INTEGER); output.addOutputFields(nodeIdField);
public Output addOutputFields(OutputField... outputFields) { getOutputFields().addAll(Arrays.asList(outputFields)); return this; }
/** * Create an instance of {@link Output } * */ public Output createOutput() { return new Output(); }
static private Set<Field<?>> getModelFields(DeepFieldResolver resolver, Model model){ Output output = model.getOutput(); if(output != null && output.hasOutputFields()){ return resolver.getFields(model, output); } else { return resolver.getFields(model); } }
@Override public Output addExtensions(Extension... extensions) { getExtensions().addAll(Arrays.asList(extensions)); return this; }
output = new Output(); .setSegmentId(id); output.addOutputFields(outputField);
@Override protected ContinuousOutputFeature toContinuousFeature(FieldName name, DataType dataType, Supplier<? extends Expression> expressionSupplier){ PMMLEncoder encoder = ensureEncoder(); Output output = getOutput(); OutputField outputField = OutputUtil.getOutputField(output, name); if(outputField == null){ Expression expression = expressionSupplier.get(); outputField = new OutputField(name, dataType) .setOpType(OpType.CONTINUOUS) .setResultFeature(ResultFeature.TRANSFORMED_VALUE) .setFinalResult(false) .setExpression(expression); output.addOutputFields(outputField); } return new ContinuousOutputFeature(encoder, output, outputField); }
public Output addOutputFields(OutputField... outputFields) { getOutputFields().addAll(Arrays.asList(outputFields)); return this; }
/** * Create an instance of {@link Output } * */ public Output createOutput() { return new Output(); }
static private Set<Field<?>> getModelFields(DeepFieldResolver resolver, Model model){ Output output = model.getOutput(); if(output != null && output.hasOutputFields()){ return resolver.getFields(model, output); } else { return resolver.getFields(model); } }
@Override public Output addExtensions(Extension... extensions) { getExtensions().addAll(Arrays.asList(extensions)); return this; }
Output output = new Output() .addOutputFields(ModelUtil.createProbabilityField(FieldName.create("decisionFunction(" + categoricalLabel.getValue(i) + ")"), DataType.DOUBLE, categoricalLabel.getValue(i)));
@Override public VisitorAction visit(Output output){ if(output.hasOutputFields()){ this.outputFields.addAll(output.getOutputFields()); } return super.visit(output); }
.setExpression(derivedField.getExpression()); output.addOutputFields(outputField);
@Override public VisitorAction accept(Visitor visitor) { VisitorAction status = visitor.visit(this); if (status == VisitorAction.CONTINUE) { visitor.pushParent(this); if ((status == VisitorAction.CONTINUE)&&hasExtensions()) { status = org.dmg.pmml.PMMLObject.traverse(visitor, getExtensions()); } if ((status == VisitorAction.CONTINUE)&&hasOutputFields()) { status = org.dmg.pmml.PMMLObject.traverse(visitor, getOutputFields()); } visitor.popParent(); } if (status == VisitorAction.TERMINATE) { return VisitorAction.TERMINATE; } return VisitorAction.CONTINUE; }
@Override public Map<FieldName, org.dmg.pmml.OutputField> load(Output output){ return IndexableUtil.buildMap(output.getOutputFields()); } });