Diskussion zum Artikel "Gescheites "Marktgedächtnis" durch Differentiation und Entropieuntersuchung" - Seite 10

 
Олег:

Wenn wir sein Buch speziell nehmen, ist die gebrochene Differenzierung nicht sehr angenehm (in der Praxis), außerdem ist sie hundert Jahre alt, beginnend mit ARIMA-Modifikationen. Dies ist, wenn Sie solche Reihen autonom nehmen, ohne andere Funktionen, habe ich nicht zufriedenstellende Ergebnisse erhalten.

Mir gefielen seine Überlegungen zur Metamarkierung, d.h. das zweite Modell zu trainieren, um die Ergebnisse des ersten zu korrigieren und so die Ergebnisse der Matrix zu verbessern. Bei Train Sabesta gibt es nur sehr wenige Verlustgeschäfte. Auch hier handelt es sich nicht um seinen eigenen Ansatz, sondern um einen bekannten. Aber nur ich habe gesehen, dass er auf die finalen Zeilen angewendet wird. Es ist nicht loszuwerden, Umschulung, aber es macht ein schönes Bild auf der trayne.

Sie können hier sehen, Abschnitt Meta-Labeling: https: //towardsdatascience.com/financial-machine-learning-part-1-labels-7eeed050f32e.

Mehr hier: https: //www.quantopian.com/posts/meta-labeling-advances-in-financial-machine-learning-ch-3-pg-50

__________________________________________________________________________________________________________________

Was das Problem des Übertrainierens angeht, schaue ich in Richtung Meta-Learning, Aufmerksamkeitsmechanismen beim maschinellen Lernen.

Sie können sich das ansehen:

1. https://medium. com/towards-artificial-intelligence/a-simple-neural-attentive-meta-learner-snail-1e6b1d487623

2. https://stats. stackexchange.com/questions/344508/what-are-attention-mechanisms-exactly

Financial Machine Learning Part 1: Labels
Financial Machine Learning Part 1: Labels
  • Maks Ivanov
  • towardsdatascience.com
In the previous post, we’ve explored several approaches for aggregating raw data for a financial instrument to create observations called bars. In this post, we will focus on the next crucial stage of the machine learning pipeline — labeling observations. As a reminder, labels in machine learning denote the outcomes of the random variable that...
 
Danke für die ausführliche Antwort, looking.....
 
Олег:
Danke für die ausführliche Antwort, ich schaue es mir an....

Ich vergaß hinzuzufügen, dass das Meta-Labelling aus seinem Buch ein Spezialfall des Stacking ist, wenn man das Meta-Modell nicht auf ein einziges primäres Modell anwendet, sondern auf eine Aufhängung mehrerer Modelle, die auf verschiedenen Sabets trainiert wurden. Dies könnte mehr Raum für die Forschung bieten, da es auf tafm-Serien angewendet wird.

Hier ist ein ziemlich guter Artikel.

Außerdem lassen sich Aufmerksamkeits- und Stapelungsmechanismen ebenso gut in das Meta-Lernen einbinden. Es gibt also eine Menge zu probieren.

Das alles sollte zu einer gewissen globalen Verallgemeinerung führen und helfen, Überanpassung zu bekämpfen.

In meiner Multi-Agenten-RL-Bibliothek aus dem Artikel gibt es ein Billet für Multi-Agenten, aber ihre Ergebnisse werden gemittelt und in keiner Weise gewichtet. Ich mache alle möglichen Variationen des Themas für mich selbst.

How to Develop a Stacking Ensemble for Deep Learning Neural Networks in Python With Keras
How to Develop a Stacking Ensemble for Deep Learning Neural Networks in Python With Keras
  • Jason Brownlee
  • machinelearningmastery.com
Model averaging is an ensemble technique where multiple sub-models contribute equally to a combined prediction. Model averaging can be improved by weighting the contributions of each sub-model to the combined prediction by the expected performance of the submodel. This can be extended further by training an entirely new model to learn how to...
 

Maxim Dmitrievsky:

