Exemple #1
0
        ID3Learner LoadDecisionTree(List <Record> trainingSet, ReferenceTable table, int depth)
        {
            int[][] inputs;
            int[]   outputs;
            var     codebook = BuildCodebook(trainingSet, table, out inputs, out outputs);

            var attributes = new DecisionVariable[table.Columns.Length - 1];

            for (int i = 0; i < attributes.Length; i++)
            {
                attributes[i] = new DecisionVariable(table.Columns[i], table.GetValues(i).Length);
            }

            int classCount = 2;

            DecisionTree  tree        = new DecisionTree(attributes, classCount);
            ID3LearningEx id3Learning = new ID3LearningEx(tree)
            {
                MaxHeight = depth
            };

            id3Learning.Run(inputs, outputs);

            return(new ID3Learner(this, tree, codebook, table.Columns.Last()));
        }
Exemple #2
0
        public List <Record> DiscretizeDataset(List <Record> dataset, ReferenceTable table)
        {
            int[] row = { 0 };
            Discretize(table.HasUnknowns(row[0]), rec => double.Parse(rec[row[0]]), (rec, val) => rec[row[0]] = val, table.GetRanges(row[0]), table.GetValues(row[0]), dataset); row[0]++;
            Discretize(table.HasUnknowns(row[0]), rec => double.Parse(rec[row[0]]), (rec, val) => rec[row[0]] = val, table.GetRanges(row[0]), table.GetValues(row[0]), dataset); row[0]++;
            Discretize(table.HasUnknowns(row[0]), rec => double.Parse(rec[row[0]]), (rec, val) => rec[row[0]] = val, table.GetRanges(row[0]), table.GetValues(row[0]), dataset); row[0]++;
            Discretize(table.HasUnknowns(row[0]), rec => double.Parse(rec[row[0]]), (rec, val) => rec[row[0]] = val, table.GetRanges(row[0]), table.GetValues(row[0]), dataset); row[0]++;
            Discretize(table.HasUnknowns(row[0]), rec => double.Parse(rec[row[0]]), (rec, val) => rec[row[0]] = val, table.GetRanges(row[0]), table.GetValues(row[0]), dataset); row[0]++;
            Discretize(table.HasUnknowns(row[0]), rec => double.Parse(rec[row[0]]), (rec, val) => rec[row[0]] = val, table.GetRanges(row[0]), table.GetValues(row[0]), dataset); row[0]++;
            Discretize(table.HasUnknowns(row[0]), rec => double.Parse(rec[row[0]]), (rec, val) => rec[row[0]] = val, table.GetRanges(row[0]), table.GetValues(row[0]), dataset); row[0]++;
            Discretize(table.HasUnknowns(row[0]), rec => double.Parse(rec[row[0]]), (rec, val) => rec[row[0]] = val, table.GetRanges(row[0]), table.GetValues(row[0]), dataset); row[0]++;

            return(dataset);
        }