Optimierung und Out-of-Sample-Tests. - Seite 4

 

Ja, in der Tat!

Darüber hinaus möchte ich (auch unter Berücksichtigung der Kritik) darauf hinweisen, dass es einen wesentlichen Einwand für diejenigen gibt, die mit der einfachen Ausführung der Idee nicht ganz einverstanden sind.

"Man sollte das Wesen der Dinge nicht über das Notwendige hinaus verkomplizieren" (Br. Occam)

Die erste Optimierung gefolgt von der zweiten (außerhalb der Stichprobe) ist eine einfache und ausreichende Lösung!

Wir wollen schließlich Gewinn machen und nicht die Optimierung um der Optimierung willen betreiben.

 
Vita:

--> Das Aufschlitzen bewirkt dasselbe (Markierung, Kontrolle). Was bringt das Aufschlitzen im Vergleich zu einem Durchlauf?


Durch die Aufteilung werden die Informationen effektiv gefiltert. Was die Menge betrifft.

Vita schrieb (a):

--> Wenn Sie mit "Verarbeitung von Optimierungsergebnissen über die gesamte Stichprobe" das Verwerfen der Menge D meinen, dann bin ich anderer Meinung - das Verwerfen von Ergebnissen, die zu Zwischenverlusten führen (in der Stichprobe oder außerhalb der Stichprobe), ist eine elementare Aufgabe, die während der Optimierung selbst über die gesamte Stichprobe gelöst wird, d.h. es ist keine Verarbeitung nach der Optimierung erforderlich. Das Ergebnis ist sofort die Menge B. Und keine zeitraubenden zusätzlichen Prüfungen außerhalb der Stichprobe.

Meinen Sie die Optimierung im mathematischen Sinne oder im realen Sinne des Testers? Soweit ich weiß, umfasst die Probe nun beide Proben. Glauben Sie, dass Sie Zeit sparen können, wenn Sie drei unnötige Sätze über beide Proben laufen lassen? Was die Implementierung anbelangt, so sind die Implementierungskosten vielleicht vernachlässigbar, wenn Sie Ihr eigenes Prüfgerät von Grund auf neu schreiben. Versuchen Sie, diese umzusetzen, dann können wir auf die Frage zurückkommen.

 
leonid553:

Ja, in der Tat!

Darüber hinaus möchte ich (auch unter Berücksichtigung der Kritik) darauf hinweisen, dass es einen wesentlichen Einwand für diejenigen gibt, die mit der einfachen Ausführung der Idee nicht ganz einverstanden sind.

"Man sollte das Wesen der Dinge nicht über das Notwendige hinaus verkomplizieren" (Br. Occam)

Die erste Optimierung gefolgt von der zweiten (außerhalb der Stichprobe) ist eine einfache und ausreichende Lösung!

Schließlich verfolgen wir das Ziel des Gewinns und nicht der Optimierung um der Optimierung willen.


Ich auch, und ich stimme mit Occam völlig überein. Sie sollten nicht zwei Optimierungen vornehmen - eine reicht aus.

Sie sagten: "Nach der Optimierung eines Expert Advisors müssen wir oft mühsam mehr als ein Dutzend vom Optimierer vorgeschlagene Parametersätze durchgehen.

Eine Untersuchung der gesamten Grundgesamtheit, ohne Unterteilung in Stichproben und Nicht-Stichproben, ist nicht weniger ausreichend und sogar die einfachere Lösung.

 

Ich bin ganz und gar nicht einverstanden, Vita. Andernfalls gäbe es in neuronalen Netzen keine Aufteilung aller Daten in drei Teile, die sich grundlegend voneinander unterscheiden: die eigentliche Optimierung findet nur auf dem ersten Teil statt; der zweite dient nur dazu, den Zeitpunkt der Beendigung des Trainings zu bestimmen, und der dritte - nur für einzelne Tests. Das heißt, die eigentliche Anprobe findet nur beim ersten Mal statt, und beim dritten Mal ist es egal, wie es ausgeht... Und die Entscheidung - "Occams Rasiermesser" oder Verlust des Vertrauens in das System - bleibt dem Schöpfer des Systems überlassen.

Grob gesagt ist die Optimierung auf A+B+C überhaupt nicht dasselbe wie die oben beschriebene Verarbeitung.

 
Mathemat, ich denke, was er meint, ist, den ganzen Haufen (vergiss die Kombinatorik nicht) von Ergebnissen zu sammeln, ihn in 4 Gruppen zu teilen und drei davon zu verwerfen.
 
Mathemat:

Ich bin ganz und gar nicht einverstanden, Vita. Außerdem findet die eigentliche Optimierung nur auf dem ersten Teil statt; der zweite dient nur dazu, den Zeitpunkt des Trainingsabbruchs zu bestimmen, und der dritte ist nur für einzelne Tests vorgesehen.


