Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 1276

 
Maxim Dmitrievsky:

Alle Biber bauen den gleichen Damm, auch wenn sie es nicht wissen.

aber jeder glaubt hartnäckig, dass er etwas Neues erfunden hat.

Der Biber ist ein fleißiges und rechtschaffenes Wesen, etwas ganz anderes ist ein Studierbiber , ein gemeines Wesen, das man mit einem Besen von überall her verjagt oder besser einfach ignoriert.

 
Kesha Rutov:

Der Biber ist eine fleißige, korrekte Kreatur, ganz was anderes, der Reiterlehrling ist eine fiese Kreatur, verjage ihn mit einem Besen von überall her, oder noch besser, ignoriere ihn einfach.

"Analyst im Glas" :)) Geschirrspüler verpissen

 
Aleksey Vyazmikin:

Der Punkt ist, dass selbst wenn 50% von allen genommen werden, dann gibt es weiterhin eine klare Auswahl aus diesen 50% zum ersten Wurzelspalt (oder ist es in Alglib nicht so?). CatBoost hat nicht nur eine zufällige Auswahl von Prädiktoren, sondern auch eine zufällige Aufteilung (Gewichte werden zufällig zu den Berechnungen hinzugefügt) auf die ersten Bäume.

Ich erhalte unterschiedliche Ergebnisse, und mein Ziel ist es nicht, das gesamte Modell zu schätzen, sondern Blätter zu erhalten, die mit hoher Wahrscheinlichkeit die Mehrheit der Stichprobe beschreiben. Dann werden diese Blätter Jahr für Jahr auf ihre Historie hin getestet, und es wird eine Zusammensetzung daraus erstellt, die vielleicht nicht den gesamten Markt beschreibt, aber ich denke, es ist besser, genauere Antworten auf das zu haben, was man weiß, als in den meisten Fällen mit einer Wahrscheinlichkeit von 50 % zu raten.

Voraussichtlich werden es jetzt etwa 600 sein, so dass ein völliger Overkill nicht realistisch ist.

Alglib geht alle verbleibenden 50% Prädiktoren durch, unterteilt jeden in 4 Teile nach Quartilen und wählt die Division mit dem besten Fehler aus allen Varianten.

Im Prinzip ist eine zufällige Partitionierung nicht schwer zu bewerkstelligen.
Ich habe noch keine einzelnen Bäume mit guten Testergebnissen gesehen (45-50%), aber ein Wald von ihnen ist interessanter).


 
In Bezug auf die Bedeutung der untersuchten Prädiktoren:
Die Pakete xgboost und lightGBM verfügten über integrierte Methoden zur Schätzung der Bedeutung von Merkmalen für "Holzmodelle":

  1. Gewinnen Sie
    Dieses Maß zeigt den relativen Beitrag jedes Merkmals zum Modell. Um dies zu berechnen, gehen wir jeden Baum durch, schauen uns jeden Knoten im Baum an, welches Merkmal zu einem Knotensplit führt, und wie stark die Modellunsicherheit entsprechend der Metrik (Gini-Verunreinigung, Informationsgewinn) reduziert wird.
    Für jedes Merkmal wird sein Beitrag über alle Bäume summiert.
  2. Abdeckung
    Zeigt die Anzahl der Beobachtungen für jedes Merkmal an. Ein Beispiel: Sie haben 4 Merkmale, 3 Bäume. Angenommen, fich 1 hat 10, 5 und 2 Beobachtungen in den Baumknoten 1, 2 bzw. 3. Dann wäre die Wichtigkeit für diesen fich 17 (10 + 5 + 2).
  3. Frequenz
    Zeigt an, wie oft ein bestimmtes Merkmal in Baumknoten vorkommt, d.h. es wird die Gesamtzahl der geteilten Baumknoten für jedes Merkmal in jedem Baum gezählt.
