Używam Accord.net 3.7.0 w dot net core 1.1.Accord.net NaiveBayesLearning "Indeks był poza obszarem tablicy"
Algorytm, którego używam, to naiwny bayesian. A kod źródłowy mechanizmu uczenia się następująco:
public LearningResultViewModel NaiveBayes(int[][] inputs, int[] outputs)
{
// Create a new Naive Bayes learning
var learner = new NaiveBayesLearning();
// Learn a Naive Bayes model from the examples
NaiveBayes nb = learner.Learn(inputs, outputs);
#region test phase
// Compute the machine outputs
int[] predicted = nb.Decide(inputs);
// Use confusion matrix to compute some statistics.
ConfusionMatrix confusionMatrix = new ConfusionMatrix(predicted, outputs, 1, 0);
#endregion
LearningResultViewModel result = new LearningResultViewModel()
{
Distributions = nb.Distributions,
NumberOfClasses = nb.NumberOfClasses,
NumberOfInputs = nb.NumberOfInputs,
NumberOfOutputs = nb.NumberOfOutputs,
NumberOfSymbols = nb.NumberOfSymbols,
Priors = nb.Priors,
confusionMatrix = confusionMatrix
};
return result;
}
Ja testowałem ten fragment kodu na trochę danych, ale także dane wzrósł indeks
był poza granice tablicy
Wystąpił błąd.
Ponieważ nie mogę nawigować w metodzie Learn
, więc nie wiem, co zrobić. Zrzut ekranu z run-time jest taka:
Bez dodatkowych informacji, nie wewnętrzny wyjątek ma pojęcia !!!
TG.
// UPDATE_1 ***
Tablica wejść jest o 4 180 matrycy (array), co poniżej przedstawiono zdjęcie:
posiadającą 4 kolumn w każdym wierszu. sprawdzane ręcznie (mogę udostępnić swój film zbyt jeśli potrzebna !!!)
Tablica wyjścia jest 180 jedno, jak pokazano tutaj:
który zawiera tylko 0 i 1 (mogę podzielić w razie potrzeby także jego wideo !!!).
I o NaiveBayesinLearning doc jest tutaj:
Więcej przykładów na dole tej strony:
I docs learn
metoda tutaj:
Myślę, że moglibyśmy zgadywać tak samo jak ty, być może bardziej. Czy twoja tablica "input" jest prostokątna? Jaką dokumentację masz na temat "Learn"? Czy spodziewa się, że tablica wyjść ma taką samą długość jak konkretna tablica wejściowa itd. Może zajść potrzeba dekompilacji kodów bibliotecznych dla tej metody "Ucz się", abyś mógł zobaczyć, jak uzyskuje dostęp do tablic. –
Nie widzimy kodu, który wyrzuca wyjątek, nie wiemy, co przekazujesz tej metodzie, ale możemy się domyślić, dlaczego się nie udało? – oerkelens
@CaiusJard Być może ktoś napotkał to wcześniej. Ale też dobrze jest przetestować twoje domysły. Tak w tym przykładzie dane wejściowe to tablica 180 na 4, a wynik to 180 wektor. – ConductedClever