Algorithmus-Augmentation | Antriebsalgorithmen beim maschinellen Lernen

Inhalt

Einführung

Viele Analysten missverstehen den Begriff “Impuls” in der Datenwissenschaft verwendet. Lassen Sie mich Ihnen eine interessante Erklärung dieses Begriffs geben.. Momentum ermöglicht Machine-Learning-Modellen, ihre Vorhersagegenauigkeit zu verbessern.

Boost-Algorithmen sind einer der am weitesten verbreiteten Algorithmen bei Data-Science-Wettbewerben. Die Gewinner unserer neueste Hackathons stimmen zu, dass sie versuchen, den Algorithmus voranzutreiben, um die Genauigkeit ihrer Modelle zu verbessern.

In diesem Artikel, Ich werde ganz einfach erklären, wie der Boost-Algorithmus funktioniert. Ich habe auch die Python-Codes unten geteilt. Ich habe die einschüchternden mathematischen Ableitungen, die in Boosting verwendet werden, übersprungen. Denn das hätte mir nicht erlaubt, dieses Konzept in einfachen Worten zu erklären.

Lasst uns beginnen.

Boosting-2557549

Was ist Boost?

Definition: Der Begriff “Impuls” bezieht sich auf eine Familie von Algorithmen, die aus einem schwachen Schüler einen starken Schüler macht.

Lassen Sie uns diese Definition im Detail verstehen, indem wir ein Problem bei der Spam-Identifikation lösen:

Wie würden Sie eine E-Mail als SPAM einstufen oder nicht?? Wie jeder andere, Unser erster Ansatz wäre, die E-Mails zu identifizieren “Spam” Ja “kein Spam” anhand der folgenden Kriterien. Und:

  1. Die E-Mail enthält nur eine Bilddatei (Werbebild), sind SPAM
  2. E-Mail hat nur Link (S), sind SPAM
  3. Der Text der E-Mail besteht aus einem Satz wie “Sie haben einen Geldpreis von . gewonnen $ xxxxxx”, sind SPAM
  4. E-Mail von unserer offiziellen Domain “Analyticsvidhya.com“, Es ist kein SPAM
  5. E-Mail von bekannter Quelle, kein Spam

Vorher, Wir haben mehrere Regeln definiert, um eine E-Mail als „Spam“ zu klassifizieren’ das "Kein Spam". Aber, Glauben Sie, dass diese Regeln einzeln stark genug sind, um eine E-Mail erfolgreich zu klassifizieren?? Nein.

Individuell, Diese Regeln sind nicht mächtig genug, um eine E-Mail als „Spam“ zu klassifizieren’ das "Kein Spam". Deswegen, diese regeln heißen schwacher Lerner.

Aus einem schwachen Schüler einen starken Schüler zu machen, Wir kombinieren die Vorhersage jedes schwachen Schülers mit Methoden wie:
• Durchschnitt verwenden / gewichteter Durchschnitt
• Bedenkt man, dass die Vorhersage eine höhere Stimme hat

Zum Beispiel: hoch, wir haben definiert 5 schwache Schüler. Von diesen 5, 3 werden als "Spam" gewertet’ Ja 2 werden als "Es ist kein SPAM" gewertet. In diesem Fall, standardmäßig, wir werden eine E-Mail als SPAM betrachten, weil wir eine höhere Stimmenzahl haben (3) für 'SPAM'.

Wie funktionieren Impulsalgorithmen?

Wir wissen jetzt, dass Schwung einen schwachen Schüler verbindet, auch bekannt als Grundschüler, einen festen Herrscher bilden. Eine unmittelbare Frage, die sich in Ihrem Kopf stellen sollte, ist: ‘So fördern Sie die Identifizierung schwacher Regeln?

Um eine schwache Regel zu finden, Wir wenden grundlegende Lernalgorithmen an (ML) mit anderer Verteilung. Jedes Mal, wenn der Basislernalgorithmus angewendet wird, erzeugt eine neue schwache Vorhersageregel. Dies ist ein iterativer Prozess. Nach vielen Iterationen, der Impulsalgorithmus kombiniert diese schwachen Regeln zu einer einzigen starken Vorhersageregel.

Hier ist eine weitere Frage, die dich verfolgen könnte ”.Wie wählen wir für jede Runde eine andere Verteilung?? ‘

So wählen Sie das richtige Layout, Das sind die nächsten Schritte:

Paso 1: Der Grundschüler nimmt alle Verteilungen und weist jeder Beobachtung das gleiche Gewicht oder die gleiche Aufmerksamkeit zu.

