Diskussion zum Artikel "Gradient Boosting (CatBoost) für die Entwicklung von Handelssystemen. Ein naiver Zugang" - Seite 2
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
Es ist besser, die Entwickler zu fragen
Ich mag keine Videos, denn um eine Antwort auf eine bestimmte Frage zu erhalten, muss man sich eine Menge Unsinn anhören, und es ist nicht sicher, dass die Antwort tatsächlich gefunden wird. Natürlich lese ich die textliche Einführungsdokumentation der Entwickler, aber gerade diese Nuance bei der Wahl der Aufschlüsselung anhand des Histogramms haben sie elegant "übersprungen", obwohl alles andere recht gründlich ist.
Die Bäume werden unabhängig voneinander konstruiert, und dann wird in den Blättern gezählt (Aufzählung über die abweichenden Prädiktoren), so dass der Gradientenfehler reduziert wird.
Bei der Auswahl der Prädiktoren für die Baumkonstruktion und die Aufteilung der Bäume werden Zufallskoeffizienten verwendet, was es theoretisch ermöglicht, die Vollständigkeit (Recall) zu erhöhen und ein Übertraining zu verhindern.
All dies beantwortet die Frage in keiner Weise.
Zum Beispiel gibt es eine Seite - https://catboost.ai/news/catboost-enables-fast-gradient-boosting-on-decision-trees-using-gpus
Auf ihr steht der Satz:
Die Suche nach dem besten Split ist jetzt nur noch eine Berechnung von Histogrammen, wie in Abbildung 6 dargestellt.
Hier stellt sich die Frage: Die Berechnung der Histogramme ist klar, aber wie kommt man danach zum "besten Split"? In beliebigen Begriffen: in allgemeinen Worten, Pseudocode, Formel.
Das alles beantwortet die Frage in keiner Weise.
Es gibt zum Beispiel eine Seite - https://catboost.ai/news/catboost-enables-fast-gradient-boosting-on-decision-trees-using-gpus
Dort steht:
Hier stellt sich die Frage: Die Histogrammberechnung ist klar, aber wie kommt man danach zum "besten Split"? In beliebigen Begriffen: in allgemeinen Worten, Pseudocode, Formel.
Indem wir die Daten nach Spalten aufteilen, berechnen wir, wie sehr der Block rechts und links von Verunreinigungen einer anderen Klasse sauberer wurde.
Von allen Aufteilungen über alle Spalten hinweg wird diejenige gewählt, die die beste Reinheit ergibt. (Manchmal auch als Verunreinigungsreduzierung bezeichnet.)
Es gibt verschiedene Reinheits-/Verunreinigungsformeln, eine, die die Sauberkeit in beiden Blöcken gleichzeitig verbessert, und eine, die einen Block so sauber wie möglich sucht.
Am saubersten ist die Aufteilung, wenn nur noch Beispiele der einen Klasse links und der anderen rechts stehen.
Warum ist eine Zufallsstichprobe besser als eine Konstante?
Sie können eine unterschiedliche Anzahl von Geschäften und unterschiedliche Kombinationen von Geschäften im Laufe der Zeit erhalten.
Ich habe es ursprünglich für Bruteforce getan.
Das ist lustig, ich dachte, wenn die Erwartung so niedrig ist, es ist ein Tester Gral. Ich lief es auf Saber, auf einem benutzerdefinierten Symbol, fast das gleiche Ergebnis.
Habe 17 überprüft, ähnlicher Aufwärtstrend, es läuft aus.
Ist das so ein Glücksfall der Geschichte oder kann man so ein Bild auch für die letzten Jahre bekommen? Ich weiß, dass er beim Test verliert, aber das war ein ganz anderer Markt.
Hier stellt sich die Frage: Die Histogrammberechnung ist klar, aber wie kommt man danach zum "besten Split"? In beliebigen Begriffen: in allgemeinen Worten, Pseudocode, Formel.
Ich nehme an, dass wir eine Berechnung für jeden Split haben, und dann gibt es eine Summierung der Bereiche, und wir erhalten eine Matrix, aus der der größte Wert ausgewählt wird - die Split-Genauigkeit.
Im Allgemeinen ist ihr Code offen, wenn Sie C++ gut verstehen, können Sie die Details jedem Interessierten mitteilen!
Maxim, danke für den Artikel!
Hat die Kreuzvalidierung einen Effekt?
Haben Sie versucht, verschiedene Erträge aus hundert verschiedenen Perioden zu nehmen?