Verwenden von Ensemble-Algorithmen für maschinelles Lernen in Weka

Ensemble-Algorithmen sind eine leistungsstarke Klasse von Algorithmen für maschinelles Lernen, die die Vorhersagen mehrerer Modelle kombinieren. Ein Vorteil der Verwendung von Weka für maschinelles Lernen ist die Verfügbarkeit so vieler verschiedener Algorithmen für maschinelles Lernen im Ensemble.

Übersicht über Ensemble-Algorithmen

Wir werden einen Rundgang durch die fünf Besten machen Algorithmen für maschinelles Lernen in Weka. Jeder Algorithmus, der behandelt wird, wird kurz in Bezug auf seine Funktionsweise beschrieben und die wichtigsten Algorithmusparameter werden hervorgehoben. Der Algorithmus selbst wird in der Weka Explorer-Oberfläche demonstriert.

Die 5 Algorithmen, die Wir werden uns Folgendes ansehen:

  1. Absacken
  2. Zufälliger Wald
  3. AdaBoost
  4. Abstimmen
  5. Stapeln

Ein Standard-Klassifizierungsproblem für maschinelles Lernen wird verwendet, um jeden Algorithmus zu demonstrieren. Insbesondere das Problem der binären Klassifizierung der Ionosphäre. Dies ist ein guter Datensatz zur Demonstration von Klassifizierungsalgorithmen, da die Eingabevariablen numerisch sind und alle den gleichen Maßstab haben. Das Problem hat nur zwei zu unterscheidende Klassen.

Jede Instanz beschreibt die Eigenschaften von Radarrückläufen aus der Atmosphäre und der Aufgabe ist es vorherzusagen, ob es in der Ionosphäre eine Struktur gibt oder nicht. Es gibt 34 numerische Eingabevariablen mit im Allgemeinen derselben Skala. Weitere Informationen zu diesem Datensatz finden Sie im UCI Machine Learning Repository . Die besten Ergebnisse liegen in der Größenordnung von 98% Genauigkeit.

Starten Sie den Weka-Explorer:

  1. Öffnen Sie die Weka-GUI-Auswahl.
  2. Klicken Sie auf „Explorer“ Schaltfläche zum Öffnen des Weka-Explorers.
  3. Laden Sie das Ionosphären-Dataset aus der Datei data / ionosphere.arff
  4. .
  5. Klicken Sie auf „Klassifizieren“, um die Registerkarte Klassifizieren zu öffnen .

1. Bagging

Bootstrap Aggregation oder kurz Bagging ist ein Ensemble-Algorithmus, der zur Klassifizierung oder Regression verwendet werden kann. Bootstrap ist eine statistische Schätzmethode, bei der eine statistische Größe wie ein Mittelwert aus mehreren Zufallsstichproben Ihrer Daten (mit Ersetzung) geschätzt wird. Dies ist eine nützliche Technik, wenn Sie nur über eine begrenzte Datenmenge verfügen und an einer robusteren Schätzung einer statistischen Größe interessiert sind.

Dieses Beispielprinzip kann mit Modellen für maschinelles Lernen verwendet werden. Mehrere zufällige Stichproben Ihrer Trainingsdaten werden mit Ersatz gezogen und zum Trainieren mehrerer verschiedener Modelle für maschinelles Lernen verwendet. Jedes Modell wird dann verwendet, um eine Vorhersage zu treffen, und die Ergebnisse werden gemittelt, um eine robustere Vorhersage zu erhalten.

Es wird am besten mit Modellen verwendet, die eine geringe Abweichung und eine hohe Varianz aufweisen, was bedeutet, dass die Vorhersagen, die sie treffen sind stark abhängig von den spezifischen Daten, aus denen sie trainiert wurden. Der am häufigsten verwendete Algorithmus zum Absacken, der dieser Anforderung hoher Varianz entspricht, sind Entscheidungsbäume.

Wählen Sie den Absackalgorithmus:

  1. Klicken Sie auf die Schaltfläche „Auswählen“ und wählen Sie „Absacken“. Klicken Sie auf den Namen des Algorithmus, um die Algorithmuskonfiguration zu überprüfen.
