public int[,] CalculateWinnerFreqency(TrainingSet tas, out List <KohonenMapClassification> list) { int[,] result = new int[size.Width, size.Height]; List <string> listNames = new List <string>(); // if (list == null) list = new List <KohonenMapClassification>(); int i = 0; foreach (TrainingSample ts in tas.TrainingSamples) { PositionNeuron p = FindWinner(ts.InputVector); result[p.Coordinate.X, p.Coordinate.Y]++; string clsname = "X" + p.Coordinate.X.ToString() + "Y" + p.Coordinate.Y.ToString(); if (listNames.Contains(clsname)) { var k = from c in list where c.ClassName == clsname select c; k.First().ClassifiedInputPatternIndex.Add(i); } else { listNames.Add(clsname); KohonenMapClassification mapcls = new KohonenMapClassification(clsname) { X = p.Coordinate.X, Y = p.Coordinate.Y }; mapcls.ClassifiedInputPatternIndex.Add(i); list.Add(mapcls); } i++; } ColorMap cmap = new ColorMap(Color.Blue, Color.Red); Color[] colors = cmap.GenerateUniqueColors(list.Count); i = 0; foreach (KohonenMapClassification cls in list) { cls.ColorIndicator = colors[i]; i++; } return(result); }