XGBoost Tree 'Start Feature Break'
Ich bin ziemlich neu im Erlernen des XGBoost-Algorithmus und hatte eine Frage, wie der Algorithmus weiß, auf welche Funktion der Baum zuerst gebrochen werden soll.
Hier ist mein Verständnis (und bitte korrigieren Sie mich, wenn ich falsch liege):
Jeder Baum beginnt als einzelnes Blatt und alle Reste gehen zu diesem Blatt. Dann berechnen wir den Ähnlichkeitsfaktor und versuchen, ihn auf einige Merkmalsmerkmale aufzuteilen. Angenommen, wir hatten nur ein Merkmal - die Höhe. Wir könnten den Rest teilen, wenn sein jeweiliger x-Wert "Höhe" wäre$180cm$ oder Höhe < $180cm$. Berechnen Sie dann die Ähnlichkeitswerte und den Gewinn für die neuen Blätter und fahren Sie mit unserem Baum fort.
Meine Frage ist nun, ob wir zwei oder mehr Funktionen wie Größe, Alter, Gewicht, Bildung usw. hatten. Woher weiß der Algorithmus, wo die anfänglichen Residuen zu brechen sind? Berechnet es alle möglichen Funktionen und findet den besten Gewinn? Ich kann mir vorstellen, dass große Datenmengen alle Funktionen durchlaufen, sie dann an einem bestimmten Schwellenwert durchbrechen und der Vergleich lange dauern muss.
Oder beginnt es bei einer zufälligen Funktion und arbeitet sich wie ein zufälliger Wald nach unten? Ich weiß, dass der Algorithmus einen Parameter enthält, mit dem Sie den Prozentsatz der Features pro Baum festlegen können. Fügen Sie also meiner Frage hinzu, sobald wir diesen Prozentsatz angegeben haben, wie die Features ausgewählt werden, und was noch wichtiger ist, wenn diese Features ausgewählt sind, woher weiß er, welche eine zu pflücken, um das ursprüngliche Blatt der Residuen zu brechen.
Bearbeiten: Ich habe versucht, das Papier zu lesen, in dem der Algorithmus zum ersten Mal veröffentlicht wurde, fand es jedoch etwas zu schwierig, es zu konzipieren und zu verstehen.
Antworten
Jeder Baum beginnt als einzelnes Blatt und alle Reste gehen zu diesem Blatt. Dann berechnen wir den Ähnlichkeitsfaktor und versuchen, ihn auf einige Merkmalsmerkmale aufzuteilen. Nehmen wir zum Beispiel an, wir hatten nur ein Merkmal - Höhe. Wir könnten das Residuum teilen, wenn sein jeweiliger x-Wert beispielsweise Höhe> 180 ° oder Höhe <180 ° wäre. Berechnen Sie dann die Ähnlichkeitswerte und den Gewinn für die neuen Blätter und fahren Sie mit unserem Baum fort
- Hier scheinen Sie nur einen Entscheidungsbaum zu beschreiben. Sehen Sie sich dieses Tutorial an, um es ein bisschen besser zu verstehen
Meine Frage ist nun, ob wir zwei oder mehr Funktionen wie Größe, Alter, Gewicht, Bildung usw. hatten. Woher weiß der Algorithmus, wo die anfänglichen Residuen zu brechen sind? Berechnet es alle möglichen Funktionen und findet den besten Gewinn? Ich kann mir vorstellen, dass große Datenmengen alle Funktionen durchlaufen, sie dann an einem bestimmten Schwellenwert durchbrechen und der Vergleich lange dauern muss.
- Sie sprechen wieder über den Entscheidungsbaum und seine Komplexität, aber ja, für große Datenmengen ist dies zu rechenintensiv. Um dies zu vermeiden, werden verschiedene Strategien verwendet, wie Abtastung, Merkmalsauswahl oder Quantisierung
Oder beginnt es bei einer zufälligen Funktion und arbeitet sich wie ein zufälliger Wald nach unten? Ich weiß, dass der Algorithmus einen Parameter enthält, mit dem Sie den Prozentsatz der Features pro Baum festlegen können. Fügen Sie also meiner Frage hinzu, sobald wir diesen Prozentsatz angegeben haben, wie die Features ausgewählt werden, und was noch wichtiger ist, wenn diese Features ausgewählt sind, woher weiß er, welche eine zu pflücken, um das ursprüngliche Blatt der Residuen zu brechen.
- Die zufällige Gesamtstruktur führt eine zufällige Merkmalsauswahl pro Teilung des Baums durch. Die Bäume sind gierig gewachsen, also versucht es alle möglichen Spaltungen und wählt die besten aus. Wenn das Originalpapier zu schwierig war, folgen Sie diesem Tutorial über zufällige Wälder