Example #1
0
        /// <summary>
        /// Determines whether the specified population is convergent.
        /// </summary>
        /// <param name="population">The population.</param>
        /// <returns>
        ///   <c>true</c> if the specified population is convergent; otherwise, <c>false</c>.
        /// </returns>
        protected bool IsConvergent(Population population, Parameters parameters)
        {
            float avgEntropy  = ShannonEntropy.GetGenesEntropy(population);
            float convergence = parameters.ConvergenceLimit;

            if (avgEntropy < convergence)
            {
                return(true);
            }
            return(false);
        }
 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();
 }
Example #3
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();
        }