Ensemble Machine Learning-algoritmen gebruiken in Weka

Ensemble-algoritmen zijn een krachtige klasse van machine learning-algoritmen die de voorspellingen van meerdere modellen combineren. Een voordeel van het gebruik van Weka voor machine learning is de beschikbaarheid van zo veel verschillende algoritmen voor het samenstellen van machine learning.

Overzicht ensemble-algoritmen

We gaan een rondleiding geven langs de 5 van de top ensemble algoritmen voor machine learning in Weka. Elk algoritme dat zal worden behandeld, zal kort worden beschreven in termen van hoe het werkt en de belangrijkste algoritme-parameters zullen worden gemarkeerd, evenals het algoritme zelf zal worden gedemonstreerd in de Weka Explorer-interface.

De 5 algoritmen die we zullen kijken zijn:

  1. Bagging
  2. Random Forest
  3. AdaBoost
  4. Stemmen
  5. Stacking

Er wordt een standaard classificatieprobleem met machine learning gebruikt om elk algoritme te demonstreren. Specifiek, het probleem van de binaire classificatie van de ionosfeer. Dit is een goede dataset om classificatie-algoritmen te demonstreren, omdat de invoervariabelen numeriek zijn en allemaal dezelfde schaal hebben. Het probleem heeft maar twee klassen om te onderscheiden.

Elk exemplaar beschrijft de eigenschappen van radarretouren uit de atmosfeer en de taak is om te voorspellen of er al dan niet structuur in de ionosfeer is of niet. Er zijn 34 numerieke invoervariabelen van over het algemeen dezelfde schaal. U vindt meer informatie over deze dataset in de UCI Machine Learning Repository . De beste resultaten zijn in de orde van 98% nauwkeurigheid.

Start de Weka Explorer:

  1. Open de Weka GUI Chooser.
  2. Klik op de “Explorer ”-Knop om de Weka Explorer te openen.
  3. Laad de Ionosphere-dataset uit het data / ionosphere.arff -bestand
  4. Klik op” Classificeren “om het tabblad Classificeren te openen .

1. Bagging

Bootstrap Aggregation of kortweg Bagging is een ensemble-algoritme dat kan worden gebruikt voor classificatie of regressie. Bootstrap is een statistische schattingstechniek waarbij een statistische grootheid, zoals een gemiddelde, wordt geschat op basis van meerdere willekeurige steekproeven van uw gegevens (met vervanging). Het is een handige techniek wanneer u een beperkte hoeveelheid gegevens heeft en u geïnteresseerd bent in een meer robuuste schatting van een statistische grootheid.

Dit voorbeeldprincipe kan worden gebruikt met machine learning-modellen. Bij vervanging worden meerdere willekeurige steekproeven van uw trainingsgegevens getrokken en gebruikt om meerdere verschillende machine learning-modellen te trainen. Elk model wordt vervolgens gebruikt om een ​​voorspelling te doen en de resultaten worden gemiddeld om een ​​robuustere voorspelling te geven.

Het kan het beste worden gebruikt met modellen met een lage bias en een hoge variantie, wat betekent dat de voorspellingen die ze doen zijn sterk afhankelijk van de specifieke gegevens van waaruit ze zijn opgeleid. Het meest gebruikte algoritme voor opvangen dat aan deze eis van hoge variantie voldoet, zijn beslissingsbomen.

Kies het algoritme voor opvangen:

  1. Klik op de knop “Kiezen” en selecteer “Opzakken”. onder de “meta” -groep.
  2. Klik op de naam van het algoritme om de algoritme-configuratie te bekijken.
Weka-configuratie voor het bagging-algoritme

Een belangrijke configuratieparameter bij bagging is het type model dat wordt verpakt . De standaardinstelling is de REPTree, wat de Weka-implementatie is van een standaard beslissingsboom, ook wel een classificatie- en regressieboom of afgekort CART genoemd. Dit wordt gespecificeerd in de classifier parameter.

De grootte van elke willekeurige steekproef wordt gespecificeerd in de “bagSizePercent”, wat een grootte is als een percentage van de ruwe trainingsdataset. De standaardwaarde is 100%, wat een nieuwe willekeurige steekproef zal maken van dezelfde grootte als de trainingsdataset, maar een andere samenstelling zal hebben.

Dit komt doordat de willekeurige steekproef wordt getrokken met vervanging, wat betekent dat elke keer een instantie wordt willekeurig uit de trainingsdataset getrokken en aan het monster toegevoegd, het wordt ook weer toegevoegd aan de trainingsdataset, wat betekent dat het opnieuw kan worden gekozen en twee of meer keer aan het monster kan worden toegevoegd.

