Gibt es ein Muster in diesem Chaos? Lassen Sie uns versuchen, es zu finden! Maschinelles Lernen am Beispiel einer bestimmten Stichprobe. - Seite 20

 
Aleksey Vyazmikin #:

Und wie interpretieren Sie das - gibt es ein Muster, aber Sie werden es nicht finden? Oder liegt das Muster in der Zufälligkeit?

Lesen Sie einfach genau, was dort steht.

Da steht nichts zwischen den Zeilen, es ist wortwörtlich und sehr klar.

Sie haben zum zweiten Mal eine Frage formuliert, die nicht dem entspricht, was ich geschrieben habe.

 
elibrarius #:

Wie machen Sie das ohne Gier? Berechnen Sie für jeden Split einen weiteren und wählen Sie ein Paar auf einmal aus, aber in Ihrem Fall wird sich die Berechnungszeit um mehr als 5000 Mal erhöhen. Es ist einfacher, einen Durchschnitt von hundert Modellen zu berechnen.

Ich denke eher in Richtung Qualität, d. h. in Richtung zusätzlicher Bewertungskriterien.

Ein anderer Ansatz - Gewichte für Prädiktoren, die die Konsistenz ihrer Anwendung sicherstellen - ist kein klarer Baumrahmen. Es ist eine Art "zuerst die Zeit definieren", dann "Volatilität schätzen" und "aktuelle Preisposition".

elibrarius #:

Um den Einfluss des Zufalls zu reduzieren, ist es richtig. Ansonsten muss man wie im Wald über 20-100 Modelle mitteln.

Dort gibt es einen weiteren Trick, und ich verstehe den Prozess nicht ganz - zu Beginn wird ein Baum auf einer abgeschnittenen Stichprobe aufgebaut (wenn nicht zwingend auf der gesamten Stichprobe), und dann werden die Ergebnisse in Blättern auf der gesamten Stichprobe gezählt. Offenbar beziehen sich die Splits auf die Teilstichprobe, und die Gewichte in den Blättern beziehen sich bereits auf die gesamte Stichprobe.

elibrarius #:

D.h. es stellt sich heraus, dass die Verfeinerungsbäume vielleicht nicht die besten sind, aber zufällig schlechter.

Daher die Streuung in den Modellen von auslaugend bis gewinnbringend.

Nein, das Training verbessert das Ergebnis bei jeder Iteration und die Modelle in der Trainingsstichprobe sind immer im Plus. Wenn auch mit einer finanziellen Streuung.

elibrarius #:

Nach den Verteilungsgraphen zu urteilen, gibt es mehr abfließende Modelle, d.h. wenn wir den Durchschnitt bilden, wird das durchschnittliche Ergebnis unrentabel sein.

Ja, aber das ist eher ein Spezialfall.

elibrarius #:

Vielleicht random-strength = 0? Hoffentlich hören die Seed-Änderungen danach auf, das Modell zu verändern. Vielleicht ein Modell mit besseren Verfeinerungsbäumen erstellen, anstatt zufällig schlechte. Wenn das beste Modell ein Abfluss sein wird, dann sucht man auf diesen Daten von 10000 zufälligen Modellen zufällig das beste ist der Weg zu einem Abfluss auf dem realen.

Ich habe es mit Null versucht, aber ich verstehe, dass derScore der Bäume für alle gleich wurde, und daher wurden die gleichen zufällig ausgewählt :)). Oder es wird noch irgendwo ein Zufallszahlengenerator verwendet.

elibrarius #:

Oder noch mehrere zufällig ausgewählte Modelle mitteln, wie im Wald. Denn das beste Modell kann neu trainiert werden.

D.h. Modelle aus drei Stichproben auswählen und dann mitteln wie? Vielleicht so - ich will noch nicht zu Ensembles von Modellen übergehen, ich muss noch die Möglichkeit prüfen, die Konstruktion der Modelle selbst zu verbessern.

 
Aleksey Vyazmikin #:

Ein anderer Ansatz sind Gewichtungen für Prädiktoren, die die Konsistenz ihrer Anwendung sicherstellen - und nicht ein klarer Baumrahmen. Nach dem Motto "zuerst die Zeit definieren", dann "Volatilität schätzen" und "aktuelle Preisposition".