Weka-Konfiguration für den Absackalgorithmus

Ein wichtiger Konfigurationsparameter beim Absacken ist der Typ des zu verpackenden Modells . Der Standardwert ist der REPTree, bei dem es sich um die Weka-Implementierung eines Standardentscheidungsbaums handelt, der auch als Klassifizierungs- und Regressionsbaum oder kurz CART bezeichnet wird. Dies wird im Klassifikatorparameter angegeben.

Die Größe jeder Zufallsstichprobe wird im „bagSizePercent“ angegeben, einer Größe als Prozentsatz des rohen Trainingsdatensatzes. Der Standardwert ist 100%. Dadurch wird eine neue Zufallsstichprobe mit der gleichen Größe wie der Trainingsdatensatz erstellt, die jedoch eine andere Zusammensetzung aufweist.

Dies liegt daran, dass die Zufallsstichprobe jedes Mal durch Ersetzung gezogen wird Eine Instanz wird zufällig aus dem Trainingsdatensatz gezogen und der Stichprobe hinzugefügt. Sie wird auch wieder in den Trainingsdatensatz eingefügt, sodass sie erneut ausgewählt und der Stichprobe zweimal oder mehrmals hinzugefügt werden kann.

Schließlich: Die Anzahl der Beutel (und die Anzahl der Klassifizierer) kann im Parameter „numIterations“ angegeben werden. Der Standardwert ist 10, obwohl es üblich ist, Werte in Hunderten oder Tausenden zu verwenden. Erhöhen Sie den Wert von „numIterations“ weiter, bis Sie keine Verbesserung mehr im Modell feststellen oder der Speicher knapp wird.

  1. Klicken Sie auf „OK“, um die Algorithmuskonfiguration zu schließen.
  2. Klicken Sie auf die Schaltfläche „Start“, um den Algorithmus für das Ionosphere-Dataset auszuführen.

Sie können sehen, dass bei der Standardkonfiguration das Absacken eine Genauigkeit von 91% erreicht:

Weka-Klassifizierungsergebnisse für den Absackalgorithmus

2.Random Forest

Random Forest ist eine Erweiterung des Absackens für Entscheidungsbäume, die zur Klassifizierung oder Regression verwendet werden können. Ein Nachteil von verpackten Entscheidungsbäumen besteht darin, dass Entscheidungsbäume unter Verwendung eines gierigen Algorithmus erstellt werden, der bei jedem Schritt des Baumerstellungsprozesses den besten Teilungspunkt auswählt. Als solche sehen die resultierenden Bäume sehr ähnlich aus, was die Varianz der Vorhersagen aus allen Beuteln verringert, was wiederum die Robustheit der gemachten Vorhersagen beeinträchtigt.

Random Forest ist eine Verbesserung gegenüber eingepackten Entscheidungsbäumen, die Unterbricht den gierigen Aufteilungsalgorithmus während der Baumerstellung, sodass Aufteilungspunkte nur aus einer zufälligen Teilmenge der Eingabeattribute ausgewählt werden können. Diese einfache Änderung kann einen großen Effekt haben und die Ähnlichkeit zwischen den eingepackten Bäumen und damit die daraus resultierenden Vorhersagen verringern.

Wählen Sie den Algorithmus für zufällige Gesamtstrukturen:

  1. Klicken Sie auf „Auswählen“. Klicken Sie auf die Schaltfläche und wählen Sie „RandomForest“ in der Gruppe „Bäume“ aus.
  2. Klicken Sie auf den Namen des Algorithmus, um die Algorithmuskonfiguration zu überprüfen.
Weka-Konfiguration für den Random Forest-Algorithmus

Zusätzlich zu den aufgeführten Parametern Ein Schlüsselparameter für die zufällige Gesamtstruktur beim Absacken ist die Anzahl der Attribute, die in jedem Teilungspunkt berücksichtigt werden müssen. In Weka kann dies durch das Attribut „numFeatures“ gesteuert werden, das standardmäßig auf 0 gesetzt ist und den Wert automatisch anhand einer Faustregel auswählt.

  1. Klicken Sie auf „OK“, um das zu schließen Algorithmuskonfiguration.
  2. Klicken Sie auf die Schaltfläche „Start“, um den Algorithmus für das Ionosphere-Dataset auszuführen.

