Xgboost: Ist es notwendig, nutzlose Funktionen in der Klassifizierungsaufgabe in xgboost loszuwerden?

Erstellt am 14. März 2017  ·  3Kommentare  ·  Quelle: dmlc/xgboost

Ich habe über 650 Funktionen und verwende xgboost, um die Bedeutung dieser Funktionen zu bewerten. Die Funktion ist get_score(), die das Auftreten von Features beim Erstellen von Bäumen zurückgibt.

Wenn ich das Ergebnis überprüfe, gibt es fast 150 Merkmale, deren Punktzahl unter 20 liegt. Einige von ihnen sind Null. Ich werde diese Funktionen los und schaue, ob das Modell eine bessere Leistung hat. Aber das Ergebnis ist fast das gleiche wie beim vorherigen. Ist es also notwendig, diese unwichtigen Funktionen loszuwerden?

Im Ergebnis des Experiments ist die neue Reihenfolge der Bedeutung von Merkmalen nicht wie die vorherige. Einige waren nicht zu wichtig geworden. Ich meine, die Reihenfolge der Merkmalswichtigkeit ist nicht konstant. Warum ist es nicht stabil?

Hilfreichster Kommentar

Bei den meisten maschinellen Lernalgorithmen ist es wichtig, eine Merkmalsauswahl vorzunehmen, um eine Überanpassung zu vermeiden.

Beim Boosten und insbesondere bei xgboost wird das Training so gestaltet, dass Sie so viel wie möglich verallgemeinern (schwacher Lerner, Taylor-Approximation, stochastisches Lernen,...), was es robust gegen Überanpassung macht (das heißt, Sie können über- passen wenn man es wirklich will :) -> hohe Iterationszahl, hohe Lernrate, kein stochastisches Lernen...). Um Ihre Fragen zu beantworten, kann es an einem Punkt wichtig sein, irrelevante Funktionen loszuwerden. Angenommen, Sie haben Ausreißer, dann könnten Sie diese irrelevanten Merkmale verwenden, um die Ausreißer während des Lernprozesses zu klassifizieren, und das ist nicht gut.

Für Ihre zweite Frage gibt es nicht nur eine Möglichkeit, die schwachen Lernenden zu kombinieren, um gute Ergebnisse zu erzielen. Um jedoch unterschiedliche Kombinationen (und unterschiedliche Merkmalswichtigkeiten) zu erhalten, müssen Sie während Ihres Trainingsprozesses eine gewisse Zufälligkeit verwenden, wie z. Sie sollten die Korrelation zwischen ihnen überprüfen.

Zusammenfassend: Wenn Sie wissen, dass eine Funktion nutzlos ist: Entfernen Sie sie. Wenn Sie es nicht wissen, dann lassen Sie es uns wissen, es ist immer gut, irrelevante Funktionen zu entfernen, da dies das Training Ihres Modells verlangsamt.

Alle 3 Kommentare

Bei den meisten maschinellen Lernalgorithmen ist es wichtig, eine Merkmalsauswahl vorzunehmen, um eine Überanpassung zu vermeiden.

Beim Boosten und insbesondere bei xgboost wird das Training so gestaltet, dass Sie so viel wie möglich verallgemeinern (schwacher Lerner, Taylor-Approximation, stochastisches Lernen,...), was es robust gegen Überanpassung macht (das heißt, Sie können über- passen wenn man es wirklich will :) -> hohe Iterationszahl, hohe Lernrate, kein stochastisches Lernen...). Um Ihre Fragen zu beantworten, kann es an einem Punkt wichtig sein, irrelevante Funktionen loszuwerden. Angenommen, Sie haben Ausreißer, dann könnten Sie diese irrelevanten Merkmale verwenden, um die Ausreißer während des Lernprozesses zu klassifizieren, und das ist nicht gut.

Für Ihre zweite Frage gibt es nicht nur eine Möglichkeit, die schwachen Lernenden zu kombinieren, um gute Ergebnisse zu erzielen. Um jedoch unterschiedliche Kombinationen (und unterschiedliche Merkmalswichtigkeiten) zu erhalten, müssen Sie während Ihres Trainingsprozesses eine gewisse Zufälligkeit verwenden, wie z. Sie sollten die Korrelation zwischen ihnen überprüfen.

Zusammenfassend: Wenn Sie wissen, dass eine Funktion nutzlos ist: Entfernen Sie sie. Wenn Sie es nicht wissen, dann lassen Sie es uns wissen, es ist immer gut, irrelevante Funktionen zu entfernen, da dies das Training Ihres Modells verlangsamt.

Danke. Ich habe fast 150 Funktionen entfernt, die nicht wichtig sind. Aber die AUC von neuem Experiment wird nicht geändert. Ich habe also keinen Nutzen daraus gezogen, sie zu entfernen.

Der Vorteil, wenn nicht die Leistungsmessung verbessert, ist die Trainingszeit. Entscheidungsbäume verwenden einen gierigen Ansatz, um die beste Aufteilung zu finden, daher mehr Funktionen = mehr Aufteilungen zum Ausprobieren.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

lizsz picture lizsz  ·  3Kommentare

frankzhangrui picture frankzhangrui  ·  3Kommentare

colinsongf picture colinsongf  ·  4Kommentare

matthewmav picture matthewmav  ·  3Kommentare

pplonski picture pplonski  ·  3Kommentare