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
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 :)
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.
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. |//+------------------------------------------------------------------+staticvoid CDForest::DFBuildRandomDecisionForest(CMatrixDouble &xy,
constint npoints,
constint nvars,
constint nclasses,
constint ntrees,
constdouble 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
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)
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 то выходы опускаем)
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.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
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.
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 :)
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 :)
bedeutet _Punkt(e) wie erratene Punkte aus ... oder andersherum.
Herzliche Grüße.
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
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 klarNein, hier bedeutet npoints die Länge des Eingangsvektors :)
Mit Verlaub.
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)
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.
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 :)
Das Gefühl, wenn man etwas zwickt und sich dann wie ein Kind freut :)
Mit freundlichen Grüßen.
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
Wenn diese Variable kleiner als 1 ist, sollte der Fehler zunehmen.