Ich habe das ausprobiert - zuerst nach Wochentag und/oder Stunde des Tages unterteilt. Die Modelle fielen schlechter aus, als wenn es die ersten Splits selbst findet. Sie können das auch tun - teilen Sie die Stichprobe in 5 Teile nach Wochentag und trainieren Sie 1 Modell für jeden Tag. Oder eine Stunde oder was immer Sie wollen.

Aleksey Vyazmikin #:

Nein, das Training verbessert das Ergebnis bei jeder Iteration und die Modelle in der Trainingsstichprobe sind immer im Plus. Wenn auch mit einer finanziellen Streuung.

Es ist klar, dass es eine Verbesserung gibt, aber nicht die beste, sondern mit Randomisierung des Ergebnisses.
Ich beobachte Trein überhaupt nicht, um mich nicht abzulenken. Er wird immer gut sein.

Aleksey Vyazmikin #: Habe es mit Null versucht, aber ich verstehe, dass diePunktzahl der Bäume für alle gleich wurde, und das bedeutet, dass sie zufällig aus den gleichen ausgewählt wurden :)) Oder es wird noch irgendwo ein Zufallszahlengenerator verwendet.

Wenn die Punktzahl ohne Zufallsgenerator ermittelt wurde und die Ergebnisse trotzdem unterschiedlich sind, bedeutet das, dass der Zufallsgenerator irgendwo anders eingesetzt wird.

Aleksey Vyazmikin #: D.h. Modelle aus drei Stichproben auswählen und dann den Durchschnitt bilden? Vielleicht so - ich möchte noch nicht zu Ensembles von Modellen übergehen, ich muss noch die Möglichkeit prüfen, die Konstruktion der Modelle selbst zu verbessern.

Nicht um auszuwählen - sondern um alle zufällig generierten Modelle zu nehmen. Und sie zu mitteln. Wie in einem Wald. Auch dort werden die zufälligen Bäume gemittelt. Aber man kann mit den besten der Zufallsbäume experimentieren.

 
elibrarius #:

Ich habe das ausprobiert - ich habe zuerst nach Wochentag und/oder Stunde des Tages unterteilt. Die Modelle waren schlechter, als wenn es die ersten Splits selbst findet. Sie können das auch tun - teilen Sie die Stichprobe in 5 Teile nach Wochentag und trainieren Sie 1 Modell für jeden Tag. Oder eine Stunde oder was immer Sie wollen.

Ja, ich habe diese Option :) Es ist mir gelungen, bei einem der Prädiktoren interessante Ergebnisse zu erzielen und eine Signalisierungsstrategie für ihn zu entwickeln.

Ich spreche hier jedoch über etwas anderes, nämlich über die Priorität der Prädiktoren, die das Modell während des Trainings auswählt.

elibrarius #:

Wenn Score ohne Randomisierung wurde und die Ergebnisse immer noch unterschiedlich sind, bedeutet dies, dass die Randomisierung an anderer Stelle eingesetzt wird.

Offensichtlich :) Der Entwickler schweigt immer noch zu diesem Thema.

elibrarius #:

Nicht Culling - sondern alle zufällig generierten in einer Reihe nehmen. Und den Durchschnitt bilden. Wie in einem Wald. Auch dort werden die zufälligen Bäume gemittelt. Aber man kann mit den besten der Zufallsbäume experimentieren.

Das kann man mit einem großen Recall machen oder indem man die Modelle nach der Ähnlichkeit der Antwortpunkte zu einer positiven Klasse vorgruppiert, sonst gibt es immer eine negative Empfehlung.

 

Ich habe die Stichprobe des letzten Experiments reduziert - mit den Prädiktoren, die ich zuvor ausgewählt habe - und zwei Jahre 2014-2015 aus der Zugstichprobe entfernt.

Beim letzten Mal gab es 208 Modelle mit Gewinnen über 3000 in der Prüfungsstichprobe, jetzt sind es 277. Ist das ein Zufall oder sind sich die Stichproben ähnlicher geworden?

Übrigens lag der durchschnittliche Gewinnsaldo in der Prüfungsstichprobe beim letzten Mal bei 982 Punkten und in der abgeschnittenen Stichprobe bei 2115, aber in der Prüfung ist er fast unverändert - 1114 gegenüber -1214.