Paso 2: Wenn Vorhersagefehler durch den ersten Basislernalgorithmus auftreten, dann achten wir mehr auf Beobachtungen, die einen Vorhersagefehler haben. Später, wir wenden den folgenden Basislernalgorithmus an.

Paso 3: Schritt wiederholen 2 bis das Limit des Basislernalgorithmus erreicht ist oder eine höhere Genauigkeit erreicht ist.

Schließlich, kombiniert die Ergebnisse des schwachen Schülers und schafft einen starken Schüler, der letztendlich die Vorhersagekraft des Modells verbessert. Der Impuls wird mehr Aufmerksamkeit auf Beispiele geschenkt, die aufgrund der oben genannten schwachen Regeln falsch klassifiziert sind oder höhere Fehler aufweisen.

Arten von Impulsalgorithmen

Die zugrunde liegende Engine, die zum Antreiben von Algorithmen verwendet wird, kann alles sein. Es kann ein Stempel der Entscheidung sein, ein Sortieralgorithmus, der die Margen maximiert, etc. Es gibt viele Boost-Algorithmen, die andere Arten von Motoren verwenden, Was:

  1. AdaBoost (Es gibtptive ZunahmeGespenstisch)
  2. Steigung des Gradientenbaums
  3. XGBoost

In diesem Artikel, Wir werden uns auf AdaBoost und Gradient Boosting konzentrieren, gefolgt von ihren jeweiligen Python-Codes und wir werden uns im nächsten Artikel auf XGboost konzentrieren.

Algorithmus-Augmentation: AdaBoost

bigd-3876156

Dieses Diagramm erklärt treffend Ada-boost. Lass uns genau verstehen:

Kasten 1: Sie können sehen, dass wir jedem Datenpunkt gleiche Gewichte zugewiesen und einen Entscheidungsstumpf angewendet haben, um sie zu klassifizieren als + (Plus) Ö – (weniger). Der Entscheidungsstumpf (D1) hat auf der linken Seite eine vertikale Linie erzeugt, um die Datenpunkte zu klassifizieren. Wir sehen das, diese vertikale Linie hat fälschlicherweise drei vorhergesagt + (Plus) Was – (weniger). In diesem Fall, wir werden diesen dreien höhere Gewichte zuweisen + (Plus) und wir werden einen weiteren Entscheidungsstumpf anwenden.

dd1-e1526989432375-1889980

Kasten 2: Hier, Sie können sehen, dass die Größe von drei + (Plus) falsch vorhergesagt ist höher im Vergleich zu den anderen Datenpunkten. In diesem Fall, der zweite entscheidungsstumpf (D2) werde versuchen, sie richtig vorherzusagen. Jetzt, eine vertikale Linie (D2) auf der rechten Seite dieser Tabelle haben Sie drei richtig klassifiziert + (Plus) falsch klassifiziert. Aber wieder, hat Fehlklassifizierungsfehler verursacht. Diesmal mit drei – (weniger). Nochmal, wir werden drei stärker gewichten – (weniger) und wir werden einen weiteren Entscheidungsstumpf anwenden.

dd2-e1526989487878-6832470

Kasten 3: Hier, drei – (weniger) höhere Gewichte erhalten. Ein Entscheidungsstumpf wird aufgebracht (D3) diese falsch klassifizierten Beobachtungen richtig vorherzusagen. Diesmal wird eine horizontale Linie erzeugt, um zu klassifizieren + (Plus) Ja – (weniger) basierend auf einem höheren Gewicht falsch klassifizierter Beobachtungen.

dd3-6572753

Kasten 4: Hier, wir haben D1 . kombiniert, D2 und D3, um eine starke Vorhersage zu bilden, die im Vergleich zu einem einzelnen schwachen Schüler eine komplexe Regel hat. Sie können sehen, dass dieser Algorithmus diese Beobachtungen im Vergleich zu jedem einzelnen schwachen Schüler ziemlich gut klassifiziert hat..

dd4-e1526551014644-2439809

AdaBoost (Es gibtptive Zunahmeing): Es funktioniert mit einer ähnlichen Methode wie oben beschrieben. Se ajusta a una secuencia de estudiantes débiles en diferentes datos de Ausbildung ponderados. Beginnen Sie mit der Vorhersage des ursprünglichen Datensatzes und geben Sie jeder Beobachtung das gleiche Gewicht. Wenn die Vorhersage mit dem ersten Schüler falsch ist, dann erhalten falsch vorhergesagte Beobachtungen ein höheres Gewicht. Ein iterativer Prozess sein, setzt das Hinzufügen von Lernenden fort, bis ein Limit für die Anzahl der Modelle oder die Genauigkeit erreicht ist.

