Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 486

 
Ich weiß nicht, wie sie zählt, meine zählt den Prozentsatz der nicht-ratenden Optionen.
Zum Beispiel auf dieser Variante war 1000 Eingaben, von denen 600 arbeitete im Plus (ich erraten) 400 arbeitete in den roten (ich erraten). so der Fehler ist die Anzahl der nicht erratenen Optionen im Verhältnis zu allen Varianten, in diesem Beispiel, Fehler = 400/1000 = 0,4

Hochachtungsvoll.
 
Andrey Kisselyov:
Ich weiß nicht, wie es bei anderen funktioniert, aber bei mir zählt es den Prozentsatz der unglücklichen Varianten.
Bei dieser Variante gab es beispielsweise 1000 Einträge, von denen 600 im Plus lagen (ich habe geraten) und 400 im Minus (ich habe nicht geraten). Der Fehler ist also die Anzahl der nicht geratenen Varianten im Verhältnis zu allen Varianten, in diesem Beispiel also Fehler = 400/1000 = 0,4

Hochachtungsvoll.

Soweit ich weiß, wird der endgültige Fehler aus irgendeinem Grund durch die Anzahl der Stichproben multipliziert mit der Anzahl der Eingänge geteilt, wenn Sie ihn entfernen:

return(result/(npoints*df.m_nclasses));

Multipliziert man sie zurück, erhält man ein recht verständliches Ergebnis, zum Beispiel 0,5578064232767638 :)


 
Maxim Dmitrievsky:

Soweit ich weiß, wird der endgültige Fehler aus irgendeinem Grund durch die Anzahl der Stichproben multipliziert mit der Anzahl der Eingänge geteilt, wenn Sie ihn entfernen:

Multipliziert man sie zurück, ist das Ergebnis recht eindeutig, z. B. 0,5578064232767638 :)


höchstwahrscheinlich
return(result/(npoints*df.m_nclasses));
bedeutet _Punkt(e) wie erratene Punkte aus ... oder andersherum.

Herzliche Grüße.
 
Andrey Kisselyov:
höchstwahrscheinlich
Bedeutet _Punkt(e) wie erratene Punkte aus ... oder andersherum.

Mit freundlichen Grüßen.

Nein, hier bedeutet npoints die Länge des Eingangsvektors :)

Während nclasses die Anzahl der Ausgaben ist, wie

//+------------------------------------------------------------------+
//| This subroutine builds random decision forest.                   |
//| INPUT PARAMETERS:                                                |
//|     XY          -   training set                                 |
//|     NPoints     -   training set size, NPoints>=1                |
//|     NVars       -   number of independent variables, NVars>=1    |
//|     NClasses    -   task type:                                   |
//|                     * NClasses=1 - regression task with one      |
//|                                    dependent variable            |
//|                     * NClasses>1 - classification task with      |
//|                                    NClasses classes.             |
//|     NTrees      -   number of trees in a forest, NTrees>=1.      |
//|                     recommended values: 50-100.                  |
//|     R           -   percent of a training set used to build      |
//|                     individual trees. 0<R<=1.                    |
//|                     recommended values: 0.1 <= R <= 0.66.        |
//| OUTPUT PARAMETERS:                                               |
//|     Info        -   return code:                                 |
//|                     * -2, if there is a point with class number  |
//|                           outside of [0..NClasses-1].            |
//|                     * -1, if incorrect parameters was passed     |
//|                           (NPoints<1, NVars<1, NClasses<1,       |
//|                           NTrees<1, R<=0 or R>1).                |
//|                     *  1, if task has been solved                |
//|     DF          -   model built                                  |
//|     Rep         -   training report, contains error on a training|
//|                     set and out-of-bag estimates of              |
//|                     generalization error.                        |
//+------------------------------------------------------------------+
static void CDForest::DFBuildRandomDecisionForest(CMatrixDouble &xy,
                                                  const int npoints,
                                                  const int nvars,
                                                  const int nclasses,
                                                  const int ntrees,
                                                  const double r,int &info,
                                                  CDecisionForest &df,
                                                  CDFReport &rep)

Der endgültige Fehler sollte also mit der Länge der Trainingsstichprobe multipliziert werden, multipliziert mit der Anzahl der Ausgänge (wenn 1, dann sollten die Ausgänge weggelassen werden).

Kann für jemanden nützlich sein

Ich hoffe, ich habe nichts verwechselt und alles richtig gemacht :) zumindest sind die Fehlerwerte klar
 
Maxim Dmitrievsky:

Nein, hier bedeutet npoints die Länge des Eingangsvektors :)

Dann müssen Sie schauen, was rezult ist, da Divisor Eingabeparameter ist.

Mit Verlaub.
 
Andrey Kisselyov:
Wenn dies der Fall ist, dann muss ich sehen, was rezult ist, da der Divisor die Eingabeparameter ist.

Mit Verlaub.

Kurz gesagt, es ist nur ein Durchschnittsfehler über alle Stichproben, und den brauchen wir nicht... rezult gibt nur den Gesamtfehler zurück, der dann durch die Anzahl der Beispiele in der Stichprobe geteilt wird (dies kann entfernt werden)

 
Maxim Dmitrievsky:

Kurz gesagt, es ist nur ein Durchschnittsfehler über alle Stichproben, und den braucht man nicht... rezult gibt nur den Gesamtfehler zurück, der dann durch die Anzahl der Beispiele in der Stichprobe geteilt wird

Sie müssen ihn also wieder normalisieren, was Sie durch Multiplikation mit dem Divisor getan haben.

Т.е. итоговую ошибку нужно домножить на длину обучающей выборки умноженную на кол-во выходов (если 1 то выходы опускаем)



Mit Verlaub.

 
Andrey Kisselyov:

Er muss also wieder auf den Normalwert gebracht werden, was Sie durch Multiplikation mit dem Divisor getan haben.



Mit Verlaub.


Es ist das Gefühl, etwas zu verbessern und sich dann wie ein Kind zu freuen :)

 
Maxim Dmitrievsky:

Das Gefühl, wenn man etwas zwickt und sich dann wie ein Kind freut :)

Schau in einen Schrank und nimm ein Bonbon aus einer Vase.

Mit freundlichen Grüßen.
 
Maxim Dmitrievsky:

Theoretisch sollte es beiRandom Forests kaum Fehler geben, da alle Variablen in Entscheidungsbäumen verwendet werden und es keine Beschränkung der Speichernutzung wie bei neuronalen Netzen gibt - die Anzahl der Neuronen. Dort können Sie nur einzelne Operationen verwenden, um das Ergebnis zu "verwischen", wie z. B. Ebenenbeschränkung, Baumbeschneidung oder Backgammon. Ich weiß nicht, ob die MQ-Implementierung von alglib über Pruning verfügt, Backgammon schon

//      R           -   percent of a training set used to build      |
//|                     individual trees. 0<R<=1.                    |
//|                     recommended values: 0.1 <= R <= 0.66.  

Wenn diese Variable kleiner als 1 ist, sollte der Fehler zunehmen.