Exemple #1
0
        private List <Rule> CreateRulesForNotQualitativeArguments(Data[] elements, int indexOfArgument)
        {
            List <Rule> rules = new List <Rule>();

            double[] valuesOfArgument = SortValuesOfArgument(elements, indexOfArgument);
            for (int j = 0; j < valuesOfArgument.Length; j++)
            {
                Rule temp = new Rule();
                temp.IndexOfArgument = indexOfArgument;
                temp.IsQualitative   = false;
                if (j + 1 < valuesOfArgument.Length)
                {
                    temp.Rules.Add(CreateValueForRule(valuesOfArgument, j));
                }
                else
                {
                    temp.Rules.Add(valuesOfArgument[j]);
                }
                Data[] left = null, right = null;
                GeneralMethods.DivideSampleByNotQualitiveRule(out left, out right, elements, temp.Rules[0], indexOfArgument);
                temp.Error  = GeneralMethods.CountError(left);
                temp.Error += GeneralMethods.CountError(right);
                rules.Add(temp);
            }
            return(rules);
        }
 private void AddChildren(DecisionTreeNode node) //add new nodes to the tree
 {
     Data[] left = null, right = null;
     if (node.Rule.IsQualitative)
     {
         GeneralMethods.DivideSampleByQualitiveRule(out left, out right, node.Elements,
                                                    node.Rule.Rules, node.Rule.IndexOfArgument);
     }
     else
     {
         GeneralMethods.DivideSampleByNotQualitiveRule(out left, out right, node.Elements,
                                                       node.Rule.Rules[0], node.Rule.IndexOfArgument);
     }
     node.LeftChild  = new DecisionTreeNode(left, true);
     node.RightChild = new DecisionTreeNode(right, false);
 }