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); }
public static double Accuracy(double[,] expected, double[,] predicted) { return(Accuracy(expected.ArgMax(1), predicted.ArgMax(1))); }