Diskussion zum Artikel "Datenwissenschaft und ML (Teil 31): CatBoost AI-Modelle für den Handel verwenden"

 

Neuer Artikel Datenwissenschaft und ML (Teil 31): CatBoost AI-Modelle für den Handel verwenden :

CatBoost-KI-Modelle haben in letzter Zeit aufgrund ihrer Vorhersagegenauigkeit, Effizienz und Robustheit gegenüber verstreuten und schwierigen Datensätzen in der Community des maschinellen Lernens stark an Popularität gewonnen. In diesem Artikel werden wir im Detail erörtern, wie man diese Art von Modellen in einem Versuch, den Forex-Markt zu schlagen zu implementieren.

CatBoost ist eine Open-Source-Softwarebibliothek mit Gradient-Boosting-Algorithmen für Entscheidungsbäume, die speziell für die Herausforderungen beim Umgang mit kategorialen Merkmalen und Daten beim maschinellen Lernen entwickelt wurde.

Es wurde von Yandex entwickelt und im Jahr 2017 als Open-Source-Version veröffentlicht, mehr dazu hier.

Obwohl CatBoost im Vergleich zu Techniken des maschinellen Lernens wie der linearen Regression oder SVM erst vor kurzem eingeführt wurde, erlangte es in der KI-Gemeinschaft große Popularität und stieg auf Plattformen wie Kaggle an die Spitze der am häufigsten verwendeten Modelle für maschinelles Lernen.

Was CatBoost so viel Aufmerksamkeit verschafft hat, ist seine Fähigkeit, automatisch mit kategorischen Merkmalen im Datensatz umzugehen, was für viele Algorithmen des maschinellen Lernens eine Herausforderung darstellen kann.

  • Catboost-Modelle bieten in der Regel eine bessere Leistung im Vergleich zu anderen Modellen mit minimalem Aufwand, selbst mit den Standardparametern und -einstellungen können diese Modelle in Bezug auf die Genauigkeit gute Ergebnisse erzielen.
  • Im Gegensatz zu neuronalen Netzen, für deren Programmierung und Funktionsweise Fachwissen erforderlich ist, ist die Implementierung von CatBoost unkompliziert.

Autor: Omega J Msigwa

 
Ihr Text regt zum Nachdenken an.

Ich frage mich, was passieren würde, wenn wir auch verfolgen würden, in welcher Börsensitzung wir uns befinden.
 
Ja, die Handelssitzung ist eine wertvolle Variable für Ihre Trainingsdaten.
 
Alle Klassifikatoren (einschließlich catboost) arbeiten nur mit normalisierten Attributen korrekt. Preise als Attribute sind nicht geeignet.
 

und es gibt auch das Problem des Exports des Klassifizierungsmodells nach ONNX


Hinweis

Bei der binären Klassifizierung wird das Label falsch abgeleitet. Dies ist ein bekannter Fehler in der onnxruntime-Implementierung. Ignorieren Sie den Wert dieses Parameters im Falle einer binären Klassifizierung.

 
Preis kann nicht als Trainingsdaten verwendet werden, Anfang letzten Jahres habe ich den Preis von Gold, um das Modell zu trainieren, wenn der Preis von Gold weiterhin neue Höchststände zu erreichen, die Eingabe in das Modell dieser neuen hohen Preis Daten, das Modell nicht erkennen, diese Daten, egal wie zu geben, wie zu ändern und über den höchsten Preis des Preises der Trainingsdaten Daten, geben eine konstante Wahrscheinlichkeit des Wertes!
 
Vielen Dank für den hilfreichen Artikel.

Ich habe eine kleine Frage oder Sorge, die ich gerne teilen möchte.

When I tried to convert the CatBoost model in a pipeline to ONNX Bei kategorialen Variablen ist der Prozess fehlgeschlagen und hat einen Fehler ausgelöst.


Ich glaube, das zugrunde liegende Problem könnte mit dem hier beschriebenen zusammenhängen:

https://catboost.ai/docs/en/concepts/apply-onnx-ml

Besonderheiten:

Derzeit werden nur Modelle unterstützt, die auf Datensätzen ohne kategoriale Merkmale trainiert wurden.


Im Jupyter-Notizbuch catboost-4-trading.ipynb, das ich heruntergeladen habe, ist der Code zur Anpassung der Pipeline wie folgt geschrieben:

pipe.fit(X_train, y_train, catboost__eval_set=(X_test, y_test))

Es scheint, dass der Parameter"catboost__cat_features=categorical_features" weggelassen wurde, so dass das Modell möglicherweise ohne Angabe von kategorischen Merkmalen trainiert wurde.

Dies könnte erklären, warum das Modell ohne Probleme als ONNX gespeichert werden konnte.

Wenn dies der Fall ist, dann könnte vielleicht die CatBoost-eigene Methode"save_model" direkt verwendet werden, so wie hier:

model = pipe.named_steps['catboost']

model_filename = "CatBoost.EURUSD.OHLC.D1.onnx"

model.save_model(model_filename, format='onnx')

Ich hoffe, dass diese Beobachtung hilfreich sein könnte.

ONNX |
  • catboost.ai
ONNX is an open format to represent AI models. A quote from the Open Neural Network Exchange documentation:
 
border_count ist eine Unterteilung in Bins (Quantensegmente) für beliebige Merkmale, nicht nur kategorische Merkmale.
 
Warum gibt es keinen festen Stop-Loss im EA-Code?