Esempio n. 1
0
        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);
        }