XGBoost- Was ist das?

XGBoost ist ein Ensemble-Entscheidungsbaum-basierter Algorithmus für maschinelles Lernen und verwendet ein Gradientenverstärkungs-Framework. Künstliche neuronale Netze schneiden bei der Vorhersage von Problemen mit Text, Bildern und anderen unstrukturierten Daten meist besser ab als andere Frameworks oder Algorithmen. Bei mittleren oder kleinen tabellarischen/strukturierten Daten sind die Dinge ganz anders. Warum? Weil Algorithmen, die auf Entscheidungsbäumen basieren, wohl die beste Lösung sind.

Der XGBoost-Algorithmus war das Ergebnis eines Forschungsprojekts, das an der University of Washington organisiert wurde. Carlos Guestrin und Tianqi Chen stellten ihr Papier auf der SIGKDD-Konferenz 2016 vor. Seitdem hat sich XGBoost zu einem renommierten Algorithmus entwickelt, der die Landschaft des maschinellen Lernens revolutioniert hat.

Seit seiner Einführung erhielt dieser Algorithmus tonnenweise Credits, darunter mehrere Kaggle-Wettbewerbe. Er erhielt auch Anerkennung für seinen Einfluss auf verschiedene hochmoderne Industrieanwendungen. Folglich trägt eine große Gruppe von Datenwissenschaftlern zu verschiedenen XGBoost-bezogenen Open-Source-Projekten bei. GitHub hat über dreihundert Mitwirkende und dreißig-sechshundert Commitments bis jetzt. Erfahren Sie, wie sich dieser Algorithmus von anderen unterscheidet.

Wie XGBoost hervorsticht

Eine breite Palette von Anwendungen

Mit XGBoost können Sie eine breite Palette von Anwendungen zur Lösung benutzerdefinierter Vorhersage-, Ranking-, Klassifizierungs- und Regressionsprobleme verwenden.

Leicht portierbar

Es läuft reibungslos unter OSX, Linux und Windows.


Vielfalt der Sprachen

XGBoost unterstützt die meisten Programmiersprachen, einschließlich Julia, Scala, Java, R, Python, C++.

Integration mit der Wolke

Der XGBoost-Algorithmus für maschinelles Lernen unterstützt Garncluster, Azure und AWS. Er funktioniert auch unglaublich gut mit anderen Spark, Flink und verschiedenen Ökosystemen.

Erstellen einer XG-Boost-Intuition

Einer der Gründe, warum Entscheidungsbäume so beliebt sind, ist, dass ihre Visualisierung in ihrer einfachsten Form recht unkompliziert ist. Ihre Algorithmen sind auch leicht zu interpretieren, aber die Schaffung von Intuition für die kommende Generation von Algorithmen (baumbasiert) kann etwas kompliziert sein. Hier ist eine Analogie, um die baumbasierten Algorithmen und ihre Entwicklung zu verstehen.

Stellen Sie sich vor, Sie wären ein Einstellungsmanager, der mit mehreren hochqualifizierten Kandidaten spricht. Jeder Schritt in der Entwicklung des baumbasierten Algorithmus ist wie ein Teil des Interviewprozesses.

Entscheidungsbaum

Jeder einstellende Manager befolgt eine Reihe von Kriterien, darunter Erfahrung, Ausbildung und Leistung bei Vorstellungsgesprächen. Es wäre fair, einen Entscheidungsbaum mit einem Einstellungsmanager zu vergleichen, der Kandidaten auf der Grundlage ihrer oder seiner Kriterien befragt.

Eintüten.

Mehrere Personen sind jetzt für die Interviews zuständig, und jeder im Gremium hat eine Stimme. Beim Bootstrap-Aggregating oder Bagging werden die Inputs der einzelnen Interviewer mit Hilfe eines unvoreingenommenen Abstimmungsprozesses für die abschließende Entscheidung zusammengeführt.

Zufälliger Wald

Der Random Forest ist ein Absackalgorithmus, der eine Unterkomponente von Merkmalen nach dem Zufallsprinzip auswählt. Anders ausgedrückt, jeder Interviewer testet den Kandidaten auf der Grundlage zufällig ausgewählter Qualifikationen (z.B. technische Interviews, um Programmierkenntnisse zu testen).

Förderung von

Boosting ist ein alternatives Verfahren, bei dem jeder Interviewer die Bewertungskriterien in Abhängigkeit von den Rückmeldungen früherer Interviewer ändert. Es ermöglicht einen sehr effizienten Interviewprozess, da es hilft, leistungsfähigere Bewertungsverfahren einzusetzen.

Gradienten-Boosting

Der Gradientenverstärkungsprozess minimiert Fehler durch den Gradientenabstiegsalgorithmus. Beispielsweise verwenden Strategieberatungsfirmen Fallinterviews, um Kandidaten auszuschließen, die nicht so qualifiziert sind wie andere Bewerber.

