Diskussion zum Artikel "Der Algorithmus CatBoost von Yandex für das maschinelle Lernen, Kenntnisse von Python- oder R sind nicht erforderlich"
Vielen Dank für den Artikel. Welche Metriken haben Sie bei der Kategorisierung von wp am erfolgreichsten gefunden? ROC-AUC, Accuracy, F1 oder vielleicht etwas anderes?
Gern geschehen :)
Ich arbeite meist mit unausgewogenen Stichproben, in denen bei der binären Klassifizierung die Nullen die Einheiten überwiegen und der Wert der Einheiten viel höher ist als der der Nullen. Ich schaue eigentlich nur auf Recall und Precision.
Recall - zeigt die Aktivität des Modells aufgrund des "Wissens" , das es erhalten hat , d.h. wie oft das Modell auf den "Stimulus" in Form einer Einheit antwortet, je höher der Index, desto höher der Prozentsatz der Einheiten, auf die das Modell antwortet.
Präzision - zeigt die Präzision der Antworten an, und hier kann diese Präzision je nach Strategie auch bei kleinen Prozentsätzen, z. B. 45 %, akzeptabel sein.
Die Standardmetriken berücksichtigen hauptsächlich die Gleichwertigkeit der klassifizierten Objekte, was für eine endgültige Entscheidung nicht ausreicht.
Um Gruppen von Modellen auszuwählen, verwende ich auch die Metrik der "Fehlerbilanz", bei der ich Fehler in der Dynamik bewerte.
Im Allgemeinen werden mehr als 30 verschiedene Metriken verwendet, vielleicht ist dies ein separates Thema für eine Untersuchung und einen Artikel.
Gern geschehen :)
Ich arbeite meist mit unausgewogenen Stichproben, bei denen für die binäre Kategorisierung Nullen mehr als Einheiten sind und der Wert der Einheiten viel mehr als Nullen beträgt. Ich schaue eigentlich nur auf Recall und Precision.
Recall - zeigt an, wie oft das Modell auf einen "Stimulus" in Form einer Einheit reagiert, je höher der Index, desto höher der Prozentsatz der Einheiten, auf die das Modell reagiert.
Precision - zeigt die Genauigkeit des Feedbacks, und hier kann die Genauigkeit je nach Strategie auch bei kleinen Prozentsätzen, z. B. 45 %, akzeptabel sein.
Die Standardmetriken berücksichtigen hauptsächlich die Gleichwertigkeit der klassifizierten Objekte, was für eine endgültige Entscheidung nicht ausreicht.
Um Gruppen von Modellen auszuwählen, verwende ich auch die Metrik der "Fehlerbilanz", bei der ich Fehler in der Dynamik bewerte.
Im Allgemeinen werden mehr als 30 verschiedene Metriken verwendet, vielleicht ist dies ein separates Thema für eine Untersuchung und einen Artikel.
Das heißt, für jede Strategie wird ein separates Modell mit einer geringen Häufigkeit von Signalen verwendet und dann werden sie kombiniert?
Es ist geplant, verschiedene Basisstrategien mit unterschiedlichen Einstellungen in Form eines Signalgenerators zu verwenden und dementsprechend für jedes Signal ein anderes Modell. Aufgrund des hohen Aufwands für die Berechnung der Prädiktoren soll dies in einem Expert Advisor erfolgen. Ein System für die Arbeit mit virtuellen Positionen, das Pending Orders und Stops unterstützen könnte, habe ich derzeit nicht, da geplant ist, diesen Ansatz auf Netting-Konten zu verwenden.
Ich habe es nur nicht wirklich aus dem Artikel verstanden. Die Philosophie des Ansatzes selbst ist interessant. Sie sprachen vorhin im MO-Thread über die Blattauswahl und so weiter. Oder ist das ein separates Thema?
Die Blätter sind ein separates Thema. Beim Bousten sind die Blätter in der Tat nicht sehr gut herausgekommen, was ihre Eigenschaften angeht (ich habe sie einfach vom ersten Baum genommen). Neulich habe ich gelernt, dass XGBoost eine Option zum Speichern von Blättern hat, aber ich brauche Phyton, vielleicht ist die Qualität der Blätter dort besser.
Alexej, das ist ein Anfang!
Imho ist er für einen ersten Artikel sehr anständig. Die Qualität ist viel höher als die mancher Autoren, die schon mehr als ein Dutzend Artikel geschrieben haben. Danke, ich werde mich mit den Feinheiten befassen.
P.S. Ich habe mir das Video angesehen . Es ist schön, dass es so begeisterte junge Leute gibt.....
Alexej, mit einem Schreck!
Imho ist er für einen ersten Artikel sehr anständig. Die Qualität ist viel höher als die mancher Autoren, die schon mehr als ein Dutzend Artikel geschrieben haben. Vielen Dank, ich werde mich mit den Feinheiten befassen.
P.S. Ich habe mir das Video angesehen . Es ist schön, dass es so begeisterte junge Leute gibt.....
Ich danke Ihnen!
Dieser Artikel wurde als ein Handbuch über die Anwendung von CatBoost mit der Verwendung einer Kommandozeile und mit der anschließenden Integration in MT5 geschrieben, wollte ich eine gute Klasse auf die Arbeit mit Tabellen"CSV schnell", die im Wesentlichen hat mir die Arbeit mit großen CSV-Dateien erleichtert zeigen, ich benutze es bereits mehr als 2 Jahren. Unter dieser Notwendigkeit habe ich beschlossen, ein Experiment mit Standard-Indikatoren durchzuführen und es war erfolgreich.
Im Anhang befindet sich der Code des EA und das Skript, das die gesamte Infrastruktur organisiert - es war mir wichtig, dass das, was ich hier beschreibe, reproduziert werden kann - also testen und Fehler melden, Verbesserungen vorschlagen - ich bin für einen gemeinsamen Beitrag zu dieser Arbeit.
Ja, natürlich sind junge Menschen anders, es ist nur so, je älter man wird, desto mehr sind sie von ihrem sozialen Umfeld entfernt und werden weniger objektiv wahrgenommen.
Vielen Dank für den Artikel. Ich wusste, dass er in Vorbereitung war und habe auf seine Veröffentlichung gewartet.... Die Ergebnisse des Kurzzeittests sowohl in Ihrem als auch in Maxim Dmitrievskys vorherigem Artikel sind gut. Die Ergebnisse von Arbeiten zum maschinellen Lernen zeigen, dass der angrenzende Kurzzeittest auf Daten, auf denen ns nicht trainiert wurde, fast immer ein positives Ergebnis des Bietens nur auf der Logik des lernenden neuronalen Netzes basiert und darüber hinaus keine Optimierung oder Nachschulung erfordert. Haben Sie schon einmal darüber nachgedacht, den Prozess der Umschulung zu automatisieren oder das neuronale Netz vor dem Training durch eine kurze Testphase, gefolgt von einer Verschiebung, zu testen? Dies würde ein umfassenderes Bild über den Erfolg oder Misserfolg eines bestimmten Ansatzes vermitteln.
Vielen Dank für den Artikel. Ich wusste, dass er in Vorbereitung war und habe auf seine Veröffentlichung gewartet.... Die Ergebnisse des Kurzzeittests sowohl in Ihrem als auch in Maxim Dmitrievskys vorherigem Artikel sind gut. Die Ergebnisse von Arbeiten zum maschinellen Lernen zeigen, dass der angrenzende Kurzzeittest auf Daten, auf denen ns nicht trainiert wurde, fast immer ein positives Ergebnis des Bietens nur auf der Logik des lernenden neuronalen Netzes basiert und darüber hinaus keine Optimierung oder Nachschulung erfordert. Haben Sie schon einmal darüber nachgedacht, den Prozess der Umschulung zu automatisieren oder das neuronale Netz vor dem Training durch eine kurze Testphase, gefolgt von einer Verschiebung, zu testen? Dies würde ein umfassenderes Bild über den Erfolg oder Misserfolg eines bestimmten Ansatzes vermitteln.
Ich freue mich, dass Sie den Artikel interessant fanden.
Mein Ansatz und der in Maxims Artikel unterscheiden sich in allen Punkten, außer im verwendeten Tool - CatBoost. In meinem Artikel wird die Stichprobe nach Signalen aufbereitet, und zwischen den Signalen können mehr als 100 Balken vergehen, während Maxim's Artikel eine lange Trainingsperiode für jeden Balken vorsieht, um allgemeine Muster zu finden, Maxim's Training ist mehr auf den Trend ausgerichtet, ich schlage die Verwendung komplexer Prädiktoren vor, während Maxim's Artikel eine Variante einer einfachen Transformation der Preisreihen zeigt. Maxim hat vor allem gezeigt, wie man das Modell in Python trainiert und es im MT5 ohne Python anwendet, was sehr praktisch ist - der Ansatz selbst kann nicht im Handel verwendet werden, deshalb enthält der Artikel die Formulierung "naiver Ansatz"! Mein Artikel konzentriert sich auch auf den Prozess des Trainings und der Integration des CatBoost-Modells in MT5, aber das Training wird nicht in Python durchgeführt, sondern in einem separaten, unabhängigen Konsolenprogramm, das ein Wrapper der CatBoost-Bibliothek ist, der es erlaubt, alle Funktionen wie in Python zu nutzen. Zusätzlich wurde in dem Artikel die Struktur des Beraters berücksichtigt, um den gesamten Zyklus der Erfassung und Verarbeitung der Informationen von A bis Z zu zeigen. Der Erfolg des Trainings hängt von Prädiktoren ab, in diesem Artikel haben wir hauptsächlich Prädiktoren in Form von Standard-Oszillatoren verwendet und es war eine angenehme Überraschung für mich, dass das Modell auf ihnen trainiert wurde und interessante Ergebnisse zeigt. Das Ziel, wie Maxim, war nicht eine fertige Lösung zu bieten, um Geld zu verdienen, aber ich gab eine gute Grundlage.
Wie für die Prüfung - Sie sind unaufmerksam - Maxim's Artikel zeigt das Verhalten der EA auf die Probe außerhalb der Ausbildung für 4 Monate, während meine EA zeigt positive Ergebnisse für 15 Monate. Arbeiten für mehr als ein Jahr ohne Umschulung ist ein sehr gutes Ergebnis, wenn wir an das Paradigma der Marktvolatilität zu halten.
Das von Ihnen vorgeschlagene Experiment ist möglich, wenn die Stichprobe ausreichend ist, und hier ist meine Methode der in Maxims Artikel beschriebenen Methode unterlegen - bei kleinen Zeitintervallen gibt es einfach nicht genügend Daten für das Training. Nach meinen Beobachtungen benötigen wir mindestens 15000 Signale für das Training, insbesondere wenn wir berücksichtigen, dass die Prädiktoren nicht separat analysiert und nicht ausgewählt werden.
Ja, und beachten Sie, dass die Teststichprobe (test.csv im Artikel) nur als Mittel zur Bewertung der Qualität des resultierenden Modells verwendet wird und kein Training darauf durchgeführt wird. Daher haben wir nur 60 % der gesamten Stichprobe trainiert, d. h. vom 01.06.2014 bis zum 30.04.2018 - das Modell wurde nicht auf den restlichen Daten aufgebaut, so dass wir sagen sollten, dass das Modell mit Marktinformationen arbeitet, die vor 2,5 Jahren relevant waren.
Schön, dass Sie den Artikel interessant fanden.
Mein und Maxims Ansatz im Artikel unterscheiden sich in allem, außer dem verwendeten Tool - CatBoost. In meinem Artikel wird die Stichprobe nach Signalen aufbereitet und es können mehr als 100 Balken zwischen den Signalen vergehen, während Maxim's Artikel eine lange Trainingsperiode für jeden Balken hat, um allgemeine Muster zu finden, Maxim's Training ist mehr auf den Trend ausgerichtet, ich schlage vor, komplexe Prädiktoren zu verwenden, während Maxim's Artikel eine Variante einer einfachen Transformation einer Preisreihe zeigt. Maxim hat vor allem gezeigt, wie man das Modell in Python trainiert und es im MT5 ohne Python anwendet, was sehr praktisch ist - der Ansatz selbst kann nicht im Handel verwendet werden, deshalb enthält der Artikel die Formulierung "naiver Ansatz"! Mein Artikel konzentriert sich auch auf den Prozess des Trainings und der Integration des CatBoost-Modells in MT5, aber das Training wird nicht in Python durchgeführt, sondern in einem separaten, unabhängigen Konsolenprogramm, das ein Wrapper der CatBoost-Bibliothek ist, der es erlaubt, alle Funktionen wie in Python zu nutzen. Zusätzlich wurde in dem Artikel die Struktur des Beraters berücksichtigt, um den gesamten Zyklus der Erfassung und Verarbeitung der Informationen von A bis Z zu zeigen. Der Erfolg des Trainings hängt von Prädiktoren ab, in diesem Artikel haben wir hauptsächlich Prädiktoren in Form von Standard-Oszillatoren verwendet und es war eine angenehme Überraschung für mich, dass das Modell auf ihnen trainiert wurde und interessante Ergebnisse zeigt. Das Ziel, wie Maxim, war nicht eine fertige Lösung zu bieten, um Geld zu verdienen, aber ich gab eine gute Grundlage.
Wie für die Prüfung - Sie sind unaufmerksam - Maxim's Artikel zeigt das Verhalten der EA auf die Probe außerhalb der Ausbildung für 4 Monate, während meine EA zeigt positive Ergebnisse für 15 Monate. Arbeiten für mehr als ein Jahr ohne Umschulung ist ein sehr gutes Ergebnis, wenn Sie auf das Paradigma der Marktvolatilität bleiben.
Das von Ihnen vorgeschlagene Experiment ist möglich, wenn die Stichprobe ausreichend ist, und hier ist meine Methode der in Maxims Artikel beschriebenen Methode unterlegen - bei kleinen Zeitintervallen gibt es einfach nicht genügend Daten für das Training. Nach meinen Beobachtungen benötigen wir mindestens 15000 Signale für das Training, insbesondere wenn wir berücksichtigen, dass die Prädiktoren nicht separat analysiert und nicht ausgewählt werden.
Ja, und beachten Sie, dass die Teststichprobe (test.csv im Artikel) nur als Mittel zur Bewertung der Qualität des resultierenden Modells verwendet wird und kein Training darauf durchgeführt wird. Daher haben wir nur 60 % der gesamten Stichprobe trainiert, d. h. vom 01.06.2014 bis zum 30.04.2018 - das Modell wurde nicht auf den restlichen Daten aufgebaut, so dass wir sagen sollten, dass das Modell mit Marktinformationen arbeitet, die vor 2,5 Jahren relevant waren.
Ich habe auf die Länge des Testzeitraums geachtet. Aber das stabile positive Ergebnis bezieht sich auf einen kurzen Zeitraum neben dem Trainingszeitraum - einen Monat oder zwei Monate. Nehmen wir an, wir trainieren für eine zweijährige Geschichte. Test + ein Monat. Speichern Sie das Ergebnis. Verschieben (oder hinzufügen) für diesen Monat - vor dem Training (Umschulung). Test + Monat. Behalten Sie das Ergebnis. Und so weiter.
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Neuer Artikel Der Algorithmus CatBoost von Yandex für das maschinelle Lernen, Kenntnisse von Python- oder R sind nicht erforderlich :
Der Artikel liefert den Code und die Beschreibung der wichtigsten Phasen des maschinellen Lernprozesses anhand eines konkreten Beispiels. Um das Modell zu entwickeln, benötigen Sie keine Kenntnisse von Python- oder R. Es reichen grundlegende MQL5-Kenntnisse aus — das ist genau mein Niveau. Daher hoffe ich, dass der Artikel als gutes Tutorial für ein breites Publikum hilft, um diejenigen zu unterstützen, die daran interessiert sind, Fähigkeiten des maschinellen Lernens zu evaluieren und in ihre Programme zu implementieren.
Die Ergebnisse sind nicht sehr beeindruckend, aber es kann festgestellt werden, dass die Haupthandelsregel "Geldverlust vermeiden" eingehalten wird. Selbst wenn wir ein anderes Modell aus der Datei CB_Svod.csv wählen würden, wäre der Effekt immer noch positiv, denn das finanzielle Ergebnis des erfolglosesten Modells, das wir erhalten haben, beträgt -25 Punkte, und das durchschnittliche finanzielle Ergebnis aller Modelle beträgt 3889,9 Punkte.
Abb. 9 Finanzielles Ergebnis der trainierten Modelle für den Zeitraum 01.08.2019 - 31.10.2020
Autor: Aleksey Vyazmikin