Ich vermute, dass die Dreiteilung von Daten in neuronalen Netzen dazu dient, Gesetzmäßigkeiten zu lernen (z. B. 2x2=4), um diese Muster zu erkennen, und zwar nur, wenn es welche gibt. Andernfalls wird das neuronale Netz von selbst an die Kurve angepasst.

Und dann, so schien es mir, besteht die Aufgabe des Prüfers nicht darin, zu trainieren oder Muster zu erkennen, sondern den optimalen Satz von Parametern zu finden. Dies kann mit einfachen Brute-Force- oder genetischen Algorithmen oder vielleicht mit einem neuronalen Netz geschehen. Doch wie lässt sich eine Kurvenanpassung vermeiden, sobald ein Satz optimaler Parameter für eine Stichprobe gefunden wurde? Das Prinzip? Was sind die schlechten Elemente der Menge, die verschwinden, wenn Sie auf Out-of-Sample testen?

 
lna01:
Lebenslauf:

--> Das Aufschlitzen bewirkt dasselbe (Markierung, Kontrolle). Was bringt das Aufschlitzen im Vergleich zu einem Durchlauf?


Durch die Aufteilung werden die Informationen effektiv gefiltert. Was die Menge betrifft.

--> Das Splitting filtert Ergebnisse mit Verlusten in der Stichprobe oder außerhalb der Stichprobe, aber mit kumulierten Gewinnen heraus. Das ist nichts, was ich verwerfen möchte.

Vita schrieb (a):

--> Wenn Sie mit "Verarbeitung von Optimierungsergebnissen über die gesamte Stichprobe" das Verwerfen von Menge D meinen, dann bin ich anderer Meinung - das Verwerfen von Ergebnissen, die zu Zwischenverlusten führen (in der Stichprobe oder außerhalb der Stichprobe), ist eine elementare Aufgabe, die während der Optimierung selbst über die gesamte Stichprobe gelöst wird, d.h. es ist keine Verarbeitung nach der Optimierung erforderlich. Das Ergebnis ist sofort Menge B. Und keine zeitraubenden zusätzlichen Prüfungen außerhalb der Stichprobe.

Meinen Sie die Optimierung im mathematischen Sinne oder im realen Sinne des Testers? Soweit ich weiß, umfasst die Probe nun beide Proben. Glauben Sie, dass Sie Zeit sparen können, wenn Sie drei unnötige Sätze über beide Proben laufen lassen? Was die Implementierung anbelangt, so sind die Implementierungskosten vielleicht vernachlässigbar, wenn Sie Ihr eigenes Prüfgerät von Grund auf neu schreiben. Versuchen Sie die Umsetzung, dann können wir auf die Frage zurückkommen.

--> " Sampling, so wie ich es verstehe, umfasst nun beide Stichproben" - Entschuldigung, ich wollte Sie nicht in diesem Glauben lassen. Vergessen Sie es.

Was ich sagen wollte, ist, dass der echte MetaTrader-Tester es Ihnen ermöglicht, die gleichen Ergebnisse zu erzielen, wenn Sie eine Stichprobenpopulation und eine Nicht-Stichprobenpopulation optimieren, als wenn Sie eine Stichprobe optimieren und dann außerhalb der Stichprobe testen. Im Tester können Sie über die Schaltfläche "Experteneigenschaften" und die Registerkarten "Testen" und "Optimierung" Verluste beliebiger Länge und Tiefe loswerden. Und da ich dazu stehe, dass die Optimierung einer Stichprobe, gefolgt von einem Out-of-Sample-Test, nichts anderes beseitigt und nichts hinzufügt, ist dies die Lösung des Problems.

Leider ist es im mathematischen Sinne, dass man eine perfekte Parameteroptimierung unter jeder gegebenen Kurve erreichen kann. Der Trick mit dem Testen "für die Zukunft" außerhalb der Stichprobe ist eine versteckte, aber immer noch dieselbe triviale Optimierung für die gesamtegegebene Grundgesamtheit von Stichprobe + außerhalb der Stichprobe. Keine Garantien für die Zukunft, keine Abschaffung der Kurvenanpassung. Ein brauchbarer Satz von Parametern muss auf andere Weise gefunden werden.

 
Ich vermute, dass die Dreiteilung der Daten in neuronalen Netzen dazu dient, Gesetzmäßigkeiten (wie 2x2=4) zu lehren, um diese Muster zu erkennen.

Das stimmt, Vita, für das Erkennen von Mustern. Und was machen wir hier? Um zu verhindern, dass diese Identifizierung in ein triviales "Auswendiglernen" der Ausgangspopulation (= Curvafitting) ausartet, werden zwei weitere Datensätze erfunden. Bei NS funktioniert das so: Lernen auf der Menge A (Trainingsmenge) mit dem Ziel, die Zielfunktion zu reduzieren (in der Regel ein Vorhersage- oder Klassifikationsfehler). Das Lernen ist so organisiert, dass der Fehler bei A monoton abnimmt.

