Accord.Tests.MachineLearning.C45LearningTest.ConstantContinuousVariableTest C# (CSharp) Method

ConstantContinuousVariableTest() private method

private ConstantContinuousVariableTest ( ) : void
return void
        public void ConstantContinuousVariableTest()
        {
            DecisionTree tree;
            double[][] inputs;
            int[] outputs;

            DataTable data = new DataTable("Degenerated Tennis Example");

            data.Columns.Add("Day", typeof(string));
            data.Columns.Add("Outlook", typeof(string));
            data.Columns.Add("Temperature", typeof(double));
            data.Columns.Add("Humidity", typeof(double));
            data.Columns.Add("Wind", typeof(string));
            data.Columns.Add("PlayTennis", typeof(string));

            data.Rows.Add("D1", "Sunny", 100, 85, "Weak", "No");
            data.Rows.Add("D2", "Sunny", 100, 90, "Weak", "No");
            data.Rows.Add("D3", "Overcast", 60, 78, "Weak", "Yes");
            data.Rows.Add("D4", "Rain", 100, 64, "Weak", "Yes");
            data.Rows.Add("D5", "Rain", 100, 62, "Weak", "Yes");
            data.Rows.Add("D6", "Rain", 100, 90, "Weak", "No");
            data.Rows.Add("D7", "Overcast", 100, 65, "Weak", "Yes");
            data.Rows.Add("D8", "Sunny", 100, 95, "Weak", "No");
            data.Rows.Add("D9", "Sunny", 100, 56, "Weak", "Yes");
            data.Rows.Add("D10", "Rain", 100, 74, "Weak", "Yes");
            data.Rows.Add("D11", "Sunny", 100, 44, "Weak", "Yes");
            data.Rows.Add("D12", "Overcast", 100, 64, "Weak", "Yes");
            data.Rows.Add("D13", "Overcast", 100, 65, "Weak", "Yes");
            data.Rows.Add("D14", "Rain", 100, 80, "Weak", "No");

            // Create a new codification codebook to
            // convert strings into integer symbols
            Codification codebook = new Codification(data);

            DecisionVariable[] attributes =
            {
               new DecisionVariable("Outlook",     codebook["Outlook"].Symbols),      // 3 possible values (Sunny, overcast, rain)
               new DecisionVariable("Temperature", DecisionVariableKind.Continuous), // constant continuous value
               new DecisionVariable("Humidity",    DecisionVariableKind.Continuous), // continuous values
               new DecisionVariable("Wind",        codebook["Wind"].Symbols + 1)      // 1 possible value (Weak)
            };

            int classCount = codebook["PlayTennis"].Symbols; // 2 possible values (yes, no)

            tree = new DecisionTree(attributes, classCount);
            C45Learning c45 = new C45Learning(tree);

            // Extract symbols from data and train the classifier
            DataTable symbols = codebook.Apply(data);
            inputs = symbols.ToArray("Outlook", "Temperature", "Humidity", "Wind");
            outputs = symbols.ToArray<int>("PlayTennis");

            double error = c45.Run(inputs, outputs);

            for (int i = 0; i < inputs.Length; i++)
            {
                int y = tree.Compute(inputs[i]);
                Assert.AreEqual(outputs[i], y);
            }
        }