Sie teilen die Bedeutung nicht wirklich richtig ein.
Ich habe einen Wald, der auf 5 Balken trainiert wurde, in einem Test besser abschneiden lassen als 100. Aber wenn man durch 100 unterrichtet, werden die ersten 5 nicht als wichtig markiert, sondern einige weit entfernt.
Wenn mit 100 trainiert wird, ist der Fehler einzelner Bäume und Wälder geringer - offensichtlich aufgrund von Übertraining und der Gewichtung von 30-100 Balken. Aber es ist offensichtlich, dass sie nicht nach der üblichen Logik wichtig sind, sondern weil der Wald bei 5 Balken bessere Ergebnisse liefert.
 
Übrigens, ich verstehe den Unterschied zwischen Abdeckung und Frequenz nicht? Genauer gesagt, was ist eine Merkmalsbeobachtung in Cover? (Ich verstehe mit Aufschlüsselung durch einen Chip in der Frequenz). Die Bäume scheinen nach Merkmalen aufgeteilt zu sein, die nicht beobachtet werden.
 
Aleksey Vyazmikin:

Es gibt ein R-Skript mit einem genetischen Algorithmus, um einen Baum zu erstellen und Generationen nach Entropieverbesserung auszuwählen. Dann gibt es eine Art Endauswahl. Ich nehme alle Bäume für die Endauswahl und entnehme ihnen Blätter für separate weitere Messungen in MT5. Das Skript wurde nicht veröffentlicht, daher gibt es auch keine detaillierten Beschreibungen. Offenbar ist es wie die Auswahl der besten Baum aus dem Wald, aber es gibt eine Tiefe Begrenzung zu vermeiden overtraining, auch der Prozess dauert etwa 2 Tage auf alle Kerne auf der letzten Probe, wo nicht alle Bars, sondern nur Signale zu geben, und wenn alle Bars für 3 Jahre, dann die Berechnung dauert 1,5 Monate gibt. Nach der Berechnung mache ich eine Aufteilung des Baumes, d.h. ich entferne die Spalte mit dem Wurzelprädikator des besten Populationsbaumes und fange von vorne an, es zeigte sich, dass sogar bei 40 dieser Prozedur manchmal sehr gute Blätter entstehen, so dass ich zu dem Schluss gekommen bin, dass der beste mathematische Baum nicht immer der effektivste ist, und eine Information mit einer anderen interferiert, die später in demselben CatBoost verwendet wurde, wenn die Prädiktoren zufällig aus allen Proben ausgewählt werden, um einen Baum zu erstellen.

Nach einem kurzen Blick durch den Code sah ich eine genetische Auswahl von Funktionen für die Erstellung von Bäumen aus dem rpart-Paket. Jedem Baum wurde also angeboten, seinen eigenen Satz von Merkmalen zu lernen. Aufgrund der Genetik ist ein solcher Funktionssatz schneller als eine komplette Brute-Force-Lösung.
Aber der Baum ist kein magischer Baum, sondern der von rpart angebotene. Ich glaube, das ist dort Standard.
 
Maxim Dmitrievsky:

zunächst das Modell auf alle Merkmale trainieren, die Fehler speichern

Anschließend werden die Prädiktoren einzeln nach dem Zufallsprinzip, z. B. nach der Normalverteilung, verteilt, und der Fehler wird für alle Merkmale, auch für das geänderte Merkmal, erneut überprüft und mit dem ursprünglichen Fehler verglichen. Es ist nicht notwendig, das Modell neu zu trainieren. Überprüfen Sie also jeden der Prädiktoren. Wenn der Prädiktor gut war, wird der Fehler in der gesamten Stichprobe (einschließlich aller anderen ursprünglichen Prädiktoren) im Vergleich zum ursprünglichen Prädiktor drastisch ansteigen. Speichern Sie die Fehlerdifferenzen, und wählen Sie die besten Fiches anhand dieser Differenzen aus. Am Ende sollten Sie nur die Besten trainieren und in die Produktion übernehmen. Schlechte Prädiktoren sind Rauschen für das Modell, wir brauchen sie nicht mit ihren 1%. Die guten bleiben in der Regel 5-10, die Bedeutung der übrigen nimmt exponentiell ab (Zipfsches Gesetz).