Sie können sehen, dass zufällige Gesamtstrukturen mit der Standardkonfiguration eine Genauigkeit erzielen von 92%:

Weka-Klassifizierungsergebnisse für den Random Forest-Algorithmus

3. AdaBoost

AdaBoost ist ein Ensemble-Algorithmus für maschinelles Lernen bei Klassifizierungsproblemen. Es ist Teil einer Gruppe von Ensemble-Methoden namens Boosting, die neue Modelle für maschinelles Lernen in eine Reihe aufnehmen, in der nachfolgende Modelle versuchen, die Vorhersagefehler früherer Modelle zu beheben. AdaBoost war die erste erfolgreiche Implementierung dieses Modelltyps.

Adaboost wurde entwickelt, um kurze Entscheidungsbaummodelle mit jeweils einem einzelnen Entscheidungspunkt zu verwenden. Solche kurzen Bäume werden oft als Entscheidungsstümpfe bezeichnet.

Das erste Modell wird wie gewohnt konstruiert. Jede Instanz im Trainingsdatensatz wird gewichtet und die Gewichte werden basierend auf der Gesamtgenauigkeit des Modells und der korrekten Klassifizierung einer Instanz aktualisiert. Nachfolgende Modelle werden trainiert und hinzugefügt, bis eine minimale Genauigkeit erreicht ist oder keine weiteren Verbesserungen möglich sind. Jedes Modell wird basierend auf seinen Fähigkeiten gewichtet. Diese Gewichte werden verwendet, wenn die Vorhersagen aller Modelle für neue Daten kombiniert werden.

Wählen Sie den AdaBoost-Algorithmus:

  1. Klicken Sie auf Klicken Sie auf die Schaltfläche „Auswählen“ und wählen Sie „AdaBoostM1“ in der Gruppe „Meta“ aus.
  2. Klicken Sie auf den Namen des Algorithmus, um die Algorithmuskonfiguration zu überprüfen.
Weka-Konfiguration für den AdaBoost-Algorithmus

Der schwache Lernende im Inneren Das AdaBoost-Modell kann durch den Klassifikatorparameter angegeben werden. Der Standardwert ist der Entscheidungsstumpf-Algorithmus, es können jedoch auch andere Algorithmen verwendet werden. Ein Schlüsselparameter neben dem schwachen Lernenden ist die Anzahl der Modelle, die in Serie erstellt und hinzugefügt werden müssen. Dies kann im Parameter „numIterations“ angegeben werden und ist standardmäßig 10.

  1. Klicken Sie auf „OK“, um die Algorithmuskonfiguration zu schließen.
  2. Klicken Sie zum Ausführen auf die Schaltfläche „Start“ Der Algorithmus im Ionosphären-Dataset.

Sie können sehen, dass AdaBoost mit der Standardkonfiguration eine Genauigkeit von 90% erreicht:

Weka-Klassifizierungsergebnisse für den AdaBoost-Algorithmus

4. Abstimmung

Abstimmung ist vielleicht der einfachste Ensemble-Algorithmus und oft sehr effektiv. Es kann für Klassifizierungs- oder Regressionsprobleme verwendet werden. Bei der Abstimmung werden zwei oder mehr Untermodelle erstellt. Jedes Untermodell erstellt Vorhersagen, die auf irgendeine Weise kombiniert werden, z. B. indem der Mittelwert oder der Modus der Vorhersagen verwendet wird, sodass jedes Untermodell über das Ergebnis abstimmen kann.

Wählen Sie die Abstimmung Algorithmus:

  1. Klicken Sie auf die Schaltfläche „Auswählen“ und wählen Sie „Abstimmen“ unter der Gruppe „Meta“.
  2. Klicken Sie auf den Namen des Algorithmus, um die Algorithmuskonfiguration zu überprüfen.
