public CategoricalOutputFeature(PMMLEncoder encoder, Output output, OutputField outputField, List<String> values){ this(encoder, output, outputField.getName(), outputField.getDataType(), values); }
public ContinuousOutputFeature(PMMLEncoder encocder, Output output, OutputField outputField){ this(encocder, output, outputField.getName(), outputField.getDataType()); }
@Override public DataType getDataType(){ DataType dataType = outputField.getDataType(); if(dataType == null){ if(value instanceof Collection){ Collection<?> values = (Collection<?>)value; dataType = TypeUtil.getDataType(values); } else { dataType = TypeUtil.getDataType(value); } } return dataType; }
@Override public Feature apply(Model model){ Output output = model.getOutput(); if(output == null || !output.hasOutputFields()){ throw new IllegalArgumentException(); } OutputField outputField = Iterables.getLast(output.getOutputFields()); return new ContinuousFeature(null, outputField.getName(), outputField.getDataType()); } };
@Override public ContinuousOutputFeature toContinuousFeature(){ PMMLEncoder encoder = ensureEncoder(); Output output = getOutput(); OutputField outputField = getField(); DataType dataType = outputField.getDataType(); switch(dataType){ case INTEGER: case FLOAT: case DOUBLE: break; default: throw new IllegalArgumentException(); } outputField.setOpType(OpType.CONTINUOUS); return new ContinuousOutputFeature(encoder, output, outputField); }
if (dataField.getDataType() == null) { fieldSchemas.add(new Schema.FieldSchema(outputFieldAlias,DataType.BYTEARRAY)); } else if (dataTypeMap.containsKey(dataField.getDataType().toString())) { fieldSchemas.add(new Schema.FieldSchema(outputFieldAlias,dataTypeMap.get(dataField.getDataType().toString()))); } else { throw new RuntimeException("Column: "+outputFieldAlias+", PMML DataType "+dataField.getDataType().toString()+" is not currently supported.");
FieldName name = outputField.getName(); DataField dataField = encoder.createDataField(name, outputField.getOpType(), outputField.getDataType());