Esempio n. 1
0
        public void CalculateEntropyTest_TwoClasses_UnevenDistribution()
        {
            //Given
            var builder     = new TreeBuilder();
            var trainingSet = new List <IrisRecord>
            {
                new IrisRecord {
                    Classification = "Iris-setosa"
                },
                new IrisRecord {
                    Classification = "Iris-versicolor"
                },
                new IrisRecord {
                    Classification = "Iris-versicolor"
                },
                new IrisRecord {
                    Classification = "Iris-versicolor"
                },
                new IrisRecord {
                    Classification = "Iris-versicolor"
                },
                new IrisRecord {
                    Classification = "Iris-versicolor"
                },
                new IrisRecord {
                    Classification = "Iris-versicolor"
                },
                new IrisRecord {
                    Classification = "Iris-versicolor"
                },
                new IrisRecord {
                    Classification = "Iris-versicolor"
                },
                new IrisRecord {
                    Classification = "Iris-versicolor"
                },
            };
            var classification = typeof(IrisRecord).GetClassificationProperty();

            var expected = 0.47;
            var delta    = 0.01;

            //When
            var entropy = builder.CalculateEntropy(trainingSet, classification);

            //Then
            entropy.Should().BeInRange(expected - delta, expected + delta);
        }