In meiner Multi-Agenten-RL-Bibliothek aus dem Artikel gibt es ein Billet für Multi-Agenten, aber ihre Ergebnisse werden gemittelt und nicht in irgendeiner Weise gewichtet. Für mich selbst mache ich alle möglichen Variationen zu diesem Thema.

Betrachten Sie nicht für Unverschämtheit (Sie sind der Autor der Bibliothek und Sie entscheiden, in welche Richtung zu bewegen), in der Diskussion über Ihren ersten Artikel über RL Ich warf die Frage der Ersetzung der Mittelwertbildung mit einer komplexeren Methode, dann nahm man es in das Bajonett, im Prinzip, wenn alle Agenten durch einen Algorithmus der zufälligen Wald ist es wirklich nicht relevant, mit einem gewissen Maß an Konventionalität betrachtet werden kann, dass 2 Agenten in der Union Wald mit einer großen Anzahl von Bäumen geben. Es ist nur notwendig, einen weiteren Schritt in der RL-Bibliothek zu machen und Bäume in einer separaten standardisierten Wrapper-Klasse, für die Möglichkeit der einfachen Ersatz in den Agenten durch einen anderen Algorithmus zu setzen.

Auf der Grundlage Ihrer Bibliothek habe ich versucht, eine erweiterte Bibliothek mit folgender Struktur zu erstellen: Klasse der primären Datenaufbereitung (Paarreihen, zusätzliche Reihen - Euro-Dollar betrifft viele Paare, eine Reihe von Indikatorwerten, zusätzliche Parameter wie Monatstag, Wochentag usw.) - Datenaufbereitung für alle Ketten von Algorithmen.

Die Kette selbst: mehrere Standard-Vorverarbeitungsklassen, Methodenklasse

Am Ende - eine Klasse der Entscheidungsfindung (Kombination der Ergebnisse der Ketten), in einer einfachen Form - Durchschnitt

Ich habe 4 Klassen-Basis-Wrapper: Daten, Vorverarbeitung, Verarbeitung, Entscheidungsfindung.

In dieser Form ist es möglich, sowohl verschiedene Methoden als auch eine Methode auf verschiedenen Daten zu mischen, wahrscheinlich wird etwas nicht berücksichtigt, aber dies ist das erreichte Minimum

 
Олег:

Seien Sie nicht frech (Sie sind der Autor der Bibliothek und Sie entscheiden, in welche Richtung Sie sich bewegen), in der Diskussion Ihres ersten Artikels über RL habe ich die Frage des Ersetzens der Mittelwertbildung durch eine komplexere Methode aufgeworfen, dann haben Sie es in einem Flip genommen, im Prinzip, wenn alle Agenten durch einen Algorithmus des zufälligen Waldes erstellt werden, ist es wirklich nicht relevant, mit einem gewissen Maß an Konventionalität können wir berücksichtigen, dass 2 Agenten einen Wald mit einer großen Anzahl von Bäumen geben. Es ist nur notwendig, einen weiteren Schritt in der RL-Bibliothek zu machen und Bäume in eine separate standardisierte Wrapper-Klasse zu packen, für die Möglichkeit der einfachen Ersetzung im Agenten durch einen anderen Algorithmus.

Auf der Grundlage Ihrer Bibliothek habe ich versucht, eine erweiterte Bibliothek mit der folgenden Struktur zu erstellen: Klasse der primären Datenaufbereitung (eine Anzahl von Paaren, eine zusätzliche Zeile - Euro-Dollar betrifft viele Paare, eine Reihe von Indikatorwerten, zusätzliche Parameter - wie Tag des Monats, Wochentag usw.) - Datenaufbereitung für alle Ketten von Algorithmen.

Die Kette selbst: mehrere Standard-Vorverarbeitungsklassen, Methodenklasse

Am Ende - eine Klasse der Entscheidungsfindung (Kombination der Ergebnisse der Ketten), in einer einfachen Form - Durchschnitt

Ich habe 4 Klassen-Basis-Wrapper-Klassen: Daten, Vorverarbeitung, Verarbeitung, Entscheidungsfindung.

In dieser Form ist es möglich, sowohl verschiedene Methoden als auch eine Methode auf verschiedenen Daten zu mischen, wahrscheinlich wird etwas nicht berücksichtigt, aber dies ist das erreichte Minimum.