Ich habe versucht, Filter zu lehren, aber nicht viel, ich sehe nicht viel Sinn, es ist besser, alles in ein Modell auf einmal zu setzen

Wenn Sie können, gerade über die Auswahl der Prädiktoren SEHR kompetent(bereits früher geworfen)

Ich habe Ihren Beitrag über Permutation gefunden.
Das ist eine interessante Variante. Ich werde es ausprobieren müssen.
Allerdings befürchte ich, dass, wenn ich es auf ein Modell mit 100 Balken anwende und versuche, 95 Balken zu entfernen und die ersten 5 Balken zu belassen, das Ergebnis 50 % betragen wird. Schließlich waren diese ersten 5 kaum an Spaltungen beteiligt (im Durchschnitt werden nur 5 % der Knoten auf ihnen gebaut).
 
elibrarius:
Ich habe Ihren Beitrag über Permutation gefunden.
Interessante Variante. Ich muss es ausprobieren.
Allerdings befürchte ich, dass, wenn ich es auf ein Modell mit 100 Balken anwende und versuche, 95 Balken zu entfernen und die ersten 5 Balken zu belassen, das Ergebnis 50 % betragen wird. Schließlich waren diese ersten 5 kaum an Spaltungen beteiligt (im Durchschnitt werden nur 5 % der Knoten auf ihnen gebaut).

Ich weiß nicht, was du mit 100 Barren machst, aber du solltest es richtig anwenden, dann wird es dir gut gehen.

 
Maxim Dmitrievsky:

Ich weiß nicht, was Sie mit 100 Balken machen, wahrscheinlich müssen Sie es richtig anwenden und es wird funktionieren

Ich möchte den Prozess der Aussonderung unwichtiger Prädiktoren automatisieren)

 
Maxim Dmitrievsky:

zunächst das Modell auf alle Merkmale trainieren, die Fehler speichern

Anschließend werden die Prädiktoren einzeln nach dem Zufallsprinzip, z. B. nach der Normalverteilung, verteilt, und der Fehler wird für alle Merkmale, auch für das geänderte Merkmal, erneut überprüft und mit dem ursprünglichen Fehler verglichen. Es ist nicht notwendig, das Modell neu zu trainieren. Überprüfen Sie also jeden der Prädiktoren. Wenn der Prädiktor gut war, wird der Fehler in der gesamten Stichprobe (einschließlich aller anderen ursprünglichen Prädiktoren) im Vergleich zum ursprünglichen Prädiktor drastisch ansteigen. Speichern Sie die Fehlerdifferenzen, und wählen Sie die besten Fiches anhand dieser Differenzen aus. Am Ende sollten Sie nur die Besten trainieren und in die Produktion übernehmen. Schlechte Prädiktoren sind Rauschen für das Modell, wir brauchen sie nicht mit ihren 1%. Die guten bleiben in der Regel 5-10, die Bedeutung der übrigen nimmt exponentiell ab (Zipfsches Gesetz).

Ich habe versucht, Filter zu lehren, aber nicht viel, ich sehe nicht viel Sinn, es ist besser, alles in ein Modell auf einmal zu setzen

Wenn Sie können, gerade über die Auswahl der Prädiktoren SEHR kompetent(bereits früher geworfen)

Ich habe diese Methode anders verstanden.
Für den untersuchten Prädiktor sollten keine normalverteilten Zufallswerte eingegeben werden, sondern die Zeilen in dieser Spalte einfach gemischt werden.

Auf jeden Fall sind die Ergebnisse des Artikels beeindruckend. Ich sollte es in der Praxis ausprobieren.