if (children.isEmpty()) { Collection<ScoreDistribution> scoreDistributions = root.getScoreDistributions(); Prediction prediction; if (scoreDistributions != null && !scoreDistributions.isEmpty()) {
private static void checkNode(Node node) { assertNotNull(node.getId()); List<ScoreDistribution> scoreDists = node.getScoreDistributions(); int numDists = scoreDists.size(); if (numDists == 0) {
public Node addScoreDistributions(ScoreDistribution... scoreDistributions){ getScoreDistributions().addAll(Arrays.asList(scoreDistributions)); return this; }
public Node addScoreDistributions(ScoreDistribution... scoreDistributions){ getScoreDistributions().addAll(Arrays.asList(scoreDistributions)); return this; }
@Override public VisitorAction visit(Node node){ if(node.hasScoreDistributions()){ List<ScoreDistribution> scoreDistributions = node.getScoreDistributions(); for(ListIterator<ScoreDistribution> it = scoreDistributions.listIterator(); it.hasNext(); ){ it.set(intern(it.next())); } } return super.visit(node); }
@Override public VisitorAction visit(Node node){ if(node.hasScoreDistributions()){ List<ScoreDistribution> scoreDistributions = node.getScoreDistributions(); for(ListIterator<ScoreDistribution> it = scoreDistributions.listIterator(); it.hasNext(); ){ it.set(intern(it.next())); } } return super.visit(node); }
@Override public Node encode(Node node, int offset){ String score = categories.get(this.classes.get(offset) - 1); Integer recordCount = n.getValue(offset); node .setScore(score) .setRecordCount(recordCount.doubleValue()); if(hasScoreDistribution){ node = NodeUtil.toComplexNode(node); List<ScoreDistribution> scoreDistributions = node.getScoreDistributions(); for(int i = 0; i < categories.size(); i++){ List<? extends Number> recordCounts = this.recordCounts.get(i); ScoreDistribution scoreDistribution = new ScoreDistribution() .setValue(categories.get(i)) .setRecordCount(recordCounts.get(offset).doubleValue()); scoreDistributions.add(scoreDistribution); } } return node; } };
@Override public VisitorAction visit(Node node){ TreeModel treeModel = getTreeModel(); MiningFunction miningFunction = treeModel.getMiningFunction(); switch(miningFunction){ case REGRESSION: if(node.hasScoreDistributions()){ List<ScoreDistribution> scoreDistributions = node.getScoreDistributions(); scoreDistributions.clear(); } break; default: break; } return super.visit(node); }
@Override public Node encode(Node node, Number splitValue, RNumberVector<?> terminalClassCount){ if(splitValue.doubleValue() != 0d || (terminalClassCount == null || terminalClassCount.size() != levels.size())){ throw new IllegalArgumentException(); } node = NodeUtil.toComplexNode(node); List<ScoreDistribution> scoreDistributions = node.getScoreDistributions(); Double maxProbability = null; for(int i = 0; i < terminalClassCount.size(); i++){ String value = levels.getValue(i); Double probability = ValueUtil.asDouble(terminalClassCount.getValue(i)); if(maxProbability == null || (maxProbability).compareTo(probability) < 0){ node.setScore(value); maxProbability = probability; } ScoreDistribution scoreDisctibution = new ScoreDistribution(value, probability); scoreDistributions.add(scoreDisctibution); } return node; } };
List<ScoreDistribution> scoreDistributions = node.getScoreDistributions();
if (children.isEmpty()) { Collection<ScoreDistribution> scoreDistributions = root.getScoreDistributions(); Prediction prediction; if (scoreDistributions != null && !scoreDistributions.isEmpty()) {
static public ComplexNode toComplexNode(Node node){ ComplexNode result = new ComplexNode() .setId(node.getId()) .setScore(node.getScore()) .setRecordCount(node.getRecordCount()) .setDefaultChild(node.getDefaultChild()) .setPredicate(node.getPredicate()); if(node.hasNodes()){ (result.getNodes()).addAll(node.getNodes()); } // End if if(node.hasScoreDistributions()){ (result.getScoreDistributions()).addAll(node.getScoreDistributions()); } return result; } }
(value.getScoreDistributions()).addAll(node.getScoreDistributions());
(value.getScoreDistributions()).addAll(node.getScoreDistributions());
private <V extends Number> NodeScoreDistribution<V> createNodeScoreDistribution(ValueFactory<V> valueFactory, Node node, double missingValuePenalty){ List<ScoreDistribution> scoreDistributions = node.getScoreDistributions();
List<ScoreDistribution> scoreDistributions = result.getScoreDistributions();
(result.getScoreDistributions()).addAll(scoreDistributions); } else