package quickml.supervised.tree.regressionTree.branchFinders.branchFinderBuilders; import quickml.supervised.tree.attributeValueIgnoringStrategies.AttributeValueIgnoringStrategy; import quickml.supervised.tree.branchFinders.BranchFinder; import quickml.supervised.tree.branchFinders.branchFinderBuilders.BranchFinderBuilder; import quickml.supervised.tree.constants.BranchType; import quickml.supervised.tree.decisionTree.attributeValueIgnoringStrategies.BinaryClassAttributeValueIgnoringStrategyBuilder; import quickml.supervised.tree.decisionTree.branchFinders.DTBinaryCatBranchFinder; import quickml.supervised.tree.regressionTree.attributeValueIgnoringStrategies.RegTreeAttributeValueIgnoringStrategyBuilder; import quickml.supervised.tree.regressionTree.branchFinders.RTCatBranchFinder; import quickml.supervised.tree.regressionTree.valueCounters.MeanValueCounter; import java.util.Set; /** * Created by alexanderhawk on 4/5/15. */ public class RTCatBranchFinderBuilder extends RTBranchFinderBuilder { private static final long serialVersionUID = 0L; @Override public BranchFinderBuilder<MeanValueCounter> createBranchFinderBuilder() { return new RTCatBranchFinderBuilder(); } @Override public BranchType getBranchType() { return BranchType.RT_CATEGORICAL; } @Override public RTCatBranchFinder buildBranchFinder(MeanValueCounter meanValueCounter, Set<String> candidateAttributes) { AttributeValueIgnoringStrategy<MeanValueCounter> attributeValueIgnoringStrategy; if(attributeValueIgnoringStrategyBuilder==null) { RegTreeAttributeValueIgnoringStrategyBuilder regTreeAttributeValueIgnoringStrategyBuilder = new RegTreeAttributeValueIgnoringStrategyBuilder(getMinAttributeOccurences()); attributeValueIgnoringStrategy = regTreeAttributeValueIgnoringStrategyBuilder.createAttributeValueIgnoringStrategy(meanValueCounter);//TODO } else { attributeValueIgnoringStrategy = attributeValueIgnoringStrategyBuilder.createAttributeValueIgnoringStrategy(meanValueCounter); //TODO make an attributeValueIgnoringStrategy that takes a MeanValueCounter that informs upon the general ratio of interesting target values and uninteresting values. } return new RTCatBranchFinder(candidateAttributes, branchingConditions, scorerFactory, attributeValueIgnoringStrategy, attributeIgnoringStrategy); } }