Weka-Konfiguration für den Voting Ensemble-Algorithmus

Der Schlüsselparameter eines Vote-Ensembles ist die Auswahl von Untermodellen. Modelle können in Weka im Parameter „Klassifikatoren“ angegeben werden.Durch Klicken auf diesen Parameter können Sie eine Reihe von Klassifizierern hinzufügen:

Auswahl des Weka-Algorithmus für den Voting Ensemble-Algorithmus

Durch Klicken auf die Schaltfläche „Bearbeiten“ bei ausgewähltem Klassifikator können Sie die Details dieses Klassifikators konfigurieren. Ein Ziel bei der Auswahl von Untermodellen ist die Auswahl von Modellen, die ganz andere Vorhersagen treffen (unkorrelierte Vorhersagen). Daher ist es eine gute Faustregel, sehr unterschiedliche Modelltypen auszuwählen, z. B. Bäume, instanzbasierte Methoden, Funktionen usw.

Ein weiterer wichtiger Parameter, der für die Abstimmung konfiguriert werden muss, ist die Art und Weise, wie die Vorhersagen des Untermodelle werden kombiniert. Dies wird durch den Parameter „kombinationsregel“ gesteuert, der standardmäßig den Durchschnitt der Wahrscheinlichkeiten ermittelt.

  1. Klicken Sie auf „OK“, um die Algorithmuskonfiguration zu schließen.
  2. Klicken Sie auf „OK“ Klicken Sie auf die Schaltfläche „Start“, um den Algorithmus für das Ionosphere-Dataset auszuführen.

Sie können sehen, dass Vote mit der Standardkonfiguration eine Genauigkeit von 64% erreicht. Offensichtlich erzielte diese Technik schlechte Ergebnisse, da nur das ZeroR-Untermodell ausgewählt wurde.

5. Stacking

Stacked Generalization oder kurz Stacking ist eine einfache Erweiterung von Voting-Ensembles, die für Klassifizierungs- und Regressionsprobleme verwendet werden können.

Zusätzlich zur Auswahl mehrerer Untermodelle können Sie mit Stacking um ein anderes Modell anzugeben, um zu lernen, wie die Vorhersagen aus den Untermodellen am besten kombiniert werden können. Da ein Metamodell verwendet wird, um die Vorhersagen von Untermodellen am besten zu kombinieren, wird diese Technik manchmal als Mischen bezeichnet, wie beim Mischen von Vorhersagen.

Wählen Sie den Stapelalgorithmus:

  1. Klicken Sie auf die Schaltfläche „Auswählen“ und wählen Sie „Stapeln“ unter der Gruppe „Meta“.
  2. Klicken Sie auf den Namen des Algorithmus, um die Algorithmuskonfiguration zu überprüfen.
Weka-Konfiguration für den Stacking Ensemble-Algorithmus

Wie beim Vote-Klassifikator können Sie die Untermodelle im Parameter classifiers angeben. Das Modell, das trainiert wird, um zu lernen, wie die Vorhersagen aus dem Untermodell am besten kombiniert werden, kann im Parameter „metaClassifier“ angegeben werden, der standardmäßig auf ZeroR gesetzt ist. Es ist üblich, einen linearen Algorithmus wie eine lineare Regression oder eine logistische Regression für Regressions- bzw. Klassifikationstypprobleme zu verwenden. Dies dient dazu, eine Ausgabe zu erzielen, die eine einfache lineare Kombination der Vorhersagen der Untermodelle darstellt.

  1. Klicken Sie auf „OK“, um die Algorithmuskonfiguration zu schließen.
  2. Klicken Sie auf Schaltfläche „Start“ zum Ausführen des Algorithmus für das Ionosphere-Dataset.

Sie können sehen, dass das Stapeln mit der Standardkonfiguration eine Genauigkeit von 64% erreicht:

Weka-Klassifizierungsergebnisse für den Stacking Ensemble-Algorithmus

Nochmals Ähnlich wie bei der Abstimmung erzielte Stacking schlechte Ergebnisse, da nur das ZeroR-Untermodell ausgewählt wurde.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.