XGBoost

XGBoosting ist eine wesentlich effizientere Version des Gradienten-Boosting, daher auch sein Name: Extreme Gradient Boosting. Es ist eine ideale Kombination von Hardware- und Software-Optimierungstechniken, um durch den Einsatz minimaler Rechenressourcen in kurzen Zeiträumen überlegene Ergebnisse zu erzielen.


Was ist das Geheimnis hinter der exzellenten Leistung von XGBoost?


Gradientenverstärkungsmaschinen und XGBoost sind Ensemble-Baum-Methoden. Sie verwenden die Gradientenabstiegsarchitektur zur Anwendung des Prinzips zur Förderung schlechter Lerner (CARTs). Extreme Gradient Boosts verbessern das GBM-Rahmenwerk erheblich, indem sie algorithmische Erweiterungen und Systemoptimierung implementieren.

System-Optimierung

Parallelisierung

XGBoost verwendet eine parallelisierte Implementierung, um den sequentiellen Baumerstellungsprozess zu starten. Dies ist aufgrund der austauschbaren Eigenschaft von Schleifen möglich, die für die Erstellung von Basislernern verwendet werden. Die innere Schleife zählt die Merkmale, während die äußere Schleife die Blattknoten eines Baumes auflistet. Die Verschachtelung von Schleifen schränkt die Parallelisierung ein, da es unmöglich ist, die äußere Schleife zu beginnen, ohne die innere Schleife zu beenden.

Um also eine bessere Laufzeit zu erreichen, vertauscht die Reihenfolge der Schleifen mit Hilfe der Initialisierung mit einem globalen Scan der Sortierung und Instanzen, die parallele Threads verwenden, die Reihenfolge der Schleifen. Durch den Wechsel wird die algorithmische Leistung durch den Ausgleich des Parallelisierungs-Overheads erheblich verbessert.

Beschneiden von Bäumen

XGBoost verwendet ‘max_depth’ und ignoriert das Kriterium zuerst, um Bäume rückwärts zu beschneiden. Dieser Ansatz eignet sich hervorragend, um die Rechenleistung zu erhöhen.

Hardware-Optimierung

Der Hardware-Optimierungsalgorithmus nutzt die Hardware-Ressourcen effizient. Es ist möglich, indem in jedem Thread interne Puffer für die Speicherung von Gradientenstatistiken zugewiesen werden. Andere Verbesserungen wie “Out-of-Core”-Berechnungen nutzen Plattenplatz und verarbeiten Datenrahmen, die nicht in den Speicher passen.

Algorithmische Verbesserungen

Regularisierung

Es hilft, komplexe Modelle mit Hilfe von Ridge und LASSO zu bestrafen, um eine Überanpassung zu vermeiden.

Kreuzvalidierung

Der XGBoost-Algorithmus für maschinelles Lernen verfügt über eine Kreuzvalidierungsmethode, die in jeder Iteration implementiert ist. Dadurch entfällt die Notwendigkeit, diese Suche aufwändig zu programmieren und die genaue Anzahl der pro Durchlauf erforderlichen Boosting-Iterationen festzulegen.

Sparsamkeits-Bewusstsein

XGBoost fügt spärliche Funktionen hinzu, indem es automatisch den wesentlichen Wert versteht, und behandelt verschiedene spärliche Muster mit außerordentlicher Effizienz.

Gewichtete Quantil-Skizze

Extreme Gradientenverstärkung implementiert den verteilten Skizzenalgorithmus, um die idealen Split Pints in gewichteten Datensätzen zu finden.

XGBoost könnte die Zukunft des maschinellen Lernens sein

Datenwissenschaftler müssen jeden Algorithmus testen, um die beste Option zu ermitteln. Außerdem reicht es nicht aus, den richtigen Algorithmus zu wählen, auch wenn er ausgezeichnet ist. Die Wahl der richtigen Konfiguration für einen bestimmten Datensatz ist ebenfalls entscheidend. Darüber hinaus müssen Sie mehrere Elemente berücksichtigen, um den besten Algorithmus auszuwählen. Achten Sie auf Dinge wie Implementierung, Erklärbarkeit und Berechnungskomplexität, um den für Sie am besten geeigneten Algorithmus zu bestimmen.

Schließlich ist das maschinelle Lernen ein riesiges Futtermittel, und Sie werden Tonnen von Alternativen zu Extreme Gradient Boost finden. Cat Boost und Light GBM sind einige aktuelle Alternativen, die beeindruckende Ergebnisse liefern. XGBoost ist jedoch in Bezug auf Erklärbarkeit, Pragmatismus, Flexibilität, Leistung und viele andere Dinge führend. Erwarten Sie, dass dieser Algorithmus zum maschinellen Lernen an der Spitze bleibt, bis ein würdiger Herausforderer auftaucht und die Dinge aufrüttelt.