Esempio n. 1
0
        public DecisionTreeService(
            DataTable data,
            IDictionary <string, string[]> metaInfo,
            ILogger logger)
        {
            _logger   = logger;
            _codebook = new Codebook(data, metaInfo);

            var vars       = ParseMetaInfo(metaInfo);
            var inputInfo  = vars.Take(vars.Length - 1).ToArray();
            var outputInfo = vars.Last();

            _treeInfo = new TreeInfo()
            {
                Inputs = inputInfo.Select(x => x.Name).ToArray(),
                Output = outputInfo.Name
            };

            var inputs  = _codebook.GetArray(_treeInfo.Inputs);
            var outputs = _codebook.GetArray(_treeInfo.Output);

            _treeBuilder = new Id3Algorithm(inputInfo, outputInfo);
            _tree        = _treeBuilder.Learn(inputs, outputs);
        }
Esempio n. 2
0
 public Id3Algorithm(DecisionVariable[] inputs, DecisionVariable outputType)
 {
     _tree = new Models.DecisionTree(inputs, outputType);
     _numberOfOuputRange  = _tree.NumberOfOuputClasses;
     _numberOfInputsRange = _tree.Attributes.Select(x => x.RangeLength).ToArray();
 }