Aber woher bekommt man andere Algorithmen? Es gibt nichts anderes in alglib, wir müssen einige Algorithmen von Dritten hinzufügen. In der Bibliothek aus dem Artikel können Sie die Parameter jedes Agenten ändern, d. h. Sie können andere Merkmale, die Anzahl der Bäume und andere Einstellungen hinzufügen, d. h. Sie können z. B. viele schwache Klassifikatoren mit einer kleinen Anzahl von Bäumen erhalten, die auf verschiedenen Merkmalen trainiert werden. Das einzige, was hier fehlt, ist, wie Sie bemerkt haben, die Mittelwertbildung durch ein Metamodell zu ersetzen. Nun, es ist auch möglich, das Training in Folds aufzuteilen, so dass jeder Agent auf seiner eigenen Teilstichprobe trainiert wird. Mit Stacking habe ich noch nicht experimentiert.

 
Maxim Dmitrievsky:

Aber woher soll man andere Algorithmen bekommen? Es gibt nichts anderes in alglib, also müssen wir einige Algorithmen von Dritten hinzufügen. In der Bibliothek aus dem Artikel können Sie die Parameter jedes Agenten ändern, d. h. Sie können andere Merkmale, die Anzahl der Bäume und andere Einstellungen hinzufügen, d. h. Sie können z. B. viele schwache Klassifikatoren mit einer kleinen Anzahl von Bäumen erhalten, die auf verschiedenen Merkmalen trainiert werden. Das einzige, was hier fehlt, ist, wie Sie bemerkt haben, die Mittelwertbildung durch ein Metamodell zu ersetzen. Nun, es ist auch möglich, das Training in Folds aufzuteilen, so dass jeder Agent auf seiner eigenen Teilstichprobe trainiert wird. Mit Stacking habe ich noch nicht experimentiert.

Da habe ich mich verbrannt... Ich habe mich entschlossen, den Bousting-Algorithmus zu verschieben, ich bin zerstreut und kriege nicht alles zusammen. C++-Bibliotheken sind zu stark auf Templates und Funktionsüberladungen ausgerichtet, da in MQL nicht alle Überladungen unterstützt werden, fliegt der Algorithmus und es ist einfacher, ihn neu zu schreiben, für Python-Algorithmen wird eine normale Matrixbibliothek benötigt (was in AlgLib ist, ist abgeschnitten, einige Dinge sind einfach mit Stöpseln geschlossen, nicht gut für die Basis), es war am einfachsten, von C# zu übertragen, es scheint, dass MQL-Entwickler sich mehr daran orientieren als an C++, bis hin zur Koinzidenz von Methoden und Namen. Ich habe versucht, Alglib-Bäume als Grundlage zu nehmen, aber dort sind Bäume auf Matrizen aufgebaut, es ist schwierig, mit Indizierung umzugehen, und das Löschen ist schwierig. Jetzt werde ich es entweder fertigstellen und veröffentlichen, oder ich hoffe, dass jemand daran interessiert ist und es weitergibt....

 
Олег:

Das ist, wo ich feststecke... Ich habe beschlossen, den Algorithmus von bousting zu verschieben, ich bin verstreut und kann nicht alles zusammen bekommen. C++-Bibliotheken sind zu stark auf Templates und Funktionsüberladungen ausgerichtet, da in MQL nicht alle Überladungen unterstützt werden, fliegt der Algorithmus und es ist einfacher, ihn neu zu schreiben, für Python-Algorithmen wird eine normale Matrixbibliothek benötigt (was in AlgLib ist, ist abgeschnitten, einige Dinge sind einfach mit Stöpseln geschlossen, nicht gut für die Basis), am einfachsten war es, von C# zu übertragen, es scheint, dass MQL-Entwickler mehr darauf ausgerichtet sind als auf C++, bis hin zur Übereinstimmung von Methoden und Namen. Ich habe versucht, Alglib-Bäume als Grundlage zu nehmen, aber dort sind Bäume auf Matrizen aufgebaut, es ist schwierig, mit Indizierung umzugehen, und das Löschen ist schwierig. Jetzt werde ich es entweder fertigstellen und veröffentlichen, oder ich hoffe, dass jemand daran interessiert ist und es weitergibt....