Ten slotte, het aantal zakken (en het aantal classificaties) kan worden gespecificeerd in de parameter “numIterations”. De standaardwaarde is 10, hoewel het gebruikelijk is om waarden in de honderden of duizenden te gebruiken. Ga door met het verhogen van de waarde van “numIterations” totdat u geen verbetering meer in het model ziet, of u onvoldoende geheugen heeft.

  1. Klik op “OK” om de algoritme-configuratie te sluiten.
  2. Klik op de “Start” -knop om het algoritme op de Ionosphere-dataset uit te voeren.

Je kunt zien dat met de standaardconfiguratie dat bagging een nauwkeurigheid van 91% behaalt:

Weka-classificatieresultaten voor het bagging-algoritme

2.Random Forest

Random Forest is een uitbreiding van bagging voor beslissingsbomen die kunnen worden gebruikt voor classificatie of regressie. Een keerzijde van beslissingsbomen in zakken is dat beslissingsbomen worden geconstrueerd met behulp van een hebzuchtig algoritme dat het beste splitsingspunt selecteert bij elke stap in het boomopbouwproces. Als zodanig lijken de resulterende bomen er erg op elkaar, wat de variantie van de voorspellingen van alle zakken vermindert, wat op zijn beurt de robuustheid van de gemaakte voorspellingen schaadt.

Random Forest is een verbetering ten opzichte van in zakken verpakte beslissingsbomen die verstoort het hebzuchtige splitsingsalgoritme tijdens het maken van een boom, zodat splitsingspunten alleen kunnen worden geselecteerd uit een willekeurige subset van de invoerattributen. Deze eenvoudige wijziging kan een groot effect hebben en de gelijkenis tussen de in zakken verpakte bomen verminderen en op zijn beurt de resulterende voorspellingen doen.

Kies het algoritme voor willekeurige bossen:

  1. Klik op Kiezen en selecteer “RandomForest” onder de groep “trees”.
  2. Klik op de naam van het algoritme om de algoritme-configuratie te bekijken.
Weka-configuratie voor het Random Forest-algoritme

Naast de vermelde parameters hierboven voor bagging, is een sleutelparameter voor random forest het aantal attributen dat in elk splitpunt moet worden overwogen. In Weka kan dit worden gecontroleerd door het “numFeatures” -attribuut, dat standaard is ingesteld op 0, dat de waarde automatisch selecteert op basis van een vuistregel.

  1. Klik op “OK” om de algoritme-configuratie.
  2. Klik op de “Start” -knop om het algoritme op de Ionosphere-gegevensset uit te voeren.

U kunt zien dat met de standaardconfiguratie dat willekeurige bossen een nauwkeurigheid behalen van 92%:

Weka-classificatieresultaten voor het willekeurige forest-algoritme

3. AdaBoost

AdaBoost is een algoritme voor het leren van een ensemble voor classificatieproblemen. Het maakt deel uit van een groep ensemble-methoden, boosting genaamd, die nieuwe machine learning-modellen toevoegen in een serie waarin volgende modellen proberen de voorspellingsfouten van eerdere modellen te herstellen. AdaBoost was de eerste succesvolle implementatie van dit type model.

Adaboost is ontworpen om korte beslissingsboommodellen te gebruiken, elk met een enkel beslissingspunt. Dergelijke korte bomen worden vaak beslissingsstronken genoemd.

Het eerste model is normaal opgebouwd. Elk exemplaar in de trainingsdataset wordt gewogen en de gewichten worden bijgewerkt op basis van de algehele nauwkeurigheid van het model en of een exemplaar correct is geclassificeerd of niet. Daaropvolgende modellen worden getraind en toegevoegd totdat een minimale nauwkeurigheid is bereikt of er geen verdere verbeteringen mogelijk zijn. Elk model wordt gewogen op basis van zijn vaardigheid en deze gewichten worden gebruikt bij het combineren van de voorspellingen van alle modellen op nieuwe gegevens.

Kies het AdaBoost-algoritme:

  1. Klik op de “Kies” -knop en selecteer “AdaBoostM1” onder de “meta” -groep.
  2. Klik op de naam van het algoritme om de algoritme-configuratie te bekijken.
Weka-configuratie voor het AdaBoost-algoritme

De zwakke leerling binnen het AdaBoost-model kan worden gespecificeerd door de classifier-parameter. De standaardinstelling is het algoritme voor beslissingsstomp, maar er kunnen ook andere algoritmen worden gebruikt. een belangrijke parameter naast de zwakke leerling is het aantal modellen dat moet worden gemaakt en in serie moet worden toegevoegd. Dit kan worden gespecificeerd in de parameter “numIterations” en is standaard ingesteld op 10.

  1. Klik op “OK” om de algoritmeconfiguratie te sluiten.
  2. Klik op de knop “Start” om te starten het algoritme op de Ionosphere-dataset.