Hauptsächlich, wir verwenden Entscheidungsstempel mit AdaBoost. Aber wir können jeden maschinellen Lernalgorithmus als Basislerner verwenden, wenn er die Gewichtung im Trainingsdatensatz akzeptiert. Wir können AdaBoost-Algorithmen für Klassifizierungs- und Regressionsprobleme verwenden.

Sie können auf den Artikel verweisen “Wie man mit maschinellem Lernen schlau wird: AdaBoost” um die AdaBoost-Algorithmen genauer zu verstehen.

Python-Code

Hier ist ein Live-Encoding-Fenster, um Ihnen den Einstieg zu erleichtern. Sie können die Codes ausführen und das Ergebnis in diesem Fenster abrufen:

Puede ajustar los Parameter para optimizar el rendimiento de los algoritmos, Ich habe unten die wichtigsten Parameter für das Tuning erwähnt:

  • n_Schätzer: Kontrollieren Sie die Anzahl der schwachen Schüler.
  • Lernrate:CKontrollieren Sie den Beitrag schwacher Schüler in der endgültigen Kombination. Es gibt einen Kompromiss zwischen Lernrate Ja n_Schätzer.
  • base_estimaters: Hilft bei der Angabe verschiedener Algorithmen für maschinelles Lernen.

Sie können auch grundlegende Schülerparameter anpassen, um ihre Leistung zu optimieren.

Impulsalgorithmus: Steigung erhöhen

En el aumento de Steigung, viele Modelle nacheinander trainieren. Cada nuevo modelo minimiza gradualmente la Verlust-Funktion (y = ax + B + e, e erfordert besondere Aufmerksamkeit, da es sich um einen Fehlerterm handelt) des gesamten Systems mit Gradientenabstieg Methode. El procedimiento de aprendizaje se ajustó consecutivamente a nuevos modelos para proporcionar una estimación más precisa de la Variable de respuesta.

Die Hauptidee hinter diesem Algorithmus besteht darin, neue Basisstudenten zu bilden, die mit dem negativen Gradienten der Verlustfunktion zum Maximum korreliert werden können, mit dem ganzen Set verbunden. Sie können auf den Artikel verweisen “Lerne den Gradientenerhöhungsalgorithmus” um dieses Konzept anhand eines Beispiels zu verstehen.

In der Python-Sklearn-Bibliothek, usamos Gradient Tree Boosting oder GBRT. Es ist eine Verallgemeinerung des Impulses auf beliebige differenzierbare Verlustfunktionen. Kann sowohl für Regressions- als auch für Klassifikationsprobleme verwendet werden.

Python-Code

von sklearn.ensemble import GradientBoostingClassifier #Zur Klassifizierung
von sklearn.ensemble import GradientBoostingRegressor #Für Regression
clf = GradientBoostingClassifier(n_Schätzer=100, Lernrate=1.0, maximale Tiefe=1)
clf.fit(X_Zug, y_train)
  • n_Schätzer: Kontrollieren Sie die Anzahl der schwachen Schüler.
  • Lernrate:CKontrollieren Sie den Beitrag schwacher Schüler in der endgültigen Kombination. Es gibt einen Kompromiss zwischen Lernrate Ja n_Schätzer.
  • Maximale Tiefe: maximale Tiefe einzelner Regressionsschätzer. Maximale Tiefe begrenzt die Anzahl der Knoten im Baum. Passen Sie diesen Parameter für die beste Leistung an; der beste Wert hängt vom Zusammenspiel der Eingangsvariablen ab.

Sie können die Verlustfunktion für eine bessere Leistung anpassen.

Schlussbemerkung

In diesem Artikel, Wir analysieren die Dynamik, eine der Ensemble-Modellierungsmethoden zur Verbesserung der Vorhersagekraft. Hier, Wir haben die Wissenschaft hinter dem Impuls und seine zwei Arten diskutiert: AdaBoost und Gradient Boost. Wir studieren auch ihre jeweiligen Python-Codes.

In meinem nächsten Artikel, Ich werde über eine andere Art von Boost-Algorithmen sprechen, die heute ein Geheimtipp für den Gewinn von „XGBoost“-Data-Science-Wettbewerben ist.

Findest du diesen Artikel hilfreich? Teile deine Meinung / Gedanken im Kommentarbereich unten.

Wenn Ihnen das, was Sie gerade gelesen haben, gefällt und Sie weiter über Analytics lernen möchten, abonnieren Sie unsere E-Mails, Folge uns auf Twitter oder wie bei uns Seite auf Facebook.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.