Gleichzeitig wird derselbe Fehler mit denselben Parametern an Set B (Validierungsset) getestet. Dort verändert sich der Fehler als Kaskadenfunktion (erst fallend, dann minimal, dann steigend). Sobald das Fehlerminimum auf der Menge B erreicht ist, wird das Training abgebrochen. Eine weitere Fortsetzung des Trainings auf der Menge A, selbst wenn der Fehler abnimmt, führt zu einem Curvafitting, da der Fehler auf der Menge B bereits zu wachsen beginnt. An diesem Punkt nimmt die Fähigkeit des Netzes zur Verallgemeinerung angeblich ab. Deshalb wird das Training zwangsweise gestoppt, ohne die Anpassung von A an die Grenze zu bringen (und das ist der grundlegende Unterschied zwischen dem Algorithmus und der Anpassung durch den Metaquote-Optimierer).

Schließlich wird der Parametersatz, bei dem das Lernen gestoppt wurde, auf die dritte Menge C (die Testmenge) angewendet. Dies ist die eigentliche Prüfung der Ausbildungsqualität, denn die Daten auf C haben keinen Einfluss auf die Ausbildung davor. Natürlich gibt es keine Garantie für einen stabilen NS-Betrieb mit den gefundenen Parametern, aber dieser Algorithmus hebt mindestens 95% der Pseudo-Graals auf, von denen es hier im Forum mehr als einen gibt :).

Und eine einfache Suche auf einem einzigen Datenfragment ist die reinste Kurvenanpassung, ideal im Trainingsbereich und wertlos außerhalb davon.

Natürlich ist MT4 kein neuronales Netzwerkprogramm und der allgemeine Algorithmus muss neu entwickelt werden, aber es ist immer noch besser als eine triviale Kurvenanpassung, die wir "Optimierung" nennen, hehe...

 
Vita:

Ich wollte sagen, dass man mit dem echten MetaTrader-Tester bei der Optimierung einer Stichprobenpopulation + einer Population außerhalb der Stichprobe die gleichen Ergebnisse erzielen kann wie bei der Optimierung einer Stichprobe und einem anschließenden Test außerhalb der Stichprobe. Die Schaltfläche "Eigenschaften des Expertenberaters" und die Registerkarten "Testen" und "Optimierung" ermöglichen es, Verluste beliebiger Länge und Tiefe zu beseitigen.

Es hängt alles von der Aufgabenstellung ab. Wenn wir den Grad der Gleichmäßigkeit der Gewinnverteilung über die Testzeit vernachlässigen, sind die Standardfähigkeiten des MT-Testers wirklich ausreichend, und der Zeitaufwand ist vergleichbar. Lohnt es sich, dies zu vernachlässigen? Jeder hat seine eigenen Erfahrungen und Ansichten. Der Prozess kann in der Tat als Anpassung bezeichnet werden, aber ich denke, der Begriff Annäherung wäre zutreffender. Nicht jede Annäherung kann in die Zukunft extrapoliert werden, und das Kriterium der Gleichmäßigkeit des Gewinns erlaubt es nur, diejenigen Varianten abzulehnen, die für eine Extrapolation offensichtlich ungeeignet sind. IMHO, natürlich.

 
Mathemat:

Und ein einfaches Überschwingen bei einem einzelnen Datenelement ist reine Kurvenanpassung, perfekt im Trainingsbereich und wertlos außerhalb davon.

--> Genau, das ist es.

Aber wozu dient die Aufteilung der Handlung in Fragmente? Wozu führt das "Pseudo-Lernen" auf drei verschiedenen Fragmenten? Führt es zu einem Gewinn auf jeder einzelnen Parzelle? Inwiefern ist eine solche Anpassung besser? Wenn Sie glauben, dass dies eine Garantie für die Rentabilität außerhalb des Grundstücks ist, dann bitte sehr. Darüber hinaus bietet der Tester die Möglichkeit, die Kurve zu glätten, so dass bei jedem Fragment A, B, C... Sie erzielen einen Gewinn.

Nur lassen wir die neuronalen Netze beiseite, denn sie haben mit diesem Thema nichts zu tun. Die Leute machen sich manuell die Mühe um eines zweifelhaften Vorteils willen, auf den ich übrigens hingewiesen habe, von dem ich aber nichts mehr gehört habe, inwiefern die Ergebnisse nach der Optimierung auf einer Stichprobe und Tests auf der Out-of-Sample besser sind als ein banaler Lauf? Sehen Sie, wir reden hier über reale Arbeit und Ergebnisse, nicht über die Theorie neuronaler Netze. Wären Sie so freundlich, uns auf andere reale Vorteile hinzuweisen, falls es noch welche gibt, als die, die ich genannt habe.

Grund der Beschwerde: