Projects >> quickml >>0de116fef5b43a60f121bf23fcfc5732f6feea69

Chunk
Conflicting content
 */
public class OldTree extends AbstractClassifier {
    static final long serialVersionUID = 56394564395635672L;
<<<<<<< HEAD:src/main/java/quickml/supervised/classifier/decisionTree/Tree.java
    public final Node node;
    private Set classifications = new HashSet<>();

    protected Tree(Node node, Set classifications) {
        this.node = node;
=======
    public final OldNode oldNode;
    private Set classifications = new HashSet<>();

    protected OldTree(OldNode oldNode, Set classifications) {
        this.oldNode = oldNode;
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85:src/main/java/quickml/supervised/PredictiveModelsFromPreviousVersionsToBenchMarkAgainst/OldTree.java
        this.classifications = classifications;
    }
Solution content
 */
public class OldTree extends AbstractClassifier {
    static final long serialVersionUID = 56394564395635672L;
    public final OldNode oldNode;
    private Set classifications = new HashSet<>();

    protected OldTree(OldNode oldNode, Set classifications) {
        this.oldNode = oldNode;
        this.classifications = classifications;
    }
File
OldTree.java
Developer's decision
Version 2
Kind of conflict
Attribute
Method signature
Chunk
Conflicting content
    @Override
    public double getProbability(AttributesMap attributes, Serializable classification) {
<<<<<<< HEAD:src/main/java/quickml/supervised/classifier/decisionTree/Tree.java
        Leaf leaf = node.getLeaf(attributes);
        return leaf.getProbability(classification);
=======
        OldLeaf oldLeaf = oldNode.getLeaf(attributes);
        return oldLeaf.getProbability(classification);
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85:src/main/java/quickml/supervised/PredictiveModelsFromPreviousVersionsToBenchMarkAgainst/OldTree.java
    }

    @Override
Solution content
    @Override
    public double getProbability(AttributesMap attributes, Serializable classification) {
        OldLeaf oldLeaf = oldNode.getLeaf(attributes);
        return oldLeaf.getProbability(classification);
    }

    @Override
File
OldTree.java
Developer's decision
Version 2
Kind of conflict
Method invocation
Return statement
Variable
Chunk
Conflicting content
    @Override
    public double getProbabilityWithoutAttributes(AttributesMap attributes, Serializable classification, Set attributesToIgnore) {
<<<<<<< HEAD:src/main/java/quickml/supervised/classifier/decisionTree/Tree.java
        return node.getProbabilityWithoutAttributes(attributes, classification, attributesToIgnore);
=======
        return oldNode.getProbabilityWithoutAttributes(attributes, classification, attributesToIgnore);
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85:src/main/java/quickml/supervised/PredictiveModelsFromPreviousVersionsToBenchMarkAgainst/OldTree.java
    }

Solution content
    @Override
    public double getProbabilityWithoutAttributes(AttributesMap attributes, Serializable classification, Set attributesToIgnore) {
        return oldNode.getProbabilityWithoutAttributes(attributes, classification, attributesToIgnore);
    }

File
OldTree.java
Developer's decision
Version 2
Kind of conflict
Method invocation
Return statement
Chunk
Conflicting content
    @Override
    public PredictionMap predict(AttributesMap attributes) {
<<<<<<< HEAD:src/main/java/quickml/supervised/classifier/decisionTree/Tree.java
        Leaf leaf = node.getLeaf(attributes);
=======
        OldLeaf oldLeaf = oldNode.getLeaf(attributes);
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85:src/main/java/quickml/supervised/PredictiveModelsFromPreviousVersionsToBenchMarkAgainst/OldTree.java
        Map probsByClassification = Maps.newHashMap();
        for (Serializable classification : oldLeaf.getClassifications()) {
            probsByClassification.put(classification, oldLeaf.getProbability(classification));
Solution content
    @Override
    public PredictionMap predict(AttributesMap attributes) {
        OldLeaf oldLeaf = oldNode.getLeaf(attributes);
        Map probsByClassification = Maps.newHashMap();
        for (Serializable classification : oldLeaf.getClassifications()) {
            probsByClassification.put(classification, oldLeaf.getProbability(classification));
File
OldTree.java
Developer's decision
Version 2
Kind of conflict
Method invocation
Variable
Chunk
Conflicting content
    @Override
    public Serializable getClassificationByMaxProb(AttributesMap attributes) {
<<<<<<< HEAD:src/main/java/quickml/supervised/classifier/decisionTree/Tree.java
        Leaf leaf = node.getLeaf(attributes);
        return leaf.getBestClassification();
=======
        OldLeaf oldLeaf = oldNode.getLeaf(attributes);
        return oldLeaf.getBestClassification();
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85:src/main/java/quickml/supervised/PredictiveModelsFromPreviousVersionsToBenchMarkAgainst/OldTree.java
    }

    @Override
Solution content
    @Override
    public Serializable getClassificationByMaxProb(AttributesMap attributes) {
        OldLeaf oldLeaf = oldNode.getLeaf(attributes);
        return oldLeaf.getBestClassification();
    }

    @Override
File
OldTree.java
Developer's decision
Version 2
Kind of conflict
Method invocation
Return statement
Variable
Chunk
Conflicting content
        final OldTree oldTree = (OldTree) o;

<<<<<<< HEAD:src/main/java/quickml/supervised/classifier/decisionTree/Tree.java
        if (!node.equals(tree.node)) return false;
=======
        if (!oldNode.equals(oldTree.oldNode)) return false;
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85:src/main/java/quickml/supervised/PredictiveModelsFromPreviousVersionsToBenchMarkAgainst/OldTree.java

        return true;
    }
Solution content
        final OldTree oldTree = (OldTree) o;

        if (!oldNode.equals(oldTree.oldNode)) return false;

        return true;
    }
File
OldTree.java
Developer's decision
Version 2
Kind of conflict
If statement
Chunk
Conflicting content
    @Override
    public int hashCode() {
<<<<<<< HEAD:src/main/java/quickml/supervised/classifier/decisionTree/Tree.java
        return node.hashCode();
=======
        return oldNode.hashCode();
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85:src/main/java/quickml/supervised/PredictiveModelsFromPreviousVersionsToBenchMarkAgainst/OldTree.java
    }
    
    @Override
Solution content
    @Override
    public int hashCode() {
        return oldNode.hashCode();
    }
    
    @Override
File
OldTree.java
Developer's decision
Version 2
Kind of conflict
Method invocation
Return statement
Chunk
Conflicting content
    @Override
    public String toString() {
        StringBuilder dump = new StringBuilder();
<<<<<<< HEAD:src/main/java/quickml/supervised/classifier/decisionTree/Tree.java
        node.dump(dump);
=======
        oldNode.dump(dump);
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85:src/main/java/quickml/supervised/PredictiveModelsFromPreviousVersionsToBenchMarkAgainst/OldTree.java
        return dump.toString();
    }
}
Solution content
    @Override
    public String toString() {
        StringBuilder dump = new StringBuilder();
        oldNode.dump(dump);
        return dump.toString();
    }
}
File
OldTree.java
Developer's decision
Version 2
Kind of conflict
Method invocation
Chunk
Conflicting content
    private static final int HARD_MINIMUM_INSTANCES_PER_CATEGORICAL_VALUE = 10;
    public static final String MIN_SPLIT_FRACTION = "minSplitFraction";
    public static final String EXEMPT_ATTRIBUTES = "exemptAttributes";
<<<<<<< HEAD:src/main/java/quickml/supervised/classifier/decisionTree/TreeBuilder.java
    public static final String IMBALANCE_PENALTY_POWER = "imbalancePenaltyPower";
=======
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85:src/main/java/quickml/supervised/PredictiveModelsFromPreviousVersionsToBenchMarkAgainst/OldTreeBuilder.java

    private OldScorer oldScorer;
    private int maxDepth = 5;
Solution content
    private static final int HARD_MINIMUM_INSTANCES_PER_CATEGORICAL_VALUE = 10;
    public static final String MIN_SPLIT_FRACTION = "minSplitFraction";
    public static final String EXEMPT_ATTRIBUTES = "exemptAttributes";

    private OldScorer oldScorer;
    private int maxDepth = 5;
File
OldTreeBuilder.java
Developer's decision
Version 2
Kind of conflict
Attribute
Chunk
Conflicting content
    private double minimumScore = 0.00000000000001;
    private int minDiscreteAttributeValueOccurances = 0;
    private double minSplitFraction = .005;
<<<<<<< HEAD:src/main/java/quickml/supervised/classifier/decisionTree/TreeBuilder.java
    private double imbalancePenaltyPower = 0;
    private Set exemptAttributes = Sets.newHashSet();
=======
    private HashSet exemptAttributes = Sets.newHashSet();
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85:src/main/java/quickml/supervised/PredictiveModelsFromPreviousVersionsToBenchMarkAgainst/OldTreeBuilder.java

    private int minLeafInstances = 0;
Solution content
    private double minimumScore = 0.00000000000001;
    private int minDiscreteAttributeValueOccurances = 0;
    private double minSplitFraction = .005;
    private HashSet exemptAttributes = Sets.newHashSet();

    private int minLeafInstances = 0;
File
OldTreeBuilder.java
Developer's decision
Version 2
Kind of conflict
Attribute
Method invocation
Chunk
Conflicting content
        copy.attributeIgnoringStrategy = attributeIgnoringStrategy.copy();
        copy.fractionOfDataToUseInHoldOutSet = fractionOfDataToUseInHoldOutSet;
        copy.minSplitFraction = minSplitFraction;
<<<<<<< HEAD:src/main/java/quickml/supervised/classifier/decisionTree/TreeBuilder.java
        copy.exemptAttributes = exemptAttributes;
        copy.imbalancePenaltyPower = imbalancePenaltyPower;
=======
        copy.exemptAttributes = Sets.newHashSet(exemptAttributes);
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85:src/main/java/quickml/supervised/PredictiveModelsFromPreviousVersionsToBenchMarkAgainst/OldTreeBuilder.java
        return copy;
    }
Solution content
        copy.attributeIgnoringStrategy = attributeIgnoringStrategy.copy();
        copy.fractionOfDataToUseInHoldOutSet = fractionOfDataToUseInHoldOutSet;
        copy.minSplitFraction = minSplitFraction;
        copy.exemptAttributes = Sets.newHashSet(exemptAttributes);
        return copy;
    }
File
OldTreeBuilder.java
Developer's decision
Version 2
Kind of conflict
Other
Chunk
Conflicting content
        if (cfg.containsKey(ORDINAL_TEST_SPLITS))
            ordinalTestSplits((Integer) cfg.get(ORDINAL_TEST_SPLITS));
        if (cfg.containsKey(EXEMPT_ATTRIBUTES))
<<<<<<< HEAD:src/main/java/quickml/supervised/classifier/decisionTree/TreeBuilder.java
            exemptAttributes((Set) cfg.get(EXEMPT_ATTRIBUTES));
=======
            exemptAttributes((HashSet) cfg.get(EXEMPT_ATTRIBUTES));
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85:src/main/java/quickml/supervised/PredictiveModelsFromPreviousVersionsToBenchMarkAgainst/OldTreeBuilder.java
        if (cfg.containsKey(DEGREE_OF_GAIN_RATIO_PENALTY))
            degreeOfGainRatioPenalty((Double) cfg.get(DEGREE_OF_GAIN_RATIO_PENALTY));
        if (cfg.containsKey(ATTRIBUTE_IGNORING_STRATEGY))
Solution content
        if (cfg.containsKey(ORDINAL_TEST_SPLITS))
            ordinalTestSplits((Integer) cfg.get(ORDINAL_TEST_SPLITS));
        if (cfg.containsKey(EXEMPT_ATTRIBUTES))
            exemptAttributes((HashSet) cfg.get(EXEMPT_ATTRIBUTES));
        if (cfg.containsKey(DEGREE_OF_GAIN_RATIO_PENALTY))
            degreeOfGainRatioPenalty((Double) cfg.get(DEGREE_OF_GAIN_RATIO_PENALTY));
        if (cfg.containsKey(ATTRIBUTE_IGNORING_STRATEGY))
File
OldTreeBuilder.java
Developer's decision
Version 2
Kind of conflict
Method invocation
Chunk
Conflicting content
        if (cfg.containsKey(ATTRIBUTE_IGNORING_STRATEGY))
            attributeIgnoringStrategy((AttributeIgnoringStrategy) cfg.get(ATTRIBUTE_IGNORING_STRATEGY));
        if (cfg.containsKey(IGNORE_ATTR_PROB))
<<<<<<< HEAD:src/main/java/quickml/supervised/classifier/decisionTree/TreeBuilder.java
            ignoreAttributeAtNodeProbability((Double) cfg.get(IGNORE_ATTR_PROB));
        if (cfg.containsKey(IMBALANCE_PENALTY_POWER))
            imbalancePenaltyPower((Double)cfg.get(IMBALANCE_PENALTY_POWER));
=======
            ignoreAttributeAtNodeProbability((Double)cfg.get(IGNORE_ATTR_PROB));

>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85:src/main/java/quickml/supervised/PredictiveModelsFromPreviousVersionsToBenchMarkAgainst/OldTreeBuilder.java
        penalizeCategoricalSplitsBySplitAttributeIntrinsicValue(cfg.containsKey(PENALIZE_CATEGORICAL_SPLITS) ? (Boolean) cfg.get(PENALIZE_CATEGORICAL_SPLITS) : true);
    }
Solution content
        if (cfg.containsKey(ATTRIBUTE_IGNORING_STRATEGY))
            attributeIgnoringStrategy((AttributeIgnoringStrategy) cfg.get(ATTRIBUTE_IGNORING_STRATEGY));
        if (cfg.containsKey(IGNORE_ATTR_PROB))
            ignoreAttributeAtNodeProbability((Double)cfg.get(IGNORE_ATTR_PROB));

        penalizeCategoricalSplitsBySplitAttributeIntrinsicValue(cfg.containsKey(PENALIZE_CATEGORICAL_SPLITS) ? (Boolean) cfg.get(PENALIZE_CATEGORICAL_SPLITS) : true);
    }
File
OldTreeBuilder.java
Developer's decision
Version 2
Kind of conflict
If statement
Method invocation
Chunk
Conflicting content
        return split;
    }

<<<<<<< HEAD:src/main/java/quickml/supervised/classifier/decisionTree/TreeBuilder.java
    private Node growTree(Branch parent,  List trainingData, final int depth) {
        Preconditions.checkArgument(!Iterables.isEmpty(trainingData), "At Depth: " + depth + ". Can't build a tree with no training data");
=======
    private OldNode growTree(OldBranch parent,  List trainingData, final int depth) {
        Preconditions.checkArgument(!Iterables.isEmpty(trainingData), "At Depth: " + depth + ". Can't build a oldTree with no training data");
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85:src/main/java/quickml/supervised/PredictiveModelsFromPreviousVersionsToBenchMarkAgainst/OldTreeBuilder.java
        if (depth >= maxDepth) {
            return getLeaf(parent, trainingData, depth);
        }
Solution content
        return split;
    }

    private OldNode growTree(OldBranch parent,  List trainingData, final int depth) {
        Preconditions.checkArgument(!Iterables.isEmpty(trainingData), "At Depth: " + depth + ". Can't build a oldTree with no training data");
        if (depth >= maxDepth) {
            return getLeaf(parent, trainingData, depth);
        }
File
OldTreeBuilder.java
Developer's decision
Version 2
Kind of conflict
Method invocation
Method signature
Chunk
Conflicting content
    private Pair createTwoClassCategoricalNode(OldNode parent, final String attribute, final Iterable instances) {

        double bestScore = 0;
<<<<<<< HEAD:src/main/java/quickml/supervised/classifier/decisionTree/TreeBuilder.java
        final Pair> valueOutcomeCountsPairs =
                ClassificationCounter.getSortedListOfAttributeValuesWithClassificationCounters(instances, attribute, minorityClassification);  //returns a list of ClassificationCounterList
=======
        final Pair> valueOutcomeCountsPairs =
                OldClassificationCounter.getSortedListOfAttributeValuesWithClassificationCounters(instances, attribute, minorityClassification);  //returns a list of ClassificationCounterList
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85:src/main/java/quickml/supervised/PredictiveModelsFromPreviousVersionsToBenchMarkAgainst/OldTreeBuilder.java

        OldClassificationCounter outCounts = new OldClassificationCounter(valueOutcomeCountsPairs.getValue0()); //classification counter treating all values the same
        OldClassificationCounter inCounts = new OldClassificationCounter(); //the histogram of counts by classification for the in-set
Solution content
    private Pair createTwoClassCategoricalNode(OldNode parent, final String attribute, final Iterable instances) {

        double bestScore = 0;
        final Pair> valueOutcomeCountsPairs =
                OldClassificationCounter.getSortedListOfAttributeValuesWithClassificationCounters(instances, attribute, minorityClassification);  //returns a list of ClassificationCounterList

        OldClassificationCounter outCounts = new OldClassificationCounter(valueOutcomeCountsPairs.getValue0()); //classification counter treating all values the same
        OldClassificationCounter inCounts = new OldClassificationCounter(); //the histogram of counts by classification for the in-set
File
OldTreeBuilder.java
Developer's decision
Version 2
Kind of conflict
Comment
Method invocation
Variable
Chunk
Conflicting content
        return informationValue;
    }

<<<<<<< HEAD:src/main/java/quickml/supervised/classifier/decisionTree/TreeBuilder.java
    private Pair createNClassCategoricalNode(Node parent, final String attribute,
=======
    private Pair createNClassCategoricalNode(OldNode parent, final String attribute,
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85:src/main/java/quickml/supervised/PredictiveModelsFromPreviousVersionsToBenchMarkAgainst/OldTreeBuilder.java
                                                                       final Iterable instances) {

        final Set values = getAttrinbuteValues(instances, attribute);
Solution content
        return informationValue;
    }

    private Pair createNClassCategoricalNode(OldNode parent, final String attribute,
                                                                       final Iterable instances) {

        final Set values = getAttrinbuteValues(instances, attribute);
File
OldTreeBuilder.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
                continue;
            }

<<<<<<< HEAD:src/main/java/quickml/supervised/classifier/decisionTree/TreeBuilder.java


            double thisScore = scorer.scoreSplit(inClassificationCounts, outClassificationCounts);

            if (imbalancePenaltyPower!=0) {
                thisScore/=Math.pow(Math.min(inClassificationCounts.getTotal(), outClassificationCounts.getTotal()), imbalancePenaltyPower);
            }

=======
            double thisScore = oldScorer.scoreSplit(inClassificationCounts, outClassificationCounts);
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85:src/main/java/quickml/supervised/PredictiveModelsFromPreviousVersionsToBenchMarkAgainst/OldTreeBuilder.java
            if (thisScore > bestScore) {
                bestScore = thisScore;
                bestThreshold = threshold;
Solution content
                continue;
            }

            double thisScore = oldScorer.scoreSplit(inClassificationCounts, outClassificationCounts);
            if (thisScore > bestScore) {
                bestScore = thisScore;
                bestThreshold = threshold;
File
OldTreeBuilder.java
Developer's decision
Version 2
Kind of conflict
If statement
Method invocation
Variable
Chunk
Conflicting content
            return null;
        }
        double penalizedBestScore = bestScore/getIntrinsicValueOfNumericAttribute();
<<<<<<< HEAD:src/main/java/quickml/supervised/classifier/decisionTree/TreeBuilder.java
        return Pair.with(new NumericBranch(parent, attribute, bestThreshold, probabilityOfBeingInInset), penalizedBestScore);
=======
        return Pair.with(new OldNumericBranch(parent, attribute, bestThreshold, probabilityOfBeingInInset), penalizedBestScore);
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85:src/main/java/quickml/supervised/PredictiveModelsFromPreviousVersionsToBenchMarkAgainst/OldTreeBuilder.java
    }

    public static class AttributeCharacteristics {
Solution content
            return null;
        }
        double penalizedBestScore = bestScore/getIntrinsicValueOfNumericAttribute();
        return Pair.with(new OldNumericBranch(parent, attribute, bestThreshold, probabilityOfBeingInInset), penalizedBestScore);
    }

    public static class AttributeCharacteristics {
File
OldTreeBuilder.java
Developer's decision
Version 2
Kind of conflict
Method invocation
Return statement
Chunk
Conflicting content
        return new PredictionMapResults(results);
    }

<<<<<<< HEAD
    public static void sortTrainingInstancesByTime(List trainingData, final DateTimeExtractor dateTimeExtractor) {
        Collections.sort(trainingData, new Comparator() {
=======
    public static >void sortTrainingInstancesByTime(List trainingData, final DateTimeExtractor dateTimeExtractor) {
        Collections.sort(trainingData, new Comparator() {
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85
            @Override
            public int compare(T o1, T o2) {
                DateTime dateTime1 = dateTimeExtractor.extractDateTime(o1);
Solution content
        return new PredictionMapResults(results);
    }
    
    public static >void sortTrainingInstancesByTime(List trainingData, final DateTimeExtractor dateTimeExtractor) {
        Collections.sort(trainingData, new Comparator() {
            @Override
            public int compare(T o1, T o2) {
                DateTime dateTime1 = dateTimeExtractor.extractDateTime(o1);
File
Utils.java
Developer's decision
Version 2
Kind of conflict
Method invocation
Method signature
Chunk
Conflicting content
/**
 * Created by ian on 5/29/14.
 */
<<<<<<< HEAD
public class SplitOnAttributeClassifierBuilder implements PredictiveModelBuilder {
    private static final Logger logger = LoggerFactory.getLogger(SplitOnAttributeClassifierBuilder.class);
    private final String attributeKey;
    private final PredictiveModelBuilder wrappedBuilder;
=======
public class SplitOnAttributeClassifierBuilder> implements PredictiveModelBuilder {
    private static final Logger logger = LoggerFactory.getLogger(SplitOnAttributeClassifierBuilder.class);
    private final String attributeKey;
    private final PredictiveModelBuilder wrappedBuilder;
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85
    private Map splitValToGroupIdMap;
    private Map splitModelGroups;
    private final Integer defaultGroup;
Solution content
/**
 * Created by ian on 5/29/14.
 */
public class SplitOnAttributeClassifierBuilder> implements PredictiveModelBuilder {
    private static final Logger logger = LoggerFactory.getLogger(SplitOnAttributeClassifierBuilder.class);
    private final String attributeKey;
    private final PredictiveModelBuilder wrappedBuilder;
    private Map splitValToGroupIdMap;
    private Map splitModelGroups;
    private final Integer defaultGroup;
File
SplitOnAttributeClassifierBuilder.java
Developer's decision
Version 2
Kind of conflict
Attribute
Class signature
Method invocation
Chunk
Conflicting content
    private final Integer defaultGroup;

    //TODO:  this method should not have any parameters.
<<<<<<< HEAD
    public SplitOnAttributeClassifierBuilder(String attributeKey, Collection splitModelGroupsCollection, Integer defaultGroup, PredictiveModelBuilder wrappedBuilder) {
=======
    public SplitOnAttributeClassifierBuilder(String attributeKey, Collection splitModelGroupsCollection, Integer defaultGroup, PredictiveModelBuilder wrappedBuilder) {
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85

        this.attributeKey = attributeKey;
        this.defaultGroup = defaultGroup;
Solution content
    private final Integer defaultGroup;

    //TODO:  this method should not have any parameters.
    public SplitOnAttributeClassifierBuilder(String attributeKey, Collection splitModelGroupsCollection, Integer defaultGroup, PredictiveModelBuilder wrappedBuilder) {

        this.attributeKey = attributeKey;
        this.defaultGroup = defaultGroup;
File
SplitOnAttributeClassifierBuilder.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
    }

    @Override
<<<<<<< HEAD
    public SplitOnAttributeClassifier buildPredictiveModel(final Iterable trainingData) {

        //split by groupId
        Map> splitTrainingData = splitTrainingData(trainingData);
        Map splitModels = Maps.newHashMap();
        for (Map.Entry> trainingDataEntry : splitTrainingData.entrySet()) {
=======
    public SplitOnAttributeClassifier buildPredictiveModel(final Iterable trainingData) {

        //split by groupId
        Map> splitTrainingData = splitTrainingData(trainingData);
        Map splitModels = Maps.newHashMap();
        for (Map.Entry> trainingDataEntry : splitTrainingData.entrySet()) {
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85
            logger.info("Building predictive model for group" + attributeKey + "=" + trainingDataEntry.getKey());
            splitModels.put(trainingDataEntry.getKey(), wrappedBuilder.buildPredictiveModel(trainingDataEntry.getValue()));
        }
Solution content
    }

    @Override
    public SplitOnAttributeClassifier buildPredictiveModel(final Iterable trainingData) {

        //split by groupId
        Map> splitTrainingData = splitTrainingData(trainingData);
        Map splitModels = Maps.newHashMap();
        for (Map.Entry> trainingDataEntry : splitTrainingData.entrySet()) {
            logger.info("Building predictive model for group" + attributeKey + "=" + trainingDataEntry.getKey());
            splitModels.put(trainingDataEntry.getKey(), wrappedBuilder.buildPredictiveModel(trainingDataEntry.getValue()));
        }
File
SplitOnAttributeClassifierBuilder.java
Developer's decision
Version 2
Kind of conflict
Comment
For statement
Method invocation
Method signature
Variable
Chunk
Conflicting content
    }


<<<<<<< HEAD
    private Map> splitTrainingData(Iterable trainingData) {

        //create lists of data for each split attribute val
        Map> splitTrainingData = Maps.newHashMap();
        for (T instance : trainingData) {
=======
    private Map> splitTrainingData(Iterable trainingData) {

        //create lists of data for each split attribute val
        Map> splitTrainingData = Maps.newHashMap();
        for (I instance : trainingData) {
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85
            Serializable value = instance.getAttributes().get(attributeKey);
            Integer groupId;
            if (value != null) {
Solution content
    }


    private Map> splitTrainingData(Iterable trainingData) {

        //create lists of data for each split attribute val
        Map> splitTrainingData = Maps.newHashMap();
        for (I instance : trainingData) {
            Serializable value = instance.getAttributes().get(attributeKey);
            Integer groupId;
            if (value != null) {
File
SplitOnAttributeClassifierBuilder.java
Developer's decision
Version 2
Kind of conflict
Comment
For statement
Method invocation
Method signature
Variable
Chunk
Conflicting content
                continue;
            }

<<<<<<< HEAD
            List trainingDataForGroup = splitTrainingData.get(groupId);
=======
            List trainingDataForGroup = splitTrainingData.get(groupId);
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85
            if (trainingDataForGroup == null) {
                trainingDataForGroup = Lists.newArrayList();
                splitTrainingData.put(groupId, trainingDataForGroup);
Solution content
                continue;
            }

            List trainingDataForGroup = splitTrainingData.get(groupId);
            if (trainingDataForGroup == null) {
                trainingDataForGroup = Lists.newArrayList();
                splitTrainingData.put(groupId, trainingDataForGroup);
File
SplitOnAttributeClassifierBuilder.java
Developer's decision
Version 2
Kind of conflict
Method invocation
Variable
Chunk
Conflicting content
    * Add data to each split data set based on the desired cross data values. Maintain the same ratio of classifications in the split set by
    * selecting that ratio from outside sets. Only keep the attributes in the supporting instances that are in the white list
    * */
<<<<<<< HEAD
    private void crossPollinateData(Map> splitTrainingData) {
=======
    private void crossPollinateData(Map> splitTrainingData) {
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85

        Map groupIdToSamplesInTheGroup = new HashMap<>();
Solution content
    * Add data to each split data set based on the desired cross data values. Maintain the same ratio of classifications in the split set by
    * selecting that ratio from outside sets. Only keep the attributes in the supporting instances that are in the white list
    * */
    private void crossPollinateData(Map> splitTrainingData) {

        Map groupIdToSamplesInTheGroup = new HashMap<>();
File
SplitOnAttributeClassifierBuilder.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
        for (Integer presentGroup : splitModelGroups.keySet()) {

<<<<<<< HEAD
            List dataForPresentGroup = splitTrainingData.get(presentGroup);
=======
            List dataForPresentGroup = splitTrainingData.get(presentGroup);
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85
            SplitModelGroup splitModelGroup = splitModelGroups.get(presentGroup);
            Map numSamplesFromOtherGroupsMap = splitModelGroup.computeIdealNumberOfSamplesToCollectFromOtherGroups(groupIdToSamplesInTheGroup);
            //for each
Solution content
        for (Integer presentGroup : splitModelGroups.keySet()) {

            List dataForPresentGroup = splitTrainingData.get(presentGroup);
            SplitModelGroup splitModelGroup = splitModelGroups.get(presentGroup);
            Map numSamplesFromOtherGroupsMap = splitModelGroup.computeIdealNumberOfSamplesToCollectFromOtherGroups(groupIdToSamplesInTheGroup);
            //for each
File
SplitOnAttributeClassifierBuilder.java
Developer's decision
Version 2
Kind of conflict
Other
Chunk
Conflicting content
            Map numSamplesFromOtherGroupsMap = splitModelGroup.computeIdealNumberOfSamplesToCollectFromOtherGroups(groupIdToSamplesInTheGroup);
            //for each
            for (Integer crossGroupId : numSamplesFromOtherGroupsMap.keySet()) {
<<<<<<< HEAD
                List instancesFromCrossGroup = splitTrainingData.get(crossGroupId);
                long requestedNumInstances = numSamplesFromOtherGroupsMap.get(crossGroupId);
                List listWithRequestedNumberOfInstancesFromThisCrossGroup = filterToRequestedNumber(instancesFromCrossGroup, requestedNumInstances);
=======
                List instancesFromCrossGroup = splitTrainingData.get(crossGroupId);
                long requestedNumInstances = numSamplesFromOtherGroupsMap.get(crossGroupId);
                List listWithRequestedNumberOfInstancesFromThisCrossGroup = filterToRequestedNumber(instancesFromCrossGroup, requestedNumInstances);
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85
                dataForPresentGroup.addAll(listWithRequestedNumberOfInstancesFromThisCrossGroup);
            }
        }
Solution content
            Map numSamplesFromOtherGroupsMap = splitModelGroup.computeIdealNumberOfSamplesToCollectFromOtherGroups(groupIdToSamplesInTheGroup);
            //for each
            for (Integer crossGroupId : numSamplesFromOtherGroupsMap.keySet()) {
                List instancesFromCrossGroup = splitTrainingData.get(crossGroupId);
                long requestedNumInstances = numSamplesFromOtherGroupsMap.get(crossGroupId);
                List listWithRequestedNumberOfInstancesFromThisCrossGroup = filterToRequestedNumber(instancesFromCrossGroup, requestedNumInstances);
                dataForPresentGroup.addAll(listWithRequestedNumberOfInstancesFromThisCrossGroup);
            }
        }
File
SplitOnAttributeClassifierBuilder.java
Developer's decision
Version 2
Kind of conflict
Other
Chunk
Conflicting content
        }
    }

<<<<<<< HEAD
    private List filterToRequestedNumber(List input, long requestedNumInstances) {
=======
    private List filterToRequestedNumber(List input, long requestedNumInstances) {
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85
        //TODO: consider allowing it to get the most recently dated instances.

        /**
Solution content
        }
    }

    private List filterToRequestedNumber(List input, long requestedNumInstances) {
        //TODO: consider allowing it to get the most recently dated instances.

        /**
File
SplitOnAttributeClassifierBuilder.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
=======
         * this method obtains a random sublist of approximately m elements from a list of n elements in order m time.
         */

<<<<<<< HEAD
        List output = new ArrayList<>((int) requestedNumInstances);
        List output = new ArrayList<>((int) requestedNumInstances);
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85
        double currentSizeToReducedSizeRatio = (1.0 * input.size()) / requestedNumInstances;
        int baseIncrement = (int) Math.floor(currentSizeToReducedSizeRatio);
        double randomIncrementProbability = currentSizeToReducedSizeRatio - baseIncrement;
Solution content
         * this method obtains a random sublist of approximately m elements from a list of n elements in order m time.
         */

        List output = new ArrayList<>((int) requestedNumInstances);
        double currentSizeToReducedSizeRatio = (1.0 * input.size()) / requestedNumInstances;
        int baseIncrement = (int) Math.floor(currentSizeToReducedSizeRatio);
        double randomIncrementProbability = currentSizeToReducedSizeRatio - baseIncrement;
File
SplitOnAttributeClassifierBuilder.java
Developer's decision
Version 2
Kind of conflict
Other
Chunk
Conflicting content
        return output;
    }

<<<<<<< HEAD
    private boolean shouldAddInstance(Serializable attributeValue, T instance, ClassificationCounter crossDataCount, double targetCount) {
=======
    private boolean shouldAddInstance(Serializable attributeValue, I instance, ClassificationCounter crossDataCount, double targetCount) {
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85
        //if the model's split valaue is not the same as the instance's split value (avoids redundancy)
        if (!attributeValue.equals(instance.getAttributes().get(attributeKey))) {
            //if we still need instances of a particular classification
Solution content
        return output;
    }

    private boolean shouldAddInstance(Serializable attributeValue, I instance, ClassificationCounter crossDataCount, double targetCount) {
        //if the model's split valaue is not the same as the instance's split value (avoids redundancy)
        if (!attributeValue.equals(instance.getAttributes().get(attributeKey))) {
            //if we still need instances of a particular classification
File
SplitOnAttributeClassifierBuilder.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
    @Override
    public Serializable getClassificationByMaxProb(AttributesMap attributes) {
        Map probTotals = Maps.newHashMap();
<<<<<<< HEAD:src/main/java/quickml/supervised/classifier/randomForest/RandomForest.java
        for (Tree tree : trees) {
            Leaf leaf =tree.node.getLeaf(attributes);
            for (Serializable classification : leaf.getClassifications()) {
                AtomicDouble ttlProb = probTotals.get(classification);
                if (ttlProb == null) {
                    ttlProb = new AtomicDouble(0);
                    probTotals.put(classification, ttlProb);
=======
        for (DecisionTree decisionTree : decisionTrees) {
            PredictionMap predictionMap = decisionTree.predict(attributes);
            for (Serializable key : predictionMap.keySet()) {
                if (probTotals.containsKey(key)) {
                    probTotals.put(key, new AtomicDouble(probTotals.get(key).getAndAdd(predictionMap.get(key))));
                } else {
                    probTotals.put(key, new AtomicDouble(predictionMap.get(key)));
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85:src/main/java/quickml/supervised/ensembles/randomForest/randomDecisionForest/RandomDecisionForest.java
                }
            }
        }
Solution content
    @Override
    public Serializable getClassificationByMaxProb(AttributesMap attributes) {
        Map probTotals = Maps.newHashMap();
        for (DecisionTree decisionTree : decisionTrees) {
            PredictionMap predictionMap = decisionTree.predict(attributes);
            for (Serializable key : predictionMap.keySet()) {
                if (probTotals.containsKey(key)) {
                    probTotals.put(key, new AtomicDouble(probTotals.get(key).getAndAdd(predictionMap.get(key))));
                } else {
                    probTotals.put(key, new AtomicDouble(predictionMap.get(key)));
                }
            }
        }
File
RandomDecisionForest.java
Developer's decision
Version 2
Kind of conflict
For statement
If statement
Method invocation
Variable
Chunk
Conflicting content
    private void findBestValueForField(String field) {
        FieldLosses losses = new FieldLosses();
<<<<<<< HEAD
        FieldValueRecommender fieldValueRecommender = valuesToTest.get(field);
=======
        FieldValueRecommender fieldValueRecommender = fieldsToOptimize.get(field);
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85
        if (fieldValueRecommender.getValues().size() == 1) {
            return;
        }
Solution content
    private void findBestValueForField(String field) {
        FieldLosses losses = new FieldLosses();
        FieldValueRecommender fieldValueRecommender = fieldsToOptimize.get(field);
        if (fieldValueRecommender.getValues().size() == 1) {
            return;
        }
File
PredictiveModelOptimizer.java
Developer's decision
Version 2
Kind of conflict
Method invocation
Variable
Chunk
Conflicting content
            return;
        }
        //bestConfig is not actually bestConfig inth for loop
<<<<<<< HEAD
        for (Object value : fieldValueRecommender.getValues()) {
            //TODO: make so it does not repeat a conf already seen in present iteration (e.g. keep a set of configs)
            if (bestConfig.get(field).equals(value)) {
                continue;
=======
        for (Serializable value : fieldValueRecommender.getValues()) {
            //TODO: make so it does not repeat a conf already seen in present iteration (e.g. keep a set of configs)
            if (bestConfig.get(field).equals(value)) {
                continue;  //safe to continue bc everything else about the config is the same.
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85
            }
            bestConfig.put(field, value);
            losses.addFieldLoss(value, crossValidator.getLossForModel(bestConfig));
Solution content
            return;
        }
        //bestConfig is not actually bestConfig inth for loop
        for (Serializable value : fieldValueRecommender.getValues()) {
            //TODO: make so it does not repeat a conf already seen in present iteration (e.g. keep a set of configs)
            if (bestConfig.get(field).equals(value)) {
                continue;  //safe to continue bc everything else about the config is the same.
            }
            bestConfig.put(field, value);
            losses.addFieldLoss(value, crossValidator.getLossForModel(bestConfig));
File
PredictiveModelOptimizer.java
Developer's decision
Version 2
Kind of conflict
Comment
Continue statement
For statement
If statement
Chunk
Conflicting content
import org.junit.Test;
import quickml.data.AttributesMap;
import quickml.data.ClassifierInstance;
<<<<<<< HEAD
import quickml.supervised.classifier.Classifier;
import quickml.supervised.classifier.decisionTree.Scorer;
import quickml.supervised.classifier.decisionTree.TreeBuilder;
import quickml.supervised.classifier.decisionTree.scorers.GiniImpurityScorer;
import quickml.supervised.classifier.decisionTree.scorers.MSEScorer;
import quickml.supervised.classifier.decisionTree.scorers.SplitDiffScorer;
import quickml.supervised.classifier.decisionTree.tree.attributeIgnoringStrategies.IgnoreAttributesWithConstantProbability;
import quickml.supervised.classifier.randomForest.RandomForestBuilder;
=======
import quickml.supervised.tree.decisionTree.scorers.*;
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85
import quickml.supervised.crossValidation.ClassifierLossChecker;
import quickml.supervised.crossValidation.CrossValidator;
import quickml.supervised.crossValidation.data.FoldedData;
Solution content
import org.junit.Test;
import quickml.data.AttributesMap;
import quickml.data.ClassifierInstance;
import quickml.supervised.tree.decisionTree.scorers.*;
import quickml.supervised.crossValidation.ClassifierLossChecker;
import quickml.supervised.crossValidation.CrossValidator;
import quickml.supervised.crossValidation.data.FoldedData;
File
BenchmarkTest.java
Developer's decision
Version 2
Kind of conflict
Import
Chunk
Conflicting content
package quickml.supervised.classifier;

<<<<<<< HEAD:src/test/java/quickml/supervised/classifier/ClassifiersTest.java
import com.beust.jcommander.internal.Sets;
=======
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85:src/test/java/quickml/supervised/classifier/StaticBuildersTest.java
import org.javatuples.Pair;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Solution content
package quickml.supervised.classifier;

import org.javatuples.Pair;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
File
ClassifiersTest.java
Developer's decision
Version 2
Kind of conflict
Import
Chunk
Conflicting content
import quickml.supervised.classifier.downsampling.DownsamplingClassifier;
import quickml.supervised.crossValidation.lossfunctions.WeightedAUCCrossValLossFunction;

<<<<<<< HEAD:src/test/java/quickml/supervised/classifier/ClassifiersTest.java
import java.util.Arrays;
=======
import java.io.Serializable;
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85:src/test/java/quickml/supervised/classifier/StaticBuildersTest.java
import java.util.List;
import java.util.Map;
import java.util.Set;
Solution content
import quickml.supervised.classifier.downsampling.DownsamplingClassifier;
import quickml.supervised.crossValidation.lossfunctions.WeightedAUCCrossValLossFunction;

import java.io.Serializable;
import java.util.List;
import java.util.Map;
File
ClassifiersTest.java
Developer's decision
Version 2
Kind of conflict
Import
Chunk
Conflicting content
    List trainingData = getAdvertisingInstances().subList(0, 3000);
        OnespotDateTimeExtractor dateTimeExtractor = new OnespotDateTimeExtractor();
<<<<<<< HEAD:src/test/java/quickml/supervised/classifier/ClassifiersTest.java
        Pair, DownsamplingClassifier> downsamplingClassifierPair =
                Classifiers.getOptimizedDownsampledRandomForest(trainingData, rebuildsPerValidation, fractionOfDataForValidation, new WeightedAUCCrossValLossFunction(1.0), dateTimeExtractor, exemptAttributes);
=======
        Pair, DownsamplingClassifier> downsamplingClassifierPair =
                Classifiers.getOptimizedDownsampledRandomForest(trainingData, rebuildsPerValidation, fractionOfDataForValidation, new WeightedAUCCrossValLossFunction(1.0), dateTimeExtractor);
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85:src/test/java/quickml/supervised/classifier/StaticBuildersTest.java
        logger.info("logged weighted auc loss should be between 0.25 and 0.28");
    }
}
Solution content
        OnespotDateTimeExtractor dateTimeExtractor = new OnespotDateTimeExtractor();
        Pair, DownsamplingClassifier> downsamplingClassifierPair =
                Classifiers.getOptimizedDownsampledRandomForest(trainingData, rebuildsPerValidation, fractionOfDataForValidation, new WeightedAUCCrossValLossFunction(1.0), dateTimeExtractor);
        logger.info("logged weighted auc loss should be between 0.25 and 0.28");
    }
}
File
ClassifiersTest.java
Developer's decision
Version 2
Kind of conflict
Method invocation
Variable
Chunk
Conflicting content
import quickml.data.AttributesMap;
import quickml.data.ClassifierInstance;
import quickml.data.OnespotDateTimeExtractor;
<<<<<<< HEAD:src/test/java/quickml/supervised/crossValidation/attributeImportance/AttributeImportanceFinderTest.java
import quickml.supervised.InstanceLoader;
import quickml.supervised.classifier.Classifier;
import quickml.supervised.classifier.decisionTree.Tree;
import quickml.supervised.classifier.decisionTree.TreeBuilder;
import quickml.supervised.classifier.decisionTree.scorers.GiniImpurityScorer;
import quickml.supervised.classifier.decisionTree.tree.attributeIgnoringStrategies.IgnoreAttributesWithConstantProbability;
import quickml.supervised.classifier.randomForest.RandomForestBuilder;
import quickml.supervised.crossValidation.ClassifierLossChecker;
import quickml.supervised.crossValidation.CrossValidator;
import quickml.supervised.crossValidation.data.OutOfTimeData;
=======
import quickml.InstanceLoader;

>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85:src/test/java/quickml/supervised/crossValidation/attributeImportance/AttributeImportanceFinderIntegrationTest.java
import quickml.supervised.crossValidation.lossfunctions.ClassifierLogCVLossFunction;
import quickml.supervised.crossValidation.lossfunctions.WeightedAUCCrossValLossFunction;
import quickml.supervised.tree.attributeIgnoringStrategies.IgnoreAttributesWithConstantProbability;
Solution content
import quickml.data.ClassifierInstance;
import quickml.data.OnespotDateTimeExtractor;
import quickml.InstanceLoader;

import quickml.supervised.crossValidation.lossfunctions.ClassifierLogCVLossFunction;
import quickml.supervised.crossValidation.lossfunctions.WeightedAUCCrossValLossFunction;
import quickml.supervised.tree.attributeIgnoringStrategies.IgnoreAttributesWithConstantProbability;
File
AttributeImportanceFinderIntegrationTest.java
Developer's decision
Version 2
Kind of conflict
Import
Chunk
Conflicting content
    @Test
    public void testAttributeImportanceFinder() throws Exception {
<<<<<<< HEAD:src/test/java/quickml/supervised/crossValidation/attributeImportance/AttributeImportanceFinderTest.java

        AttributeImportanceFinder attributeImportanceFinder = new AttributeImportanceFinderBuilder<>()
                .modelBuilder(new RandomForestBuilder(new TreeBuilder(new GiniImpurityScorer()).maxDepth(16).minCategoricalAttributeValueOccurances(2).attributeIgnoringStrategy(new IgnoreAttributesWithConstantProbability(0.7))).numTrees(5))
=======
        System.out.println("\n \n \n new  attrImportanceTest");
        DecisionTreeBuilder modelBuilder = new DecisionTreeBuilder().scorerFactory(new GRPenalizedGiniImpurityScorerFactory()).maxDepth(16).minLeafInstances(0).minAttributeValueOccurences(11).attributeIgnoringStrategy(new IgnoreAttributesWithConstantProbability(0.7));

        AttributeImportanceFinder attributeImportanceFinder = new AttributeImportanceFinderBuilder()
                .modelBuilder(modelBuilder)
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85:src/test/java/quickml/supervised/crossValidation/attributeImportance/AttributeImportanceFinderIntegrationTest.java
                .dataCycler(new OutOfTimeData<>(instances, .25, 12, new OnespotDateTimeExtractor()))
                .percentAttributesToRemovePerIteration(0.3)
                .numOfIterations(3)
Solution content
    @Test
    public void testAttributeImportanceFinder() throws Exception {
        System.out.println("\n \n \n new  attrImportanceTest");
        DecisionTreeBuilder modelBuilder = new DecisionTreeBuilder().scorerFactory(new GRPenalizedGiniImpurityScorerFactory()).maxDepth(16).minLeafInstances(0).minAttributeValueOccurences(11).attributeIgnoringStrategy(new IgnoreAttributesWithConstantProbability(0.7));

        AttributeImportanceFinder attributeImportanceFinder = new AttributeImportanceFinderBuilder()
                .modelBuilder(modelBuilder)
                .dataCycler(new OutOfTimeData<>(instances, .25, 12, new OnespotDateTimeExtractor()))
                .percentAttributesToRemovePerIteration(0.3)
                .numOfIterations(3)
File
AttributeImportanceFinderIntegrationTest.java
Developer's decision
Version 2
Kind of conflict
Other
Chunk
Conflicting content
        TreeBuilderTestUtils.serializeDeserialize(downsamplingClassifier);

<<<<<<< HEAD:src/test/java/quickml/supervised/classifier/downsampling/DownsamplingClassifierBuilderTest.java
        RandomForest randomForest = (RandomForest) downsamplingClassifier.wrappedClassifier;
        final List trees = randomForest.trees;
        final int treeSize = trees.size();
        final int firstTreeNodeSize = trees.get(0).node.size();
        org.testng.Assert.assertTrue(treeSize < 400, "Forest size should be less than 400");
        org.testng.Assert.assertTrue((System.currentTimeMillis() - startTime) < 20000, "Building this node should take far less than 20 seconds");
=======
        RandomDecisionForest randomDecisionForest = (RandomDecisionForest) downsamplingClassifier.wrappedClassifier;
        final List decisionTrees = randomDecisionForest.decisionTrees;
        final int treeSize = decisionTrees.size();
        final int firstTreeNodeSize = decisionTrees.get(0).root.getSize();
        org.testng.Assert.assertTrue(treeSize < 400, "Forest getSize should be less than 400");
        org.testng.Assert.assertTrue((System.currentTimeMillis() - startTime) < 20000, "Building this root should take far less than 20 seconds");
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85:src/test/java/quickml/supervised/downsampling/DownsamplingClassifierBuilderTest.java
    }

    private static class SamePredictionClassifier extends AbstractClassifier {
Solution content
        TreeBuilderTestUtils.serializeDeserialize(downsamplingClassifier);

        RandomDecisionForest randomDecisionForest = (RandomDecisionForest) downsamplingClassifier.wrappedClassifier;
        final List decisionTrees = randomDecisionForest.decisionTrees;
        final int treeSize = decisionTrees.size();
        final int firstTreeNodeSize = decisionTrees.get(0).root.getSize();
        org.testng.Assert.assertTrue(treeSize < 400, "Forest getSize should be less than 400");
        org.testng.Assert.assertTrue((System.currentTimeMillis() - startTime) < 20000, "Building this root should take far less than 20 seconds");
    }

    private static class SamePredictionClassifier extends AbstractClassifier {
File
DownsamplingClassifierBuilderTest.java
Developer's decision
Version 2
Kind of conflict
Cast expression
Method invocation
Variable
Chunk
Conflicting content
    @Before
    public void setUp() throws Exception {
        List advertisingInstances = getAdvertisingInstances();
<<<<<<< HEAD
     //   advertisingInstances = advertisingInstances.subList(0, 3000);
        optimizer = new PredictiveModelOptimizerBuilder()
                .modelBuilder(new RandomForestBuilder<>())
=======
        advertisingInstances = advertisingInstances.subList(0, 3000);
        optimizer = new PredictiveModelOptimizerBuilder()
                .modelBuilder(new RandomDecisionForestBuilder<>())
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85
                .dataCycler(new OutOfTimeData<>(advertisingInstances, 0.2, 12, new OnespotDateTimeExtractor()))
                .lossChecker(new ClassifierLossChecker(new WeightedAUCCrossValLossFunction(1.0)))
                .valuesToTest(createConfig())
Solution content
    @Before
    public void setUp() throws Exception {
        List advertisingInstances = getAdvertisingInstances();
        advertisingInstances = advertisingInstances.subList(0, 3000);
        optimizer = new PredictiveModelOptimizerBuilder()
                .modelBuilder(new RandomDecisionForestBuilder<>())
                .dataCycler(new OutOfTimeData<>(advertisingInstances, 0.2, 12, new OnespotDateTimeExtractor()))
                .lossChecker(new ClassifierLossChecker(new WeightedAUCCrossValLossFunction(1.0)))
                .valuesToTest(createConfig())
File
PredictiveModelOptimizerIntegrationTest.java
Developer's decision
Version 2
Kind of conflict
Comment
Chunk
Conflicting content
        CompositeAttributeIgnoringStrategy compositeAttributeIgnoringStrategy = new CompositeAttributeIgnoringStrategy(Arrays.asList(
                new IgnoreAttributesWithConstantProbability(0.7), new IgnoreAttributesInSet(attributesToIgnore, probabilityOfDiscardingFromAttributesToIgnore)
        ));
<<<<<<< HEAD
        config.put(ATTRIBUTE_IGNORING_STRATEGY, new FixedOrderRecommender(new IgnoreAttributesWithConstantProbability(0.7)));//, compositeAttributeIgnoringStrategy ));
        config.put(NUM_TREES, new MonotonicConvergenceRecommender(asList(8), 0.02));
        config.put(MAX_DEPTH, new FixedOrderRecommender(8));//, 16));//Integer.MAX_VALUE, 2, 3, 5, 6, 9));
        config.put(MIN_SCORE, new FixedOrderRecommender(0.00000000000001));//, Double.MIN_VALUE, 0.0, 0.000001, 0.0001, 0.001, 0.01, 0.1));
        config.put(MIN_OCCURRENCES_OF_ATTRIBUTE_VALUE, new FixedOrderRecommender(11));//;, 16, 30 ));
        config.put(MIN_LEAF_INSTANCES, new FixedOrderRecommender(20));//, 40));
        config.put(SCORER, new FixedOrderRecommender(new GiniImpurityScorer()));//, new InformationGainScorer())), ;
        config.put(DEGREE_OF_GAIN_RATIO_PENALTY, new FixedOrderRecommender(1.0));//, 0.75, .5 ));
        config.put(MIN_SPLIT_FRACTION, new FixedOrderRecommender(0.001));// 0.25, .5 ));
      //  config.put(EXEMPT_ATTRIBUTES, new FixedOrderRecommender(exemptAttributes));
        config.put(IMBALANCE_PENALTY_POWER, new FixedOrderRecommender(0.0, 1.0, 2.0));
=======
        config.put(ATTRIBUTE_IGNORING_STRATEGY.name(), new FixedOrderRecommender(new IgnoreAttributesWithConstantProbability(0.7), compositeAttributeIgnoringStrategy ));
        config.put(NUM_TREES.name(), new MonotonicConvergenceRecommender(asList(20)));
        config.put(MAX_DEPTH.name(), new FixedOrderRecommender( 4, 8, 16));//Integer.MAX_VALUE, 2, 3, 5, 6, 9));
        config.put(MIN_SCORE.name(), new FixedOrderRecommender(0.00000000000001));//, Double.MIN_VALUE, 0.0, 0.000001, 0.0001, 0.001, 0.01, 0.1));
        config.put(ATTRIBUTE_VALUE_THRESHOLD_OBSERVATIONS.name(), new FixedOrderRecommender(2, 11, 16, 30 ));
        config.put(MIN_LEAF_INSTANCES.name(), new FixedOrderRecommender(0, 20, 40));
        config.put(SCORER_FACTORY.name(), new FixedOrderRecommender(new PenalizedInformationGainScorerFactory(), new GRPenalizedGiniImpurityScorerFactory()));
        config.put(DEGREE_OF_GAIN_RATIO_PENALTY.name(), new FixedOrderRecommender(1.0, 0.75, .5 ));
>>>>>>> c2055cd661cf137ba3afd871fd67808f375d2b85
        return config;
    }
Solution content
        CompositeAttributeIgnoringStrategy compositeAttributeIgnoringStrategy = new CompositeAttributeIgnoringStrategy(Arrays.asList(
                new IgnoreAttributesWithConstantProbability(0.7), new IgnoreAttributesInSet(attributesToIgnore, probabilityOfDiscardingFromAttributesToIgnore)
        ));
        config.put(ATTRIBUTE_IGNORING_STRATEGY.name(), new FixedOrderRecommender(new IgnoreAttributesWithConstantProbability(0.7), compositeAttributeIgnoringStrategy ));
        config.put(NUM_TREES.name(), new MonotonicConvergenceRecommender(asList(20)));
        config.put(MAX_DEPTH.name(), new FixedOrderRecommender( 4, 8, 16));//Integer.MAX_VALUE, 2, 3, 5, 6, 9));
        config.put(MIN_SCORE.name(), new FixedOrderRecommender(0.00000000000001));//, Double.MIN_VALUE, 0.0, 0.000001, 0.0001, 0.001, 0.01, 0.1));
        config.put(ATTRIBUTE_VALUE_THRESHOLD_OBSERVATIONS.name(), new FixedOrderRecommender(2, 11, 16, 30 ));
        config.put(MIN_LEAF_INSTANCES.name(), new FixedOrderRecommender(0, 20, 40));
        config.put(SCORER_FACTORY.name(), new FixedOrderRecommender(new PenalizedInformationGainScorerFactory(), new GRPenalizedGiniImpurityScorerFactory()));
        config.put(DEGREE_OF_GAIN_RATIO_PENALTY.name(), new FixedOrderRecommender(1.0, 0.75, .5 ));
        return config;
    }
File
PredictiveModelOptimizerIntegrationTest.java
Developer's decision
Version 2
Kind of conflict
Comment
Method invocation