Ensemble -Lernen in Python durch Beispiel

Ensemble -Lernen in Python durch Beispiel

Es gibt kein Geheimnis, dass maschinelles Lernen mit der Zeit und den Vorhersagemodellen besser wird. Prädiktive Modelle bilden den Kern des maschinellen Lernens. Es ist gut, die Genauigkeit des Modells für bessere Ergebnisse im Modell für maschinelles Lernen zu verbessern. Eine Technik namens „Ensemble Machine Learning“ wird verwendet, um die Leistung und Genauigkeit eines Modells zu erhöhen.

Ensemble Learning verwendet verschiedene Modelle des maschinellen Lernens, um zu versuchen, bessere Vorhersagen im Datensatz zu treffen. Die Vorhersagen eines Modells werden in einem Ensemble -Modell kombiniert, um die endgültige Vorhersage erfolgreich zu machen. Viele Menschen sind jedoch nicht mit dem maschinellen Ensemble -Lernen vertraut. Lesen Sie unten; Wir erläutern alles über diese maschinelle Lerntechnik mit Python mit geeigneten Beispielen.

Angenommen, Sie nehmen an einem Trivia -Spiel teil und haben gute Kenntnisse über einige Themen, aber Sie kennen nichts andere einige Themen. Ein Teammitglied müsste alle Spielthemen abdecken, wenn Sie im Spiel eine maximale Punktzahl erzielen möchten. Es ist die Grundidee hinter dem Ensemble -Lernen, bei dem wir die Vorhersagen aus verschiedenen Modellen für eine genaue Ausgabe kombinieren.

Das Bild zeigt ein Beispiel für Schaltpläne eines Ensemble. Im obigen Bild wird das Eingangsarray von drei Vorverarbeitungsrohrleitungen gefüllt, und es gibt Grundlerner. Alle Ensembles kombinieren die Vorhersagen der Grundlerner in das endgültige Vorhersage -Array „P“.

Angenommen, Sie denken darüber nach, alle Vorhersagen zu kombinieren. Wenn wir das obige Beispiel betrachten, ist es einfach zu beantworten, wenn Sie ein Team haben. Das maschinelle Lernen ist das gleiche wie die Klassifizierungsprobleme. Beim maschinellen Lernen nimmt das System eine am häufigsten der Mehrheitsregel äquivalente Vorhersage für die Klasse für die Klasse für Klasse ein. Es gibt jedoch verschiedene Möglichkeiten, verschiedene Vorhersagen zu kombinieren, und Sie können ein Modell zum Lernen verwenden, um die Vorhersagen angemessen zu kombinieren.

Was lernt Ensemble??

Maschinelles Lernen und Statistiken verbreiten sich weltweit, daher benötigen wir unterschiedliche Techniken, um die Leistung eines prädiktiven Modells für eine bessere Genauigkeit zu erhöhen. Ensemble Learning ist ein Verfahren zum Einsatz verschiedener Modelle für maschinelles Lernen und zum Erstellen von Strategien zur Lösung eines bestimmten Problems.

Das Ensemble kombiniert verschiedene Modelle Sätze für die Improvisation von Vorhersagekraft und Stabilität. Laut den Ensemble-basierten Modellen gibt es zwei verschiedene Szenarien, ich.e., eine höhere oder niedrigere Datenmenge.

Lassen Sie uns das Ensemble -Lernen anhand eines Beispiels verstehen. Angenommen, wir wollen in das „ABC“ -Firmen investieren, aber wir sind uns nicht sicher über seine Leistung. Deshalb beraten wir verschiedene Personen über die Leistung des „ABC“ -Firmens. Wir können den Rat nehmen:

Mitarbeiter des „ABC“ -Firmens: Mitarbeiter des Unternehmens wissen alles über die internen Funktionen des Unternehmens und alle Insider -Informationen. Die Mitarbeiter haben jedoch eine umfassendere Perspektive auf den Wettbewerb, die Entwicklung der Technologie und die Auswirkungen auf das Produkt des „ABC“ -Unternehmens des Unternehmens. Nach den Informationen und früheren Erfahrungen ist die Beratung von Mitarbeitern 65% mal richtig.

Finanzberater der „ABC“ -Firma: Finanzberater haben eine größere Perspektive in Bezug auf das Wettbewerbsumfeld. Der Rat vom Finanzberater des Unternehmens war jedoch in der Vergangenheit 75% Mal korrekt.

