package quickml.supervised.tree.decisionTree.reducers.reducerFactories; import quickml.data.instances.ClassifierInstance; import quickml.supervised.tree.decisionTree.reducers.DTNumBranchReducer; import quickml.supervised.tree.decisionTree.valueCounters.ClassificationCounter; import quickml.supervised.tree.reducers.Reducer; import quickml.supervised.tree.reducers.ReducerFactory; import java.io.Serializable; import java.util.List; import java.util.Map; import static quickml.supervised.tree.constants.ForestOptions.NUM_NUMERIC_BINS; import static quickml.supervised.tree.constants.ForestOptions.NUM_SAMPLES_PER_NUMERIC_BIN; /** * Created by alexanderhawk on 7/9/15. */ public class DTNumBranchReducerFactory<I extends ClassifierInstance> implements ReducerFactory<I, ClassificationCounter>{ int numSamplesPerBin; int numNumericBins; @Override public Reducer<I, ClassificationCounter> getReducer(List<I> trainingData) { return new DTNumBranchReducer<>(trainingData, numSamplesPerBin, numNumericBins); } @Override public void updateBuilderConfig(Map<String, Serializable> cfg) { if (cfg.containsKey(NUM_SAMPLES_PER_NUMERIC_BIN.name())) { numSamplesPerBin = (int) cfg.get(NUM_SAMPLES_PER_NUMERIC_BIN.name()); } if (cfg.containsKey(NUM_NUMERIC_BINS.name())) { numNumericBins = (int) cfg.get(NUM_NUMERIC_BINS.name()); } } }