Haben Sie eine Idee, wie man das Ergebnis noch verbessern könnte?

 
Guten Tag, können Sie die Dateien aus dem ersten Beitrag posten, ich möchte auch eine Idee ausprobieren.
 
Aleksey Vyazmikin #:

Gab es beim letzten Mal 208 Modelle mit einem Gewinn von über 3000 in der Musterprüfung, so sind es jetzt 277. Ist das ein Zufall oder haben sich die Musterprüfungen angeglichen?

Sie haben eine extrem hohe Abhängigkeit von Seed, d.h. von den neuen Daten. Bei Daten, bei denen es Muster gibt, wäre das Bild wie in der Ausbildung: alles in + mit kleinen Abweichungen.
Versuchen Sie, den ursprünglichen Seed zu ändern (probieren Sie mehrere Varianten aus). Wenn die Anzahl der erfolgreichen Muster so stark variiert, dann ist es zufällig, ebenso wie die Reihenfolge der HNC beim Ändern der Seeda.

Aleksey Vyazmikin #:

Übrigens, der durchschnittliche Gewinnsaldo auf der Stichprobe der Testmodelle auf dem letzten Schritt ist 982 Punkte, und auf der abgeschnittenen Stichprobe ist es 2115, aber in der Prüfung ist es fast unverändert -1114 vs -1214.

Seltsam, dass der Durchschnitt in der Prüfung > 0 ist. Vielleicht meinen Sie das Praktikum? Der Test scheint sich nicht am Lernen zu beteiligen, oder er beteiligt sich indirekt, indem er einen Auszubildenden auswählt.

Aleksey Vyazmikin #:

Irgendwelche Ideen, wie man das Ergebnis verbessern kann?

Höchstwahrscheinlich ist das Modell übertrainiert oder untertrainiert. Und die letzte Option - es gibt keine Muster.
Wenn es übertrainiert ist - versuchen Sie, die Anzahl der Bäume auf 1 zu reduzieren. Wenn es untertrainiert ist - können Sie die Baumtiefe erhöhen.
Die Variante mit mehr Bäumen haben Sie wahrscheinlich schon ausprobiert.
Das Fehlen von Mustern ist schwieriger. Wenn Sie sie mit 5000+ Prädiktoren nicht gefunden haben, weiß ich nicht einmal, wie Sie sonst nach ihnen suchen sollen. Ich weiß auch nicht, wie Sie auf diese 5000+ gekommen sind. Ich habe noch nicht in dieser Richtung gegraben. Da es viel länger dauert, es zu berechnen, aber ich schätze, ich muss es tun, da es auch ungefähr 50/50 bei den OOS ist.

 

Bilden Sie die Bilanzlinie übrigens mit der Zeit auf der horizontalen Achse oder nur mit einem gleichmäßigen Schritt zwischen den Geschäften? Den Diagrammen nach zu urteilen - das zweite.

Hier ist ein Beispiel:

Das obere Diagramm hat 3000+ Abschlüsse, das untere 600+. Wenn Sie sie nur mit gleichmäßigen Abständen erstellen, erhalten Sie schöne Trends. Aber hier können Sie sehen, dass 5 Jahre lang nur ein paar Tage gehandelt wurde, und es macht keinen Sinn, einen Roboter zu bauen, der Monate/Jahre lang schläft. Sie werden ihn einfach abschalten.

Das Bild ist nur im Thema der schwarzen und weißen Schwäne. Wie Sie sehen können, "beißt" MO sie gut und passt sich ihnen an, wenn sie vorhanden sind.
@fxsaber hat diese Angelegenheit auch erforscht https://www.mql5.com/ru/blogs/post/749420
Ich stimme mit ihm völlig überein, dass es notwendig ist, den Einfluss sowohl der weißen als auch der schwarzen Schwäne zu entfernen.

Während man im Optimierer ein benutzerdefiniertes Kriterium anwenden und andere Optionen auswählen kann, gibt es in MO nur Standardoptionen für die Auswahl von Splits und hier kann man nur Teile der Geschichte herausschneiden. Das Problem ist, dass der Moment des weißen Schwans unbekannt ist, bevor das Modell trainiert wird. Und wenn man ihn herausschneidet, wird das Modell völlig anders und es kann einen eigenen weißen Schwan geben. Wir müssen nachdenken und experimentieren...

