public MultiSplitDecisionTreeModelBuilder(
     ISplitQualityChecker splitQualityChecker,
     IBestSplitSelector bestSplitSelector,
     ILeafBuilder leafBuilder,
     IStatisticalSignificanceChecker statisticalSignificanceChecker = null)
     : base(splitQualityChecker, bestSplitSelector, leafBuilder, statisticalSignificanceChecker)
 {
 }
 public MultiSplitDecisionTreeModelBuilder(
     ISplitQualityChecker splitQualityChecker,
     IBestSplitSelector bestSplitSelector,
     ILeafBuilder leafBuilder,
     IStatisticalSignificanceChecker statisticalSignificanceChecker = null)
     : base(splitQualityChecker, bestSplitSelector, leafBuilder, statisticalSignificanceChecker)
 {
 }
 protected BaseDecisionTreeModelBuilder(
     ISplitQualityChecker splitQualityChecker, 
     IBestSplitSelector bestSplitSelector, 
     ILeafBuilder leafBuilder, 
     IStatisticalSignificanceChecker statisticalSignificanceChecker = null)
 {
     SplitQualityChecker = splitQualityChecker;
     BestSplitSelector = bestSplitSelector;
     LeafBuilder = leafBuilder;
     this.StatisticalSignificanceChecker = statisticalSignificanceChecker;
 }
 protected BaseDecisionTreeModelBuilder(
     ISplitQualityChecker splitQualityChecker,
     IBestSplitSelector bestSplitSelector,
     ILeafBuilder leafBuilder,
     IStatisticalSignificanceChecker statisticalSignificanceChecker = null)
 {
     SplitQualityChecker = splitQualityChecker;
     BestSplitSelector   = bestSplitSelector;
     LeafBuilder         = leafBuilder;
     this.StatisticalSignificanceChecker = statisticalSignificanceChecker;
 }
 public BestSplitSelectorsTests()
 {
     ICategoricalImpurityMeasure<string> shannonEntropy = new ShannonEntropy<string>();
     IBinaryDataSplitter binaryDataSplitter = new BinaryDiscreteDataSplitter();
     binaryNumericBestSplitPointSelector = new ClassBreakpointsNumericSplitFinder();
     binaryBestSplitSelector = new BinarySplitSelectorForCategoricalOutcome(binaryDataSplitter, binaryNumericDataSplitter, binaryNumericBestSplitPointSelector);
     categoricalBinarySplitQualityChecker = new InformationGainCalculator<string>(shannonEntropy, shannonEntropy);
     categoricalMultiValueSplitQualityChecker = new InformationGainCalculator<string>(shannonEntropy, shannonEntropy);
     multiValueCategoricalDataSplitter = new MultiValueDiscreteDataSplitter();
     multiValueBestSplitSelector = new MultiValueSplitSelectorForCategoricalOutcome(multiValueCategoricalDataSplitter, binaryNumericDataSplitter, binaryNumericBestSplitPointSelector);
     dynamicProgrammingBestNumericSplitFinder = new DynamicProgrammingNumericSplitFinder();
 }
Пример #6
0
        public BestSplitSelectorsTests()
        {
            ICategoricalImpurityMeasure <string> shannonEntropy = new ShannonEntropy <string>();
            IBinaryDataSplitter binaryDataSplitter = new BinaryDiscreteDataSplitter();

            binaryNumericBestSplitPointSelector      = new ClassBreakpointsNumericSplitFinder();
            binaryBestSplitSelector                  = new BinarySplitSelectorForCategoricalOutcome(binaryDataSplitter, binaryNumericDataSplitter, binaryNumericBestSplitPointSelector);
            categoricalBinarySplitQualityChecker     = new InformationGainCalculator <string>(shannonEntropy, shannonEntropy);
            categoricalMultiValueSplitQualityChecker = new InformationGainCalculator <string>(shannonEntropy, shannonEntropy);
            multiValueCategoricalDataSplitter        = new MultiValueDiscreteDataSplitter();
            multiValueBestSplitSelector              = new MultiValueSplitSelectorForCategoricalOutcome(multiValueCategoricalDataSplitter, binaryNumericDataSplitter, binaryNumericBestSplitPointSelector);
            dynamicProgrammingBestNumericSplitFinder = new DynamicProgrammingNumericSplitFinder();
        }
Пример #7
0
        private IDecisionTreeModelBuilder BuildCustomModelBuilder(
            bool binary = false,
            ISplitQualityChecker splitQualityChecker = null,
            IBestSplitSelector bestSplitSelector     = null,
            ILeafBuilder leafBuilder = null,
            IStatisticalSignificanceChecker statisticalSignificanceChecker = null)
        {
            if (binary)
            {
                return(new BinaryDecisionTreeModelBuilder(
                           splitQualityChecker ?? new InformationGainRatioCalculator <string>(shannonEntropy, shannonEntropy as ICategoricalImpurityMeasure <string>),
                           bestSplitSelector as IBinaryBestSplitSelector ?? new BinarySplitSelectorForCategoricalOutcome(new BinaryDiscreteDataSplitter(), new BinaryNumericDataSplitter(), new ClassBreakpointsNumericSplitFinder()),
                           leafBuilder ?? new CategoricalDecisionTreeLeafBuilder(),
                           statisticalSignificanceChecker));
            }

            return(new MultiSplitDecisionTreeModelBuilder(
                       splitQualityChecker ?? new InformationGainRatioCalculator <string>(shannonEntropy, shannonEntropy as ICategoricalImpurityMeasure <string>),
                       bestSplitSelector ?? new MultiValueSplitSelectorForCategoricalOutcome(new MultiValueDiscreteDataSplitter(), new BinaryNumericDataSplitter(), new DynamicProgrammingNumericSplitFinder()),
                       leafBuilder ?? new CategoricalDecisionTreeLeafBuilder(),
                       statisticalSignificanceChecker));
        }
        private IDecisionTreeModelBuilder BuildCustomModelBuilder(
            bool binary = false, 
            ISplitQualityChecker splitQualityChecker = null,
            IBestSplitSelector bestSplitSelector = null,
            ILeafBuilder leafBuilder = null,
            IStatisticalSignificanceChecker statisticalSignificanceChecker = null)
        {
            if (binary)
            {
                return new BinaryDecisionTreeModelBuilder(
                    splitQualityChecker ?? new InformationGainRatioCalculator<string>(shannonEntropy, shannonEntropy as ICategoricalImpurityMeasure<string>),
                    bestSplitSelector as IBinaryBestSplitSelector ?? new BinarySplitSelectorForCategoricalOutcome(new BinaryDiscreteDataSplitter(), new BinaryNumericDataSplitter(), new ClassBreakpointsNumericSplitFinder()),
                    leafBuilder ?? new CategoricalDecisionTreeLeafBuilder(),
                    statisticalSignificanceChecker);
            }

            return new MultiSplitDecisionTreeModelBuilder(
               splitQualityChecker ?? new InformationGainRatioCalculator<string>(shannonEntropy, shannonEntropy as ICategoricalImpurityMeasure<string>),
               bestSplitSelector ?? new MultiValueSplitSelectorForCategoricalOutcome(new MultiValueDiscreteDataSplitter(), new BinaryNumericDataSplitter(), new DynamicProgrammingNumericSplitFinder()),
               leafBuilder ?? new CategoricalDecisionTreeLeafBuilder(),
               statisticalSignificanceChecker);
        }