Oder es in Python machen, aber dann mit MT5 leiden :) Ich habe den Wunsch, eine ähnliche Bibliothek in Python zu machen, die Möglichkeiten dort sind über das Dach in Bezug auf die Modelle. Macht es überhaupt Sinn, sich mit dem Artikel zu beschäftigen?

Das einzige Problem ist, dass ich diese Bibliothek sehr viel entwickelt haben, sieht es viel komplizierter als in dem Artikel ... gut, oder einfach nur anders, obwohl das Konzept bleibt das gleiche.
 
Maxim Dmitrievsky:

Oder in Python zu machen, aber dann mit MT5 Bindungen zu leiden :) Ich habe den Wunsch, eine ähnliche Bibliothek in Python zu machen, sind die Möglichkeiten dort über das Dach in Bezug auf Modelle. Gibt es einen Sinn, mit dem Artikel zu stören?

Das einzige Problem ist, dass ich diese Bibliothek sehr weit entwickelt habe, sie sieht viel komplizierter aus als im Artikel... naja, oder einfach anders, obwohl das Konzept das gleiche ist

DER ARTIKEL HAT AUF JEDEN FALL EINEN SINN.

Python ist zu einem ML-Standard geworden, MQL-Entwickler haben sich auch in diese Richtung bewegt, man muss Python auf jeden Fall beherrschen. Mein Versuch, Algorithmen zu übertragen, hängt mit der Ablehnung von DLLs für den automatischen Handel in MQL zusammen, aber das ist keine strenge Anforderung, und wenn die Algorithmen in Python einfacher zu verwenden sind, warum nicht.


Ohne Schmeichelei - ich lese Ihre Artikel mit Vergnügen, wir können uns über den Inhalt streiten, bis wir blau im Gesicht sind, aber die Tatsache, dass sie neue Richtungen vorgeben, ist eindeutig.

Ich bin für einen neuen Artikel.

 
Олег:

DER ARTIKEL HAT DURCHAUS SEINE BERECHTIGUNG.

Python ist zu einem ML-Standard geworden, auch die MQL-Entwickler haben sich in diese Richtung bewegt, also muss man Python auf jeden Fall beherrschen. Mein Versuch, Algorithmen zu übertragen, steht im Zusammenhang mit der Ablehnung von DLLs für den automatischen Handel in MQL, aber das ist keine strenge Anforderung, und wenn die Algorithmen in Python einfacher zu verwenden sind, warum nicht.


Ohne Schmeichelei - ich lese Ihre Artikel mit Vergnügen, wir können uns über den Inhalt streiten, bis wir blau im Gesicht sind, aber die Tatsache, dass sie neue Richtungen setzen, ist eindeutig.

Ich bin für einen neuen Artikel.

Ich schlage vor, ein Analogon der RL-Bibliothek in Python als Artikel zu machen, nur nicht mit Random Forest, sondern mit Bousting, z.B. CatBoost.

und das Thema dann später weiter zu entwickeln. Um mit Einfachem zu beginnen.
 
Maxim Dmitrievsky:

Ich schlage vor, ein Analogon der RL-Bibliothek in Python als Artikel zu erstellen, nur nicht mit Random Forest, sondern mit Bousting, zum Beispiel CatBoost.

und das Thema dann später weiter zu entwickeln. Um mit einfach zu beginnen.

Als Option XGBoost - Bibliothek mit Quellcode oder sogar vereinfacht:

https://habr.com/ru/company/mailru/blog/438562/

Übrigens, der Artikel beschreibt bousting, bousted backing
Пишем XGBoost с нуля — часть 2: градиентный бустинг
Пишем XGBoost с нуля — часть 2: градиентный бустинг
  • habr.com
Всем привет! В прошлой статье мы разбирались, как устроены решающие деревья, и с нуля реализовали алгоритм построения, попутно оптимизируя и улучшая его. В этой статье мы реализуем алгоритм градиентного бустинга и в конце создадим свой собственный XGBoost. Повествование будет идти по той же схеме: пишем алгоритм, описываем его, в заверешение...