Фильтр белых лебедей.
Фильтр белых лебедей.
  • www.mql5.com
В любом исследовании сначала идет подготовка исходных данных. На фин. рынках это почти всегда истории котировок. В зависимости от источника, они могут обладать определенными особенностями. Сегодня
 
RomFil #:
Guten Tag, können Sie die Dateien aus dem ersten Beitrag posten, ich möchte auch eine Idee ausprobieren.

Hallo. Ja, ich werde versuchen, es heute zu posten.

 
elibrarius #:

Sie haben eine extrem hohe Abhängigkeit von Seed, d.h. HGF auf neue Daten. Bei Daten, bei denen es Muster gibt, wäre das Bild wie auf dem Tablett: alles in + mit kleinen Abweichungen.
Versuchen Sie, den ursprünglichen Seed zu ändern (probieren Sie mehrere Varianten aus). Wenn die Anzahl der erfolgreichen Muster so stark schwankt, dann ist es zufällig, ebenso wie die Reihenfolge der HGC beim Ändern des Seeda.

Der Seed ändert sich bei jedem Modell sequentiell von 1 bis 10000 - das ist der Sinn der Erzeugung verschiedener Modelle. Was passiert, wenn Seed nicht fest ist und aus dem gesamten Raum genommen wird (oder wie er generiert wird - auch eine Frage) - ich weiß es nicht - Sie können es überprüfen.

Worauf stützt sich die Aussage, dass das Ergebnis ähnlich wie beim Test sein sollte? Ich gehe davon aus, dass die Stichproben nicht homogen sind - es gibt keine vergleichbare Anzahl ähnlicher Beispiele in ihnen, und ich denke, dass sich die Wahrscheinlichkeitsverteilungen auf Quanten ein wenig unterscheiden.

Ja, lassen Sie das Modell zufällig entstehen - sagen wir mal, aber heißt das, dass es nicht die identifizierte Regelmäßigkeit beschreibt?

elibrarius #:

Seltsam, dass der Mittelwert bei dem Test > 0 ist. Vielleicht meinst du das Praktikum? Der Test scheint nicht in das Lernen involviert zu sein, oder er ist indirekt involviert, um einen Trainee auszuwählen.

Er ist nur daran beteiligt, die Beendigung des Trainings zu kontrollieren, d.h. wenn es keine Verbesserung im Test gibt, während man mit dem Zug trainiert, dann wird das Training beendet und die Bäume werden bis zu dem Punkt entfernt, an dem es die letzte Verbesserung im Testmodell gab.

Es kann sein, dass es keine Verbesserung gibt, aber die Verschlechterung ist nicht stark, sondern es gibt mehr verallgemeinerte Beispiele in der Zugprobe, und der Lernalgorithmus sagt, dass er in diesem Fall aufhören soll. Wenn wir diese Funktion deaktivieren, stellt sich eine andere Frage - wie viele Bäume sollten im Modell verwendet werden. Ich denke über eine andere Option nach - wir trainieren eine feste Anzahl von Bäumen und beschneiden dann das Modell mit Hilfe der Teststichprobe, aber wir müssen die Balance bei jedem Schritt berechnen, was sicherlich teuer ist.

Ich denke, es wäre gut, das Training nicht bei einer Stichprobe zu stoppen, sondern bei einer Reihe von Unterstichproben, was eine Überprüfung der Beständigkeit des Musters über die Zeit ermöglichen würde.

elibrarius #:

Höchstwahrscheinlich ist das Modell übertrainiert oder untertrainiert. Und die letzte Möglichkeit ist, dass es keine Muster gibt.

Wenn es übertrainiert ist - versuchen Sie, die Anzahl der Bäume auf 1 zu reduzieren. Wenn es untertrainiert ist - können Sie die Baumtiefe erhöhen.
Die Variante mit einer großen Anzahl von Bäumen haben Sie sicher schon ausprobiert.
Das Fehlen von Mustern ist schwieriger. Wenn Sie sie mit 5000+ Prädiktoren nicht gefunden haben, weiß ich nicht einmal, wie Sie sonst nach ihnen suchen sollen. Ich weiß auch nicht, wie Sie auf diese 5000+ gekommen sind. Ich habe noch nicht in dieser Richtung gegraben. Da es viel länger dauert, es zu berechnen, aber ich schätze, ich muss es tun, da es auch ungefähr 50/50 bei den OOS ist.

