Diskussion zum Artikel "Die Kreuzvalidierung und die Grundlagen der kausalen Inferenz in CatBoost-Modellen, Export ins ONNX-Format" - Seite 2

 
Forester #:
So kann man die Reihenfolge nicht umkehren:
Es muss sein Warum überhaupt die umgekehrte Reihenfolge?

Ich kann mich nicht erinnern, warum ich es so gemacht habe... das Problem mit der Serialität des Quell-Arrays, schätze ich. Egal wie ich es durch AsSeries true-false umgedreht habe, ich bekam die gleichen Modellsignale.

Ich weiß nicht viel über die "Eigenheiten" von MQL.

Es ist auch nicht ganz klar mit den Einstellungen der Modellausgaben, ich habe sie mit der Poke-Methode angepasst. Ich habe es in dem Artikel beschrieben.
 
Maxim Dmitrievsky #:

Ich kann mich nicht erinnern, warum ich es so gemacht habe... Ich glaube, es war ein Problem mit der Serialisierung des Quell-Arrays. Egal wie ich es durch AsSeries true-false umgedreht habe, ich habe die gleichen Modellsignale erhalten.

Ich weiß nicht viel über die "Eigenheiten" von MQL.

Es ist auch nicht ganz klar mit den Einstellungen der Modellausgaben, ich habe sie mit der Poke-Methode angepasst. Ich habe es in dem Artikel beschrieben.
Ich denke, dass es nicht notwendig ist, zu invertieren (jetzt füttern Sie ein nicht invertiertes Array), weil Sie im Tester den gleichen Graphen wie in Python erhalten. Andernfalls würden Splits auf ihren Chips nicht funktionieren und es gäbe Zufälligkeiten in der Vorhersage.


Serizität hilft nicht, wenn man das Array nach der Erstellung mit Indizes füllt, denn es kommt darauf an, wie man es füllt. Wahrscheinlich... Ich selbst arbeite nicht mit Serialisierung.

 
Forester #:
Ich denke, Sie brauchen es nicht zu spiegeln (jetzt füttern Sie ein nicht gespiegeltes Array), da Sie den gleichen Graphen im Tester wie in Python erhalten. Andernfalls würden die Splits nicht auf den Chips funktionieren und die Vorhersage wäre zufällig.


Serizität hilft nicht, wenn Sie das Array nach dem Erstellen mit Indizes gefüllt haben, da Sie es gefüllt haben - es zählt also.

Wenn Sie Features anstelle von f ersetzen, wird die Vorhersage anders ausfallen

 
Maxim Dmitrievsky #:

Wenn Sie f durch Merkmale ersetzen, erhalten Sie eine andere Vorhersage.

Das ist schon seltsam. Es scheint 1 zu 1 kopiert zu werden. features sind dynamisch und f ist statisch, aber das ist wohl kaum der Grund für die Unterschiede.

UPD: in den Beispielen aus der OnnxRun-Hilfe werden features in einer Matrix übergeben, aber Ihre werden in einem Array übergeben, vielleicht ist das der Grund? Es ist seltsam, dass die Hilfe nicht so schreibt, wie sie sollte.

 
Forester #:
Seltsam... Es ist wie eine 1:1-Kopie.

Genau, aber die Reaktion des Modells ist anders.

k-- Artefakt, ja, man kann es entfernen.

 
Maxim Dmitrievsky #:

Genau, und die Reaktion des Modells ist anders

k-- Artefakt, ja, kann entfernt werden

Ich habe gesehen, dass die Serialisierung für Featurs eingestellt ist. Das ist wahrscheinlich der Grund, warum das Ergebnis unterschiedlich ist.

 
Forester #:

Seltsam... Es scheint 1 zu 1 kopiert zu werden. features ist dynamisch, während f statisch ist, aber das ist kaum der Grund für den Unterschied.

UPD: in den Beispielen aus der OnnxRun-Hilfe werden die Chips in einer Matrix übergeben, während deine in einem Array übergeben werden, vielleicht ist das der Grund? Es ist seltsam, dass die Hilfe nicht so schreibt, wie sie sollte.

Nur Arrays,Vektoren oder Matrizen ( im Folgenden alsDatenbezeichnet)können als Eingabe-/Ausgabewerte im ONNX-Modell übergeben werden.

Ich glaube, ich habe auch eine falsche Antwort mit einem Vektor erhalten. Ich muss das noch einmal überprüfen, aber im Moment funktioniert es.

https://www.mql5.com/de/docs/onnx/onnx_types_autoconversion

Документация по MQL5: ONNX модели / Автоконвертация данных
Документация по MQL5: ONNX модели / Автоконвертация данных
  • www.mql5.com
Автоконвертация данных - ONNX модели - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Toller Artikel. Ich habe von der Idee gehört, zwei Neuronen zu verwenden: eines zur Vorhersage der Richtung, das andere zur Vorhersage der Wahrscheinlichkeit, dass die erste Vorhersage richtig ist. Die Frage ist also: Haben Sie sich für Gradient Bousting entschieden , weil es in diesem Bereich besser ist als neuronale Netze?
 
Ramirzaev Gradient Bousting entschieden , weil es in diesem Bereich besser ist als neuronale Netze?

Ja, danke. Ich habe die Ergebnisse von einfachen MLP, RNN, LSTM mit Bousting auf meinen Datensätzen verglichen. Ich konnte keinen großen Unterschied feststellen, manchmal war Bousting sogar besser. Und Bousting ist viel schneller zu lernen, und man muss sich nicht zu viele Gedanken über die Architektur machen. Ich kann nicht sagen, dass es eindeutig besser ist, denn NS ist sehr dehnbar, man kann so viele verschiedene Varianten von NS bauen. Ich habe es wahrscheinlich wegen seiner Einfachheit gewählt, es ist in dieser Hinsicht besser.