Пример #1
0
        public void ApplyTest()
        {
            object[,] data =
            {
                { "Id", "IsSmoker", "Age" },
                {    0,          1,    10 },
                {    1,          1,    15 },
                {    2,          0,    40 },
                {    3,          1,    20 },
                {    4,          0,    70 },
                {    5,          0,    55 },
            };

            DataTable input = data.ToTable();

            var smoker = new LinearScaling();
            var common = new LinearScaling();

            smoker.Columns.Add(new LinearScaling.Options("Age")
            {
                SourceRange = new DoubleRange(10, 20),
                OutputRange = new DoubleRange(-1, 0)
            });

            common.Columns.Add(new LinearScaling.Options("Age")
            {
                SourceRange = new DoubleRange(40, 70),
                OutputRange = new DoubleRange(0, 1)
            });


            var settings = new Branching.Options("IsSmoker");

            settings.Filters.Add(1, smoker);
            settings.Filters.Add(0, common);

            Branching branching = new Branching(settings);



            DataTable actual = branching.Apply(input);

            double[] expected = { -1, -0.5, 0, 0, 1, 0.5 };

            foreach (DataRow row in actual.Rows)
            {
                int    id  = (int)row[0];
                double age = (double)row[2];
                Assert.AreEqual(expected[id], age);
            }
        }
Пример #2
0
        public void ApplyTest()
        {
            object[,] data = 
            {
                { "Id", "IsSmoker", "Age" },
                {   0,       1,        10  },
                {   1,       1,        15  },
                {   2,       0,        40  },
                {   3,       1,        20  },
                {   4,       0,        70  },
                {   5,       0,        55  },
            };

            DataTable input = data.ToTable();

            var smoker = new LinearScaling();
            var common = new LinearScaling();

            smoker.Columns.Add(new LinearScaling.Options("Age")
            {
                SourceRange = new DoubleRange(10, 20),
                OutputRange = new DoubleRange(-1, 0)
            });

            common.Columns.Add(new LinearScaling.Options("Age")
            {
                SourceRange = new DoubleRange(40, 70),
                OutputRange = new DoubleRange(0, 1)
            });


            var settings = new Branching.Options("IsSmoker");
            settings.Filters.Add(1, smoker);
            settings.Filters.Add(0, common);

            Branching branching = new Branching(settings);



            DataTable actual = branching.Apply(input);

            double[] expected = { -1, -0.5, 0, 0, 1, 0.5 };

            foreach (DataRow row in actual.Rows)
            {
                int id = (int)row[0];
                double age = (double)row[2];
                Assert.AreEqual(expected[id], age);
            }

        }