/// <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)); }
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); }
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 }; } } }
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); }
//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(); }
public void Add(HeurisiticArray <int[][]> heuristicArray) { Library += heuristicArray.ToString() + "\n"; }