static public List<Feature> encodeFeature(PMMLEncoder encoder, Feature feature, List<String> values){ List<Feature> result = new ArrayList<>(); for(String value : values){ result.add(new BinaryFeature(encoder, feature, value)); } return result; } }
if(!(name).equals(binaryFeature.getName())){ continue; encoder = binaryFeature.getEncoder(); inputValues.add(binaryFeature.getValue()); outputValues.add(ValueUtil.formatValue(coefficient));
value = binaryFeature.getValue(); } else
static public <C extends ModelConverter<?> & HasRegressionOptions> void simplify(C converter, String identifier, List<Feature> features, List<Double> coefficients){ if(features.size() != coefficients.size()){ throw new IllegalArgumentException(); } Integer lookupThreshold = (Integer)converter.getOption(HasRegressionOptions.OPTION_LOOKUP_THRESHOLD, null); if(lookupThreshold == null){ return; } Map<FieldName, Long> countMap = features.stream() .filter(feature -> (feature instanceof BinaryFeature)) .collect(Collectors.groupingBy(feature -> ((BinaryFeature)feature).getName(), Collectors.counting())); Collection<? extends Map.Entry<FieldName, Long>> entries = countMap.entrySet(); for(Map.Entry<FieldName, Long> entry : entries){ if(entry.getValue() < lookupThreshold){ continue; } createMapValues(entry.getKey(), identifier, features, coefficients); } }
String value = ValueUtil.formatValue(binaryFeature.getValue());
@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); } };
String value = binaryFeature.getValue();
@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); } };
BinaryFeature binaryFeature = (BinaryFeature)feature; String value = binaryFeature.getValue();
@Override public List<Feature> encodeFeatures(List<Feature> features, SkLearnEncoder encoder){ List<? extends Number> values = getValues(); ClassDictUtil.checkSize(1, features); Feature feature = features.get(0); List<Feature> result = new ArrayList<>(); if(feature instanceof CategoricalFeature){ CategoricalFeature categoricalFeature = (CategoricalFeature)feature; ClassDictUtil.checkSize(values, categoricalFeature.getValues()); for(int i = 0; i < values.size(); i++){ result.add(new BinaryFeature(encoder, categoricalFeature, categoricalFeature.getValue(i))); } } else if(feature instanceof WildcardFeature){ WildcardFeature wildcardFeature = (WildcardFeature)feature; List<String> categories = new ArrayList<>(); for(int i = 0; i < values.size(); i++){ int value = ValueUtil.asInt(values.get(i)); String category = ValueUtil.formatValue(value); categories.add(category); result.add(new BinaryFeature(encoder, wildcardFeature, category)); } wildcardFeature.toCategoricalFeature(categories); } else { throw new IllegalArgumentException(); } return result; }
BinaryFeature binaryFeature = (BinaryFeature)feature; String value = binaryFeature.getValue();
PMMLUtil.addValues(dataField, Collections.singletonList(value)); feature = new BinaryFeature(encoder, dataField, value); } else
String value = binaryFeature.getValue();
public void addField(Field<?> field, List<String> categoryNames, List<String> categoryValues){ RExpEncoder encoder = getEncoder(); if(categoryNames.size() != categoryValues.size()){ throw new IllegalArgumentException(); } CategoricalFeature categoricalFeature; if((DataType.BOOLEAN).equals(field.getDataType()) && (BooleanFeature.VALUES).equals(categoryValues)){ categoricalFeature = new BooleanFeature(encoder, field); } else { categoricalFeature = new CategoricalFeature(encoder, field, categoryValues); } putFeature(field.getName(), categoricalFeature); for(int i = 0; i < categoryNames.size(); i++){ String categoryName = categoryNames.get(i); String categoryValue = categoryValues.get(i); BinaryFeature binaryFeature = new BinaryFeature(encoder, field, categoryValue); putFeature(FieldName.create((field.getName()).getValue() + categoryName), binaryFeature); } this.fields.add(field); }
switch(opType){ case CATEGORICAL: feature = new BinaryFeature(encoder, dataField, value); break; case CONTINUOUS:
switch(opType){ case CATEGORICAL: feature = new BinaryFeature(encoder, dataField, value); break; case CONTINUOUS:
result.add(new BinaryFeature(encoder, feature, category)); } else
wildcardFeature.toCategoricalFeature(Arrays.asList("0", "1")); BinaryFeature binaryFeature = new BinaryFeature(wildcardFeature.getEncoder(), wildcardFeature, "1");
DataField dataField = encoder.createDataField(activeField, OpType.CATEGORICAL, DataType.INTEGER, Arrays.asList("0", "1")); features.add(new BinaryFeature(encoder, dataField, "1")); } else