Accord.Tests.MachineLearning.ReducedErrorPruningTest.createNurseryExample C# (CSharp) Method

createNurseryExample() public static method

public static createNurseryExample ( double &inputs, int &outputs, int first ) : Accord.MachineLearning.DecisionTrees.DecisionTree
inputs double
outputs int
first int
return Accord.MachineLearning.DecisionTrees.DecisionTree
        public static DecisionTree createNurseryExample(out double[][] inputs, out int[] outputs, int first)
        {
            string nurseryData = Resources.nursery;

            string[] inputColumns = 
            {
                "parents", "has_nurs", "form", "children",
                "housing", "finance", "social", "health"
            };

            string outputColumn = "output";

            DataTable table = new DataTable("Nursery");
            table.Columns.Add(inputColumns);
            table.Columns.Add(outputColumn);

            string[] lines = nurseryData.Split(
                new[] { Environment.NewLine }, StringSplitOptions.None);

            foreach (var line in lines)
                table.Rows.Add(line.Split(','));

            Codification codebook = new Codification(table);
            DataTable symbols = codebook.Apply(table);
            inputs = symbols.ToArray(inputColumns);
            outputs = symbols.ToArray<int>(outputColumn);

            var attributes = DecisionVariable.FromCodebook(codebook, inputColumns);
            var tree = new DecisionTree(attributes, classes: 5);

            C45Learning c45 = new C45Learning(tree);
            double error = c45.Run(inputs.First(first), outputs.First(first));

            Assert.AreEqual(0, error);

            return tree;
        }
    }

Usage Example

        public void RunTest3()
        {
            Accord.Math.Random.Generator.Seed = 0;

            double[][] inputs;
            int[]      outputs;

            int          training = 6000;
            DecisionTree tree     = ReducedErrorPruningTest.createNurseryExample(out inputs, out outputs, training);

            double[] actual = new double[10];

            for (int i = 0; i < actual.Length; i++)
            {
                int nodeCount2;
                repeat(inputs, outputs, tree, training, i * 0.1, out nodeCount2);

                actual[i] = nodeCount2;
            }

            double[] expected = { 447, 424, 410, 402, 376, 362, 354, 348, 336, 322 };

            for (int i = 0; i < actual.Length; i++)
            {
                Assert.AreEqual(expected[i], actual[i]);
            }
        }
All Usage Examples Of Accord.Tests.MachineLearning.ReducedErrorPruningTest::createNurseryExample
ReducedErrorPruningTest