Exemplo n.º 1
0
        static Node BuildTree(Node root)
        {
            if (root.Class().HasValue)
            {
                Console.WriteLine();
                Console.WriteLine($"All have class {root.Class()}");
                Console.WriteLine(root.TrainingInstances);
                return(root);
            }

            var paramName = SelectParameter(root.TrainingInstances);

            foreach (var val in Enums.Items <Value>())
            {
                Console.WriteLine();
                Console.WriteLine($"{paramName}={val}");

                root.ChildNodes.Add(BuildTree(new Node(root.TrainingInstances
                                                       .Where(inst => inst.Parameters[paramName].Value == val)
                                                       .Select(inst => inst.Without(paramName))
                                                       .ToInstanceSet(), new Parameter(val, paramName))));
            }

            return(root);
        }
Exemplo n.º 2
0
        static Class Classify(Node root, Instance instance)
        {
            if (root.Class().HasValue)
            {
                return(root.Class().Value);
            }

            return(Classify(root.ChildNodes.First(n => instance.Parameters[n.Parameter?.Name].Value == n.Parameter?.Value), instance));
        }