Bibliotheken: GRNN Neural Network Class

 

GRNN Neural Network Class:

Diese Klasse realisiert ein generalisiertes Regressionsnetzwerk (General Regression Neural Network - GRNN)

Autor: Yury Kulikov

 

Hallo Yury Kulikov, in Ihrer Datei test_grnn_mul_add.mq5 testen Sie Daten mit einer ungeraden Zahl von 1 bis 9, und nach dem Test verwenden Sie eine Randzahl von 1 bis 10 für die Prüfung, es ist alles in Ordnung, aber wenn ich eine Zahl nicht zwischen 1 und 10 verwenden, ist es nicht funktionieren.

So bekomme ich ein großes Problem, wie man den Testbereich zu definieren, bevor es passieren? wenn ich nicht bekommen kann, das Netzwerk scheinbar nutzlos!

 
Hat jemand versucht, das herauszufinden? Ist es möglich, ohne ein Array von Ausgabedaten zu trainieren? Und wie?
 
Gibt es irgendeinen C / C ++ Code für dies?
 
jommerbot:
Hat jemand versucht, das herauszufinden? Ist es möglich, ohne ein Array von Ausgabedaten zu trainieren? Und wie?
Ich frage mich, was man dann als Trainingsmuster einspeisen würde?
 

es gibt eine solche Zeile #122 im Code: d=sigma[i]==0.0?0.0:(m_inp[i]-inputvector[i])/sigma[i];

Was bedeutet also 0,0?0,0:?

Der Punkt ist, dass ich den Code in eine andere Sprache umschreibe und in einer der Iterationen m_inp[i]-inputvector[i] = 0, bzw. sigma[i] = 0. Daraus folgt, dass das Dividieren durch Null unschön ist. Ich nehme an, das Problem ist, dass ich nicht verstehe, was ==0,0?0,0 bedeutet:

 
daliel:

es gibt eine solche Zeile #122 im Code: d=sigma[i]==0.0?0.0:(m_inp[i]-inputvector[i])/sigma[i];

Was bedeutet also 0,0?0,0:?

Der Punkt ist, dass ich den Code in eine andere Sprache umschreibe und in einer der Iterationen m_inp[i]-inputvector[i] = 0, bzw. sigma[i] = 0. Daraus folgt, dass das Dividieren durch Null unschön ist. Ich nehme an, das Problem ist, dass ich nicht verstehe, was ==0,0?0,0 bedeutet:

Es ist eine verkürzte if - else Notation

if(sigma[i] == 0.0) {
    d = 0;
}
else {
    d = (m_inp[i] - inputvector[i]) / sigma[i];
}

es gibt keine Division durch Null.

 
Event:

Es ist ein abgekürzter if - else Eintrag

es gibt keine Division durch Null.

d.h. wenn das Ergebnis von (m_inp[i]-inputvector[i])/sigma[i]; 0 ist, dann ändert sich sigma[i] nicht, sondern nur d?
 
daliel:
d.h. wenn das Ergebnis von (m_inp[i]-inputvector[i])/sigma[i]; 0 ist, dann ändert sich sigma[i] nicht, sondern nur d?
Bedingter Operator ?
 
daliel:
d. h., wenn das Ergebnis (m_inp[i]-inputvector[i])/sigma[i]; 0 ist, dann ändert sich sigma[i] nicht, sondern nur d?

DasSigma[i] ändert sich nicht, es wird nur mit Null verglichen.

Und d ändert sich durch das Ergebnis dieses Vergleichs