public static TargetValue getTargetValue(Target target, Object value) { DataType dataType = TypeUtil.getDataType(value); List<TargetValue> targetValues = target.getTargetValues(); for (TargetValue targetValue : targetValues) { if (TypeUtil.equals( dataType, value, TypeUtil.parseOrCast(dataType, targetValue.getValue()))) { return targetValue; } } return null; }
private Map<FieldName, ?> evaluateRegression(ModelEvaluationContext context) { Trail trail = new Trail(); Node node = evaluateTree(trail, context); if (node == null) { return TargetUtil.evaluateRegressionDefault(context); } Double score = (Double) TypeUtil.parseOrCast(DataType.DOUBLE, node.getScore()); TargetField targetField = getTargetField(); NodeScore nodeScore = createNodeScore(node, TargetUtil.evaluateRegressionInternal(targetField, score, context)); return Collections.singletonMap(targetField.getName(), nodeScore); }
private static Double evaluate(Collection<?> values, int quantile) { List<Double> doubleValues = new ArrayList<>(); for (Object value : values) { Double doubleValue = (Double) TypeUtil.parseOrCast(DataType.DOUBLE, value); doubleValues.add(doubleValue); } double[] data = Doubles.toArray(doubleValues); // The data must be (at least partially) ordered Arrays.sort(data); Percentile percentile = new Percentile(); percentile.setData(data); return percentile.evaluate(quantile); }