Beispiel #1
0
        public int MagicIda(int[,] data, bool train)
        {
            int  m         = 0;
            bool condition = false;
            int  limit     = resetLimit;

            F1 = data;

            F2.Set(0);

            for (int pattern = 0; pattern < patternsCount; pattern++)
            {
                F2[pattern, 0] = W.GetRow(pattern).DotWithTransposed(F1)[0]; //krok 2
            }

            while (!condition)
            {
                m = F2.ArgMax().Item1; //krok 3

                double licznik   = V.GetRow(m).DotWithTransposed(data)[0];
                int    mianownik = data.Sum();

                condition = TestProbability(licznik, mianownik, m, train);

                if (--limit == 0)
                {
                    return(-1);
                }
            }

            //if (train) UpdateWeights(F1, m);


            return(m);
        }
Beispiel #2
0
 public static double Accuracy(double[,] expected, double[,] predicted)
 {
     return(Accuracy(expected.ArgMax(1), predicted.ArgMax(1)));
 }