Börsenhändler: Diese Händler beobachten immer den Aktienkurs des Unternehmens und kennen die saisonalen Trends und die Gesamtmarktleistung. Sie entwickeln auch eine scharfe Institution über die Variation von Aktien im Laufe der Zeit. Dennoch war der Rat von Börsenhändlern in der Vergangenheit 70% -mal hilfreich.

Mitarbeiter des Unternehmens des Konkurrenten: Diese Mitarbeiter kennen die internen Funktionen des Unternehmens eines Wettbewerbers und sind sich der spezifischen Änderungen bewusst. Sie haben jedoch nicht jeden Blick auf ihre Firma und externe Faktoren im Zusammenhang mit dem Wachstum des Wettbewerbers. Dennoch waren die Mitarbeiter des Unternehmens des Konkurrenten in der Vergangenheit 60% Mal richtig.

Marktforschungsteam: Dieses Team arbeitet daran, die Kundenpräferenzen des Produkts des „ABC“ -Firmens gegenüber den Wettbewerbern zu analysieren. Dieses Team befasst sich mit der Kundenseite, um sich der Variation „ABC“ -Firma aufgrund der Ausrichtung auf ihre Ziele nicht zu bewusst. Das Marktforschungsteam war jedoch in der Vergangenheit 75% -mal hilfreich.

Social -Media -Expertenteam: Dieses Team ist vorteilhaft zu verstehen, wie die Produkte des Unternehmens „ABC“ auf dem Markt positioniert sind. Sie analysieren auch die Gefühle des Kunden, die sich im Laufe der Zeit mit dem Unternehmen ändern. Social -Media -Experten -Team, die Informationen über digitales Marketing hinaus nicht bewusst sind. Sie sind also in der Vergangenheit 65% mal richtig.

Im obigen Szenario haben wir unterschiedliche Aspekte, um eine gute Entscheidung zu treffen, da die Genauigkeitsrate 99% betragen kann. Die oben verwendeten Annahmen sind jedoch unabhängig und leicht extrem, da erwartet wird, dass sie korreliert werden.

Ensemble -Methoden

Lassen Sie uns nun die vollständigen Informationen der verschiedenen Techniken des Ensemble -Lernens in Python erörtern:

Grundlegende Ensemble -Methode

Es gibt drei Arten von Techniken in der grundlegenden Ensemble -Methode, und sie sind:

Maximale Abstimmung

Die Hauptarbeit der maximalen Abstimmung wird verwendet, um Klassifizierungsprobleme zu lösen. Diese Methode hat mehrere unabhängige Modelle, und die einzelnen Ausgabe wird als "Abstimmung" bezeichnet. Mehrere Modelle werden zur Vorhersage aller Datenpunkte verwendet. Die Klasse mit einer maximalen Abstimmung kehrt als Ausgabe zurück. Die Vorhersage, dass Benutzer den größten Teil des Modells erhalten, wird als endgültige Vorhersage verwendet.

Zum Beispiel haben wir fünf Experten zur Bewertung eines Produkts, sie haben die Bewertungen wie diese bereitgestellt:

Experte 1 Experte 2 Experte 3 Experte 4 Experte 5 Endbewertung
4 5 4 5 4 4

Hier ist der Beispielcode für das obige Beispiel:

Modell1 = Baum.DecisionTreeClassifier ()
Modell2 = KneigighborsClassifier ()
Modell3 = logisticRegression ()
Modell1.fit (x_train, y_train)
Modell2.fit (x_train, y_train)
Modell3.fit (x_train, y_train)
Pred1 = Modell1.prognostizieren (x_test)
Pred2 = Modell2.prognostizieren (x_test)
Pred3 = Modell3.prognostizieren (x_test)
Final_pred = np.Array ([])
Für i in Reichweite (0, Len (x_test)):
Final_pred = np.append (final_pred, modus ([pred1 [i], pred2 [i], pred3 [i]]))

Im obigen Beispielcode ist X_TRAIN eine unabhängige Variable der Trainingsdaten, und Y_Train ist eine Zielvariable der Trainingsdaten. Hier sind x_train, x_test und y_test Validierungssätze.

Mittelung

Für jeden Datenpunkt in der Mittelung werden mehrere Vorhersagen getroffen. Es wird für das Regressionsproblem verwendet. In dieser Technik finden wir einen Durchschnitt mehrerer Vorhersagen aus den angegebenen Modellen und verwenden diesen Durchschnitt, um eine endgültige Vorhersage zu erhalten.

