Diskussion zum Artikel "Gradient Boosting (CatBoost) für die Entwicklung von Handelssystemen. Ein naiver Zugang" - Seite 2

 
Maxim Dmitrievsky:

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.

 
Guter Artikel .... sicherlich
 
Aleksey Vyazmikin:

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.

CatBoost Enables Fast Gradient Boosting on Decision Trees Using GPUs
CatBoost Enables Fast Gradient Boosting on Decision Trees Using GPUs
  • catboost.ai
Machine Learning techniques are widely used today for many different tasks. Different types of data require different methods. Yandex relies on Gradient Boosting to power many of our market-leading products and services including search, music streaming, ride-hailing, self-driving cars, weather prediction, machine translation, and our...
 
Ich habe nichts gegen andere Autoren von Artikeln über MoD, aber imho stellt der Autor dieses Artikels den Stoff wie in einem guten Lehrbuch dar, das man lesen muss und den Wunsch hat, zu lesen.... Respekt und Achtung.
 
Stanislav Korotky:

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?
 
Rorschach:
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.

 
Stanislav Korotky:

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?