Je kunt zien dat met de standaardconfiguratie AdaBoost een nauwkeurigheid van 90% behaalt:

Weka-classificatieresultaten voor het AdaBoost-algoritme

4. Stemmen

Stemmen is misschien wel het eenvoudigste ensemble-algoritme, en is vaak erg effectief. Het kan worden gebruikt voor classificatie- of regressieproblemen. Stemmen werkt door twee of meer submodellen te maken. Elk submodel maakt voorspellingen die op de een of andere manier worden gecombineerd, bijvoorbeeld door het gemiddelde of de modus van de voorspellingen te nemen, zodat elk submodel kan stemmen over wat de uitkomst zou moeten zijn.

Kies de stem algoritme:

  1. Klik op de knop “Kiezen” en selecteer “Stemmen” onder de groep “meta”.
  2. Klik op de naam van het algoritme om de algoritme-configuratie te bekijken.
Weka-configuratie voor het stemensemble-algoritme

De belangrijkste parameter van een stemensemble is de selectie van submodellen. Modellen kunnen worden gespecificeerd in Weka in de parameter “classifiers”.Door op deze parameter te klikken, kunt u een aantal classificaties toevoegen:

Weka-algoritme selectie voor het stemensemble-algoritme

Door op de knop “Bewerken” te klikken met een geselecteerde classificatie, kunt u de details van die classificatie configureren. Een doel bij het selecteren van submodellen is het selecteren van modellen die heel verschillende voorspellingen doen (niet-gecorreleerde voorspellingen). Als zodanig is het een goede vuistregel om zeer verschillende modeltypes te selecteren, zoals bomen, op instanties gebaseerde methoden, functies enzovoort.

Een andere belangrijke parameter om te configureren voor stemmen is hoe de voorspellingen van de submodellen worden gecombineerd. Dit wordt geregeld door de parameter “combinedRule” die standaard is ingesteld om het gemiddelde van de waarschijnlijkheden te nemen.

  1. Klik op “OK” om de algoritme-configuratie te sluiten.
  2. Klik op de “Start” -knop om het algoritme op de Ionosphere-dataset uit te voeren.

Je kunt zien dat met de standaardconfiguratie Vote een nauwkeurigheid van 64% behaalt. Deze techniek leverde duidelijk slechte resultaten op omdat alleen het ZeroR-submodel werd geselecteerd.

5. Stapelen

Gestapelde generalisatie of afgekort Stapelen is een eenvoudige uitbreiding op stemensembles die kunnen worden gebruikt voor classificatie- en regressieproblemen.

Naast het selecteren van meerdere submodellen, kunt u met stapelen om een ​​ander model te specificeren om te leren hoe de voorspellingen uit de submodellen het beste kunnen worden gecombineerd. Omdat een metamodel wordt gebruikt om de voorspellingen van submodellen het beste te combineren, wordt deze techniek ook wel blending genoemd, zoals bij het samenvoegen van voorspellingen.

Kies het stapelalgoritme:

  1. Klik op de knop “Kiezen” en selecteer “Stapelen” onder de groep “meta”.
  2. Klik op de naam van het algoritme om de configuratie van het algoritme te bekijken.
Weka-configuratie voor het Stacking Ensemble-algoritme

Net als bij de stemclassificatie, kunt u de submodellen specificeren in de parameter classificatoren. Het model dat zal worden getraind om te leren hoe de voorspellingen uit het submodel het beste kunnen worden gecombineerd, kan worden gespecificeerd in de parameter “metaClassifier”, die standaard is ingesteld op ZeroR. Het is gebruikelijk om een ​​lineair algoritme zoals lineaire regressie of logistische regressie te gebruiken voor respectievelijk regressie- en classificatieproblemen. Dit is om een ​​output te krijgen die een eenvoudige lineaire combinatie is van de voorspellingen van de submodellen.

  1. Klik op “OK” om de algoritme-configuratie te sluiten.
  2. Klik op de “Start” -knop om het algoritme op de Ionosphere-dataset uit te voeren.

U kunt zien dat met de standaardconfiguratie Stacking een nauwkeurigheid van 64% behaalt:

Weka-classificatieresultaten voor het Stacking Ensemble-algoritme

Nogmaals , net als stemmen, leverde Stacking slechte resultaten omdat alleen het ZeroR-submodel was geselecteerd.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *