Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 3257
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
in statistics.mqh.
functions
PearsonCorrM - Die Korrelation aller Zeilen zu allen Zeilen ist am schnellsten.
Ich liege irgendwo falsch, aber ich sehe es nicht.
Aber es funktioniert mit dieser Zeichenkette
const matrix<double> matrix1 = {{2, 2, 3}, {3, 2, 3}, {1, 2, 1}};
[0,0,0]
[0.8660254037844387,0,1]]
Offenbar wird die Berechnung übersprungen, wenn alle Daten in einer Spalte gleich sind.
In der 2. Spalte habe ich alle Daten in 2 belassen und die 2. Zeile der Matrix blieb Null. Obwohl es wahrscheinlich richtig ist, die Diagonale mit 1en zu füllen.
PS. Zuerst dachte ich, es sei ein Fehler in Alglib.
Im alten Code wurden die Werte der Elemente durch
m[row].Set(col, val);
gesetzt und jetzt
m.Set(row,col, val);
Es ist schade, dass es keine Abwärtskompatibilität gibt. Nun, für mich spielt das keine Rolle. Ich arbeite jetzt nicht mit Alglib. Wenn die alten Codes von jemandem nicht mehr funktionieren, wird es notwendig sein, sie zu reparieren.
Das Traurigste ist, dass die alte Version von
m[row].Set(col, val);
keine Fehlermeldungen ausgibt, sondern einfach gar nichts tut. Die Leute werden es einfach nicht ersetzen und nicht wissen, dass sie den Code ändern müssen. Es wird etwas gezählt, aber mit unveränderten Matrizen.
Wenn alle Daten in einer Spalte gleich sind, wird die Berechnung offenbar übersprungen.
Pearson rechnet nicht zwischen Zeilen, sondern zwischen Spalten?
Sieht so aus. Es ergibt eine einzige Matrix.Pearson rechnet nicht zwischen Zeilen, sondern zwischen Spalten?
ZY Es scheint so. Es ergibt eine Einheitsmatrix.Alglib ist eine gute Bibliothek, sie hat alles für MO. Neuronale Netze sind super langsam dort, es war so in frühen Versionen.
in statistics.mqh.
PearsonCorrM - Die Korrelation aller Zeilen zu allen Zeilen ist am schnellsten.
Auf ihrer Grundlage habe ich die Korrelationsmatrix berechnet.
Habe die Leistung gemessen.
Ergebnis.
Es ist gut zu sehen, dass Alglib die Matrix schneller berechnet als die Standard-Matrix-Methode.
Für die Mustersuche ist die Berechnung der Korrelationsmatrix jedoch ein Wahnsinn, was den RAM-Verbrauch angeht.
Wie lange braucht Python, um die gleiche Größe der Originalmatrix wie im obigen Beispiel zu lesen?
Es ist jedoch ein RAM-verzehrender Wahnsinn, eine Korrelationsmatrix zu lesen, um Muster zu finden.
Meine eingebaute funktionierte auf meinem i7-6700 schneller.
Es ist seltsam, dass der eingebaute Algorithmus langsamer ist, sie könnten ihn einfach kopiert haben. Es ist unwahrscheinlich, dass Alglibe einen einzigartigen beschleunigten Algorithmus unter Lizenz hat.
Haben Sie die anderen 2 Varianten von Alglib ausprobiert?
Wenn Sie in Schleifen jede Zeile zu jeder Zeile oder jede Zeile zu allen Zeilen zählen, wird der Speicher sparsamer (2 Zeilen oder 1 Zeile + Matrix). Aber es wird länger dauern, ich weiß es nicht mehr genau, aber ich glaube, es wird langsamer sein als die eingebaute Funktion.
Es ist jedoch ein RAM-verzehrender Wahnsinn, eine Korrelationsmatrix zu lesen, um Muster zu finden.
Mit dem Speicher ist es noch schlimmer.
Vor dem Start
Und während der Arbeit von Alglibov PearsonCorrM wächst der Speicher ständig: Ich sah 5 gg und 4,6 auf dem Bildschirm.
und während der Arbeit mit dem Standard Matrix.CorrCoef.
Offensichtlich ist das Standardprogramm auf minimalen Speicherverbrauch optimiert, während das Alglibov-Programm auf Geschwindigkeit optimiert ist.
Ich habe den eingebauten schneller zum Laufen gebracht: mit einem i7-6700.
Und während Alglib's PearsonCorrM läuft, wächst der Speicher weiter: und 5 gg wurde gesehen, 4,6 wurde auf dem Bildschirm angezeigt
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading
fxsaber, 2023.09.25 18:01
Das ist nur ein Übergang von CMatrixDouble zu matrix<double>. Ich musste sogar diesen Matrixvergleich wegen des Speichers machen.
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading
fxsaber, 2023.09.25 18:01