Offensichtlich habe ich nicht klar angegeben, welche Stichprobe ich verwendet habe - es ist die sechste (letzte) Stichprobe aus dem hier beschriebenen Experiment, es gibt also nur 61 Prädiktoren.

Wie ich bereits oben erwähnt habe, sind die Modelle nicht vollständig trainiert in dem Sinne, dass sie nicht den gesamten Stichprobenzug beschreiben, und das ist im Allgemeinen normal, weil sich der Markt verändert und nicht alle Kombinationen vorhanden sein können, und bei jeder nachfolgenden Stichprobe wird es eine andere Anzahl von ihnen geben, und möglicherweise mit einem anderen durchschnittlichen Ergebnis für sie. Da wir nicht mit einer repräsentativen Stichprobe arbeiten, können wir keine vollständige Beschreibung erwarten - mein Ziel ist es, ein paar stabile Muster zu extrahieren.

Was die Bäume betrifft, so gibt es eine Einstellung für die Lernrate (--learning-rate), die mit der Anzahl der Bäume zusammenhängt, d. h. je höher die Rate, desto weniger Bäume werden benötigt, um die Stichprobe zu beschreiben. Es stellt sich also heraus, dass bei einer höheren Rate (0,3) die Anzahl der Modelle, die die bedingte Filterung bestehen, höher ist, manchmal sogar mehr als doppelt so hoch. Die letzten Experimente beziehen sich auf solche Einstellungen und die durchschnittliche Anzahl der Bäume beträgt 10 Stück, während ihre Tiefe 6 Splits beträgt. Bäume in CB sind etwas anders - es gibt einen Split auf der gesamten Ebene eines symmetrischen Baumes, was ihre Anwendung schneller macht als die klassische Variante, aber sie sind im Einzelnen weniger informativ. In den neuesten Versionen kann man klassische Bäume verwenden, aber ich habe keinen Interpreter für ihre Modelle in MQL5, also verwende ich sie nicht, damit ich mich nicht aufrege.

Im Allgemeinen kann ich mehr Prädiktoren hinzufügen, weil sie jetzt nur mit 3 TF verwendet werden, mit ein paar Ausnahmen - ich denke, ein paar Tausend mehr können hinzugefügt werden, aber ob alle von ihnen richtig im Training verwendet werden, ist zweifelhaft, angesichts der Tatsache, dass 10000 Seed-Varianten für 61 Prädiktoren eine solche Verbreitung....

Und natürlich muss man die Prädiktoren vorher überprüfen, was das Training beschleunigen wird.

elibrarius #:

Übrigens, bauen Sie die Gleichgewichtslinie mit der Zeit auf der horizontalen Achse oder nur mit einem gleichmäßigen Schritt zwischen den Trades? Nach den Diagrammen zu urteilen - das zweite.

Hier ist ein Beispiel:

Das obere Diagramm hat 3000+ Abschlüsse, das untere 600+. Wenn Sie sie nur mit gleicher Einrückung machen, erhalten Sie schöne Trends. Aber hier können Sie sehen, dass für 5 Jahre Handel war nur ein paar Tage und es macht keinen Sinn in einen Roboter, der für Monate / Jahre schlafen wird. Sie werden ihn einfach abschalten.

Das Gleichgewicht ist sequentiell aufgebaut, ohne die Chronologie des Kalenders zu berücksichtigen. Ja, ich verstehe, was Sie meinen, aber in meinem Konzept geht es um die späteren Phasen der Vorbereitung auf Handelsmuster.

elibrarius #:

Das Bild ist nur zum Thema schwarze und weiße Schwäne. Wie man sieht, "beißt" sich der MO gut an ihnen fest und stellt sich auf sie ein, wenn es welche gibt.

Es ist logisch, dass Emissionen Abweichungen sind, ich denke nur, dass dies Ineffizienzen sind, die durch das Entfernen des weißen Rauschens gelernt werden sollten. In anderen Bereichen funktionieren oft einfache, primitive Strategien, insbesondere in flachen Marktgebieten.