@Test public void testReadWrite() throws Exception { Path tempModelFile = Files.createTempFile(getTempDir(), "model", ".pmml"); PMML model = buildDummyModel(); PMMLUtils.write(model, tempModelFile); assertTrue(Files.exists(tempModelFile)); PMML model2 = PMMLUtils.read(tempModelFile); List<Model> models = model2.getModels(); assertEquals(1, models.size()); assertInstanceOf(models.get(0), TreeModel.class); TreeModel treeModel = (TreeModel) models.get(0); assertEquals(123.0, treeModel.getNode().getRecordCount().doubleValue()); assertEquals(MiningFunction.CLASSIFICATION, treeModel.getMiningFunction()); }
private static void checkTreeModel(TreeModel treeModel) { assertEquals(TreeModel.SplitCharacteristic.BINARY_SPLIT, treeModel.getSplitCharacteristic()); assertEquals(TreeModel.MissingValueStrategy.DEFAULT_CHILD, treeModel.getMissingValueStrategy()); checkNode(treeModel.getNode()); }
public TreeModelEvaluator(PMML pmml, TreeModel treeModel){ super(pmml, treeModel); Node root = treeModel.getNode(); if(root == null){ throw new MissingElementException(treeModel, PMMLElements.TREEMODEL_NODE); } }
private List<Node> getPath(Node node){ TreeModel treeModel = getModel(); Node root = treeModel.getNode(); return getPathBetween(root, node); }
@Override public BiMap<String, Node> load(TreeModel treeModel){ ImmutableBiMap.Builder<String, Node> builder = new ImmutableBiMap.Builder<>(); builder = collectNodes(treeModel.getNode(), new AtomicInteger(1), builder); return builder.build(); }
private Node evaluateTree(Trail trail, EvaluationContext context){ TreeModel treeModel = getModel(); Node root = treeModel.getNode(); Boolean status = evaluateNode(trail, root, context); if(status != null && status.booleanValue()){ trail = handleTrue(trail, root, context); Node node = trail.getResult(); // "It is not possible that the scoring process ends in a Node which does not have a score attribute" if(node != null && !node.hasScore()){ throw new MissingAttributeException(node, PMMLAttributes.NODE_SCORE); } return node; } return null; }
@Override public VisitorAction accept(Visitor visitor) { VisitorAction status = visitor.visit(this); if (status == VisitorAction.CONTINUE) { visitor.pushParent(this); if ((status == VisitorAction.CONTINUE)&&hasExtensions()) { status = PMMLObject.traverse(visitor, getExtensions()); } if (status == VisitorAction.CONTINUE) { status = PMMLObject.traverse(visitor, getMiningSchema(), getOutput(), getModelStats(), getModelExplanation(), getTargets(), getLocalTransformations(), getNode(), getModelVerification()); } visitor.popParent(); } if (status == VisitorAction.TERMINATE) { return VisitorAction.TERMINATE; } return VisitorAction.CONTINUE; }
@Override public VisitorAction accept(Visitor visitor) { VisitorAction status = visitor.visit(this); if (status == VisitorAction.CONTINUE) { visitor.pushParent(this); if ((status == VisitorAction.CONTINUE)&&hasExtensions()) { status = PMMLObject.traverse(visitor, getExtensions()); } if (status == VisitorAction.CONTINUE) { status = PMMLObject.traverse(visitor, getMiningSchema(), getOutput(), getModelStats(), getModelExplanation(), getTargets(), getLocalTransformations(), getNode(), getModelVerification()); } visitor.popParent(); } if (status == VisitorAction.TERMINATE) { return VisitorAction.TERMINATE; } return VisitorAction.CONTINUE; }
Node jaxbNode1a = jaxbTreeModel.getNode();