Die Mittelungsmethode enthält unabhängige Modelle, mit denen der Durchschnitt der Vorhersagen ermittelt wird. Im Allgemeinen ist der kombinierte Ausgang genauer als die individuelle Ausgabe, da die Varianz verringert wird. Diese Methode wird verwendet, um angemessene Vorhersagen im Regressionsproblem zu treffen oder die Möglichkeit des Klassifizierungsproblems zu finden.

Wenn wir das obige Beispiel betrachten, ist der Durchschnitt der Bewertungen

Experte 1 Experte 2 Experte 3 Experte 4 Experte 5 Endbewertung
4 5 4 5 4 4

Durchschnitt der Bewertungen = (4+5+4+5+4+4)/5 = 4.4

Beispielcode für das obige Problem ist:

Modell1 = Baum.DecisionTreeClassifier ()
Modell2 = KneigighborsClassifier ()
Modell3 = logisticRegression ()
Modell1.fit (x_train, y_train)
Modell2.fit (x_train, y_train)
Modell3.fit (x_train, y_train)
Pred1 = Modell1.Predict_Proba (x_test)
Pred2 = Modell2.Predict_Proba (x_test)
Pred3 = Modell3.Predict_Proba (x_test)
FinalPred = (Pred1+Pred2+Pred3)/3

Gewichteter Durchschnitt

Diese Methode ist ein erweiterter Typ der durchschnittlichen Methode, da den Modellen verschiedene Gewichte zugewiesen werden, die die Bedeutung jedes Modells für die ordnungsgemäße Vorhersage definieren. Wenn beispielsweise ein Team zwei Experten und zwei Anfänger hat, wird die Experten anstelle der Anfänger die Bedeutung gegeben.

Das Ergebnis des gewichteten Durchschnitts kann als [(5 × 0) berechnet werden.24) + (4 × 0.24) + (5 × 0.19) + (4 × 0.19) + (4 × 0.19)] = 4.68.

Faktoren Experte 1 Experte 2 Experte 3 Experte 4 Experte 5 Endbewertung
Gewicht 0.24 0.24 0.19 0.19 0.19
Bewertung 5 4 5 4 4 4.68

Beispielcode für das obige Beispiel des gewichteten Durchschnitts:

Modell1 = Baum.DecisionTreeClassifier ()
Modell2 = KneigighborsClassifier ()
Modell3 = logisticRegression ()
Modell1.fit (x_train, y_train)
Modell2.fit (x_train, y_train)
Modell3.fit (x_train, y_train)
Pred1 = Modell1.Predict_Proba (x_test)
Pred2 = Modell2.Predict_Proba (x_test)
Pred3 = Modell3.Predict_Proba (x_test)
FinalPred = (Pred1*0.3+pred2*0.3+pred3*0.4)

Erweiterte Ensemble -Methoden

Stapelung

Stapelmethode, mehrere Modelle wie Regression oder Klassifizierung werden durch ein Meta-Model kombiniert. Mit anderen Worten, diese Methode verwendet unterschiedliche Vorhersagen aus verschiedenen Modellen zum Erstellen eines neuen Modells. Alle Basismodelle sind ordnungsgemäß auf dem Datensatz geschult, und dann ist ein Meta-Modell ordnungsgemäß auf Merkmale geschult, die von Basismodellen zurückgegeben werden. Daher ist ein Basismodell beim Stapeln spezifisch unterschiedlich, und das Meta-Modell ist vorteilhaft, um die Merkmale aus dem Basismodell zu finden, um eine großartige Genauigkeit zu erhalten. Das Stapeln hat einen bestimmten Algorithmus -Schritt wie unten:

  • Trainieren Sie zuerst einen Datensatz in n Teilen.
  • Das Basismodell wird in die N-1-Teile eingebaut, und Vorhersagen sind im n-ten Teil geteilt. Es muss für jeden nten Teil eines Zugsets durchgeführt werden.
  • Das Modell wird in einen vollständigen Zugdatensatz angepasst, und dieses Modell wird verwendet, um einen Testdatensatz vorherzusagen.
  • Danach wird die Vorhersage eines Zugdatensatzes als Funktion zum Erstellen eines neuen Modells verwendet.
  • Endlich wird das endgültige Modell zur Vorhersage in einem Testdatensatz verwendet.

Mischen

