Пример #1
0
        /// <summary>
        /// Returns certainty associated with all possible input labels
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public Dictionary <Label, LabelLookupResult> Resolve(T input)
        {
            HeurisiticArray <T> ha = new HeurisiticArray <T>(input);

            //Add a bunch of heuristics:
            //ha.AddHeuristics()
            return(Resolve(ha));
        }
Пример #2
0
        public InputProcessor(List <int> image)
        {
            heurisiticArray = new HeurisiticArray <List <int> >(new List <int>());

            //define the functions which generate these heuristics
            var pixelData = new HeuristicSet <List <int> >("Pixel Data", i => new List <int>(), image);

            heurisiticArray.AddHeuristics(pixelData);
            var colorData = new HeuristicSet <List <int> >("Color data", i => new List <int>(), image);

            heurisiticArray.AddHeuristics(colorData);
        }
Пример #3
0
 public void Add(HeurisiticArray <T> trainingData)
 {
     foreach (var a in trainingData.HeuristicMethods())
     {
         //If contains, add. Otherwise create new
         if (allTrainingData.ContainsKey(a))
         {
             allTrainingData[a].Add(trainingData);
         }
         else
         {
             allTrainingData[a] = new List <HeurisiticArray <T> >()
             {
                 trainingData
             };
         }
     }
 }
Пример #4
0
        public HeurisiticArray <int[][]> AccessElement(int at)
        {
            var a     = lines.ElementAt(at);
            var label = a.Split(',').First();
            var data  = a.Split(',').Skip(1).Select(v => int.Parse(v));

            int[][] inputData = new int[28][];
            for (int i = 0; i < 28; i++)
            {
                inputData[i] = new int[28];
            }

            for (int i = 0; i < data.Count(); i++)
            {
                inputData[i / 28][i % 28] = data.ElementAt(i);
            }
            var set = new HeuristicSet <int[][]>("pixels", pixel => data, inputData);
            var b   = new HeurisiticArray <int[][]>(inputData);

            b.AddLabel(new Label(label));
            b.AddHeuristics(set);
            return(b);
        }
Пример #5
0
        //To resolve probabilistic information:
        //Given a particular unlabeled heuristic value:
        //For each possible label, how well does this value correlate (and anti-correlate)
        //with a particular piece of input data?
        //Dictionary<training data element, correlationVal>
        public Dictionary <Label, LabelLookupResult> Resolve(HeurisiticArray <T> ha)
        {
            //Iterate over every possible output label
            //For each output label iterate over every piece of training data
            //For each piece of training data iterate over every heuristic
            //Construct: Dictionary<Label, Dictionary<heurisitcMethod,List<Tuple<match, noMatch>>>
            Dictionary <Label, HeuristicIndicationArray> indication
                = new Dictionary <Label, HeuristicIndicationArray>();

            foreach (var td in allTrainingData)
            {
                foreach (var heuristicArray in td.Value)
                {
                    foreach (var method in ha.GetHeuristicMethods())
                    {
                        var heur1 = heuristicArray.GetHeuristics(method);
                        var heur2 = heuristicArray.GetHeuristics(method);
                        //Make sure that heur2 actually exists
                        indication[td.Key].Add(method, heur1, heur2);
                    }
                }
            }
            throw new NotImplementedException();
        }
Пример #6
0
 public void Add(HeurisiticArray <int[][]> heuristicArray)
 {
     Library += heuristicArray.ToString() + "\n";
 }