@Override public Stream<Feature> apply(Feature feature){ PMMLEncoder encoder = feature.getEncoder(); if(feature instanceof CategoricalFeature){ CategoricalFeature categoricalFeature = (CategoricalFeature)feature; List<String> values = categoricalFeature.getValues(); if(!useAllFactorLevels){ values = values.subList(1, values.size()); } return values.stream() .map(value -> new BinaryFeature(encoder, categoricalFeature.getName(), categoricalFeature.getDataType(), value)); } return Stream.of(feature); } };
@Override public Stream<Feature> apply(Feature feature){ ModelEncoder encoder = (ModelEncoder)feature.getEncoder(); if(feature instanceof CategoricalFeature){ CategoricalFeature categoricalFeature = (CategoricalFeature)feature; List<String> values = new ArrayList<>(categoricalFeature.getValues()); values.add("missing(NA)"); ImputerUtil.encodeFeature(categoricalFeature, "missing(NA)", MissingValueTreatmentMethod.AS_VALUE); return values.stream() .map(value -> new BinaryFeature(encoder, categoricalFeature.getName(), categoricalFeature.getDataType(), value)); } return Stream.of(feature); } };
CategoricalFeature categoricalFeature = (CategoricalFeature)feature; FieldName name = categoricalFeature.getName();
@Override public List<Feature> encodeFeatures(SparkMLEncoder encoder){ OneHotEncoderModel transformer = getTransformer(); String[] inputCols = transformer.getInputCols(); boolean dropLast = transformer.getDropLast(); List<Feature> result = new ArrayList<>(); for(int i = 0; i < inputCols.length; i++){ CategoricalFeature categoricalFeature = (CategoricalFeature)encoder.getOnlyFeature(inputCols[i]); List<String> values = categoricalFeature.getValues(); if(dropLast){ values = values.subList(0, values.size() - 1); } // XXX List<BinaryFeature> binaryFeatures = (List)OneHotEncoderConverter.encodeFeature(encoder, categoricalFeature, values); result.add(new BinarizedCategoricalFeature(encoder, categoricalFeature.getName(), categoricalFeature.getDataType(), binaryFeatures)); } return result; } }
CategoricalFeature categoricalFeature = (CategoricalFeature)feature; FieldName name = categoricalFeature.getName(); List<String> values = categoricalFeature.getValues();
CategoricalFeature categoricalFeature = (CategoricalFeature)feature; FieldName name = categoricalFeature.getName();
FieldName name = categoricalFeature.getName(); List<String> values = categoricalFeature.getValues();
FieldName name = categoricalFeature.getName();
FieldName name = categoricalFeature.getName(); List<String> values = categoricalFeature.getValues();
CategoricalFeature categoricalFeature = (CategoricalFeature)feature; FieldName name = categoricalFeature.getName(); List<String> values = categoricalFeature.getValues();