@Override public DataField createDataField(FieldName name, OpType opType, DataType dataType, List<String> values){ if(dataType == null){ dataType = ValueUtil.getDataType(values); } return super.createDataField(name, opType, dataType, values); }
public Apply encodeApply(String function, Feature feature, int index, String term){ Constant constant = PMMLUtil.createConstant(term, DataType.STRING); return PMMLUtil.createApply(function, feature.ref(), constant); }
@Override public Expression createExpression(FieldRef fieldRef){ return PMMLUtil.createApply("lessOrEqual", fieldRef, PMMLUtil.createConstant(0d)); } };
@Override public ContinuousFeature toContinuousFeature(){ Supplier<Apply> applySupplier = () -> { Feature feature = getFeature(); Number factor = getFactor(); return PMMLUtil.createApply("*", (feature.toContinuousFeature()).ref(), PMMLUtil.createConstant(factor)); }; return toContinuousFeature(name, DataType.DOUBLE, applySupplier); } };
@Override public Label encodeLabel(FieldName targetField, List<String> targetCategories, PMMLEncoder encoder){ if(targetCategories != null){ throw new IllegalArgumentException(); } DataField dataField = encoder.createDataField(targetField, OpType.CONTINUOUS, DataType.FLOAT); return new ContinuousLabel(dataField); } }
@Override public Label encodeLabel(FieldName targetField, List<String> targetCategories, PMMLEncoder encoder){ targetCategories = prepareTargetCategories(targetCategories); DataField dataField = encoder.createDataField(targetField, OpType.CATEGORICAL, DataType.STRING, targetCategories); return new CategoricalLabel(dataField); }
@Override public void decorate(DataField dataField, MiningField miningField){ super.decorate(dataField, miningField); if(invalidValueReplacement != null){ miningField.setInvalidValueReplacement(ValueUtil.formatValue(invalidValueReplacement)); } } }
@Override public Feature apply(Feature feature){ if(feature instanceof BinaryFeature){ BinaryFeature binaryFeature = (BinaryFeature)feature; return binaryFeature; } else { ContinuousFeature continuousFeature = feature.toContinuousFeature(dataType); return continuousFeature; } } };
@Override public String apply(Object object){ return ValueUtil.formatValue(object); } };
@Override public String encode(Integer value){ return categoricalLabel.getValue(value - 1); } };
@Override public SigmoidTransformation createTransformation(){ return new SigmoidTransformation(-1d); } }
@Override public ContinuousOutputFeature toContinuousFeature(DataType dataType){ return (ContinuousOutputFeature)super.toContinuousFeature(dataType); }
@Override public ExpTransformation createTransformation(){ return new ExpTransformation(); } }
@Override public ContinuousOutputFeature toContinuousFeature(DataType dataType){ return (ContinuousOutputFeature)super.toContinuousFeature(dataType); }
@Override public Label encodeLabel(FieldName targetField, List<String> targetCategories, PMMLEncoder encoder){ if(targetCategories != null){ throw new IllegalArgumentException(); } DataField dataField = encoder.createDataField(targetField, OpType.CONTINUOUS, DataType.DOUBLE); return new ContinuousLabel(dataField); }
@Override public Expression createExpression(FieldRef fieldRef){ return PMMLUtil.createApply("lessOrEqual", fieldRef, PMMLUtil.createConstant(0d)); } };
@Override public ContinuousFeature toContinuousFeature(){ return encodedFeature.toContinuousFeature(); } };
@Override public SigmoidTransformation createTransformation(){ return new SigmoidTransformation(-2d); } }
public static Label encodeLabel(FieldName targetField, List<String> targetCategories, PMMLEncoder encoder){ if(targetCategories != null){ throw new IllegalArgumentException(); } DataField dataField = encoder.createDataField(targetField, OpType.CONTINUOUS, DataType.FLOAT); return new ContinuousLabel(dataField); }
@Override public Expression createExpression(FieldRef fieldRef){ return PMMLUtil.createApply("-", PMMLUtil.createConstant(0.5d), PMMLUtil.createApply("pow", PMMLUtil.createConstant(2d), PMMLUtil.createApply("*", PMMLUtil.createConstant(-1d), fieldRef))); } };