Das Mischen entspricht der Stapelmethode, verwendet jedoch einen Holdout -Satz von einem Zug, der die Vorhersagen erstellt hat. In einfachen Worten verwendet das Mischen einen Validierungsdatensatz und hält es getrennt, um die Vorhersagen zu erstellen, anstatt einen vollständigen Datensatz zu verwenden, um ein Basismodell zu trainieren. Hier sind die algorithmischen Schritte, die wir in der Mischung verwenden können:

  • Zunächst müssen wir Trainingsdatensätze in verschiedene Datensätze wie Test, Validierung und Schulungsdatensatz aufteilen.
  • Passen Sie nun das Basismodell mit einem Trainingsdatensatz an.
  • Danach prognostizieren Sie den Test- und Validierungsdatensatz.
  • Die obigen Vorhersagen werden als Merkmal zum Aufbau des Modells der zweiten Ebene verwendet.
  • Schließlich wird das Modell der zweiten Ebene verwendet.

Eintacken

Das Backen wird auch als Bootstrapping -Methode bezeichnet. Es kombiniert die Ergebnisse verschiedener Modelle zum Erhalten generalisierter Ergebnisse. Bei dieser Methode wird ein Basismodell auf den Taschen oder Teilmengen ausgeführt, um eine faire Verteilung eines vollständigen Datensatzes zu erhalten. Diese Taschen sind Teilmengen eines Datensatzes mit dem Ersatz, um die Größe einer Tasche ähnlich einem vollständigen Datensatz zu erstellen. Der Ausgang des Sacking wird gebildet, sobald alle Basismodelle für den Ausgang kombiniert werden. Es gibt einen bestimmten Algorithmus zum Betteln wie unten:

  • Erstellen Sie zunächst verschiedene Datensätze aus einem Trainingsdatensatz, indem Sie Beobachtungen mit einem Ersatz auswählen.
  • Führen Sie nun Basismodelle für jeden erstellten Datensatz unabhängig voneinander aus.
  • Kombinieren Sie schließlich alle Vorhersagen des Basismodells mit jedem Endergebnis.

Erhöhen

Boosting arbeitet, um zu verhindern, dass das falsche Basismodell eine endgültige Ausgabe beeinflusst, anstatt ein Basismodell zu kombinieren, und sich darauf konzentriert, ein neues Modell zu erstellen, das von einem früheren abhängig ist. Dieses neue Modell beseitigt alle Fehler aller früheren Modelle, und jedes Modell wird als schwacher Lernender bezeichnet. Das endgültige Modell wird als starker Lernender bezeichnet, der durch einen gewichteten Mittelwert der schwachen Lernenden erstellt wurde. Es handelt sich um eine sequentielle Prozedur, bei der jedes nachfolgende Modell die korrigierende Fehler von früheren Modellen korrigiert. Im Folgenden finden Sie die sequentiellen Schritte des Algorithmus zum Steigern:

  • Nehmen Sie zuerst die Teilmenge eines Trainingsdatensatzes und trainieren Sie dann das Basismodell auf dem Datensatz.
  • Verwenden Sie nun das dritte Modell, um Vorhersagen in einem vollständigen Datensatz zu machen.
  • Berechnen Sie den Fehler danach nach dem vorhergesagten und tatsächlichen Wert.
  • Berechnen Sie den Fehler, sobald der Datenpunkt mit demselben Gewicht initialisiert wird.
  • Weisen Sie dem falsch vorhergesagten Datenpunkt nun ein höheres Gewicht zu.
  • Machen Sie danach ein neues Modell, indem Sie die vorherigen Fehler beseitigen und angemessene Vorhersagen durch das neue Modell machen.
  • Wir müssen unterschiedliche Modelle erstellen-Eeign aufeinanderfolgendes Modell, indem wir die Fehler der letzten Modelle korrigieren.
  • Schließlich ist das starke Lernende oder das endgültige Modell ein gewichteter Mittelwert des vorherigen oder schwachen Lernenden.

Abschluss

Dies schließt unsere detaillierte Erklärung des Ensemble -Lernens mit den geeigneten Beispielen in Python ab. Wie bereits erwähnt, hat Ensemble Learning mehrere Vorhersagen. Mit anderen Worten verwenden wir mehrere Modelle, um die genaueste Ausgabe zu finden, die möglich ist. Wir haben Arten des Ensemble -Lernens mit Beispielen und Algorithmen erwähnt. Es gibt mehrere Methoden, um die Ergebnisse mit mehreren Vorhersagen herauszufinden. Laut vielen Datenwissenschaftlern bietet Ensemble Learning die genaueste Ausgabe, da es mehrere Vorhersagen oder Modelle verwendet.