private Map<FieldName, ? extends Classification> evaluateClassification( ModelEvaluationContext context) { TreeModel treeModel = getModel(); Trail trail = new Trail(); Node node = evaluateTree(trail, context); if (node == null) { return TargetUtil.evaluateClassificationDefault(context); } double missingValuePenalty = 1d; int missingLevels = trail.getMissingLevels(); if (missingLevels > 0) { missingValuePenalty = Math.pow(treeModel.getMissingValuePenalty(), missingLevels); } NodeScoreDistribution result = createNodeScoreDistribution(node, missingValuePenalty); return TargetUtil.evaluateClassification(result, context); }