Bruk av Ensemble Machine Learning Algorithms in Weka

Ensemblealgoritmer er en kraftig klasse maskinlæringsalgoritme som kombinerer spådommer fra flere modeller. En fordel med å bruke Weka til maskinlæring er tilgjengeligheten av så mange forskjellige ensemble maskinlæringsalgoritmer.

Ensemble algoritmer oversikt

Vi skal ta en tur til de 5 beste ensembler maskinlæringsalgoritmer i Weka. Hver algoritme som vil bli dekket vil bli kort beskrevet med hensyn til hvordan den fungerer, og de viktigste algoritmeparametrene vil bli uthevet, så vel som algoritmen i seg selv vil bli demonstrert i Weka Explorer-grensesnittet.

De 5 algoritmene som vi vil se på er:

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

Et standard klassifiseringsproblem for maskinlæring vil bli brukt for å demonstrere hver algoritme. Spesielt problemet med binær klassifisering av ionosfæren. Dette er et godt datasett for å demonstrere klassifiseringsalgoritmer fordi inngangsvariablene er numeriske og alle har samme skala. Problemet har bare to klasser å skille mellom.

Hver forekomst beskriver egenskapene til radarretur fra atmosfæren og oppgaven er å forutsi om det er struktur i ionosfæren eller ikke. Det er 34 numeriske inngangsvariabler av generelt samme skala. Du kan lære mer om dette datasettet på UCI Machine Learning Repository . Toppresultatene er i størrelsesorden 98% nøyaktighet.

Start Weka Explorer:

  1. Åpne Weka GUI Chooser.
  2. Klikk på “Explorer” ”-Knappen for å åpne Weka Explorer.
  3. Last Ionosphere-datasettet fra data / ionosphere.arff filen
  4. Klikk» Klassifiser «for å åpne kategorien Klassifiser .

1. Bagging

Bootstrap Aggregation eller Bagging for short er en ensemblealgoritme som kan brukes til klassifisering eller regresjon. Bootstrap er en statistisk estimeringsteknikk der en statistisk størrelse som et gjennomsnitt estimeres fra flere tilfeldige prøver av dataene dine (med erstatning). Det er en nyttig teknikk når du har en begrenset mengde data og du er interessert i et mer robust estimat av en statistisk størrelse.

Dette eksempelprinsippet kan brukes med maskinlæringsmodeller. Flere tilfeldige prøver av treningsdataene dine blir tegnet med erstatning og brukt til å trene flere forskjellige maskinlæringsmodeller. Hver modell blir deretter brukt til å lage en prediksjon, og resultatene blir gjennomsnittet for å gi en mer robust prediksjon.

Den brukes best med modeller som har lav forspenning og høy varians, noe som betyr at spådommene de gir er sterkt avhengig av de spesifikke dataene de ble trent fra. Den mest brukte algoritmen for bagging som passer til dette kravet med høy varians er beslutningstrær.

Velg baggingalgoritme:

  1. Klikk på «Velg» -knappen og velg «Bagging» under “meta” -gruppen.
  2. Klikk på navnet på algoritmen for å gå gjennom algoritmekonfigurasjonen.
Weka Configuration for the Bagging Algorithm

En nøkkelkonfigurasjonsparameter i bagging er typen modell som tas . Standard er REPTree som er Weka-implementeringen av et standard beslutningstreet, også kalt Classification and Regression Tree eller CART for kort. Dette er spesifisert i klassifiseringsparameteren.

Størrelsen på hver tilfeldige prøve er spesifisert i “bagSizePercent”, som er en størrelse i prosent av råopplæringsdatasettet. Standardverdien er 100%, noe som vil opprette et nytt tilfeldig utvalg med samme størrelse som treningsdatasettet, men vil ha en annen sammensetning.

Dette er fordi den tilfeldige prøven tegnes med erstatning, noe som betyr at hver gang en forekomst trekkes tilfeldig fra treningsdatasettet og legges til i prøven, den legges også tilbake i treningsdatasettet, noe som betyr at det kan velges igjen og legges til to eller flere ganger i prøven. antall poser (og antall klassifikatorer) kan spesifiseres i parameteren «numIterations». Standard er 10, selv om det er vanlig å bruke verdier i hundrevis eller tusen. Fortsett å øke verdien av «numIterations» til du ikke lenger ser en forbedring i modellen, eller hvis du går tom for minne.

  1. Klikk «OK» for å lukke algoritmekonfigurasjonen.
  2. Klikk på «Start» -knappen for å kjøre algoritmen i Ionosphere-datasettet.

Du kan se at med standardkonfigurasjonen oppnår bagging en nøyaktighet på 91%:

Weka-klassifiseringsresultater for baggingalgoritmen

2.Random Forest

Random Forest er en utvidelse av bagging for beslutningstrær som kan brukes til klassifisering eller regresjon. En ulempe ved posisjonerte beslutningstrær er at beslutningstrær er konstruert ved hjelp av en grådig algoritme som velger det beste splittpunktet ved hvert trinn i trebyggingsprosessen. Som sådan ser de resulterende trærne ut til å se veldig like ut, noe som reduserer spådommenes avvik fra alle posene, noe som igjen skader robustheten til spådommer.

Tilfeldig skog er en forbedring på posisjonerte trær som forstyrrer den grådige splittingsalgoritmen under treoppretting, slik at splittpunkter bare kan velges fra en tilfeldig delsett av inngangsattributtene. Denne enkle endringen kan ha stor innvirkning på å redusere likheten mellom de sekkede trærne og i sin tur de resulterende spådommene.

Velg den tilfeldige skogalgoritmen:

  1. Klikk på «Velg» knappen og velg “RandomForest” under gruppen “trær”.
  2. Klikk på navnet på algoritmen for å se gjennom algoritmekonfigurasjonen.
Weka-konfigurasjon for den tilfeldige skogalgoritmen

I tillegg til parametrene som er oppført ovenfor for bagging, er en nøkkelparameter for tilfeldig skog antall attributter som skal vurderes i hvert splittpunkt. I Weka kan dette styres av «numFeatures» -attributtet, som standard er satt til 0, som automatisk velger verdien basert på en tommelfingerregel.

  1. Klikk «OK» for å lukke algoritmekonfigurasjon.
  2. Klikk «Start» -knappen for å kjøre algoritmen i Ionosphere-datasettet.

Du kan se at med standardkonfigurasjonen oppnår tilfeldige skoger en nøyaktighet av 92%:

Weka-klassifiseringsresultater for den tilfeldige skogalgoritmen

3. AdaBoost

AdaBoost er en ensemble maskinlæringsalgoritme for klassifiseringsproblemer. Det er en del av en gruppe ensemblemetoder som kalles boosting, som legger til nye maskinlæringsmodeller i en serie der påfølgende modeller prøver å fikse prediksjonsfeil fra tidligere modeller. AdaBoost var den første vellykkede implementeringen av denne typen modeller.

Adaboost ble designet for å bruke korte beslutningstemodeller, hver med et enkelt avgjørelsespunkt. Slike korte trær blir ofte referert til som beslutningsstubber.

Den første modellen er konstruert som normalt. Hver forekomst i treningsdatasettet vektes og vektene oppdateres basert på modellens totale nøyaktighet og om en forekomst ble klassifisert riktig eller ikke. Påfølgende modeller blir trent og lagt til til en minimumsnøyaktighet er oppnådd eller ingen ytterligere forbedringer er mulige. Hver modell er vektet basert på dyktighet, og disse vektene brukes når du kombinerer spådommer fra alle modellene på nye data.

Velg AdaBoost-algoritmen:

  1. Klikk på «Velg» -knappen og velg «AdaBoostM1» under «meta» -gruppen.
  2. Klikk på navnet på algoritmen for å se gjennom algoritmekonfigurasjonen.
Weka-konfigurasjon for AdaBoost-algoritmen

Den svake læreren innen AdaBoost-modellen kan spesifiseres av klassifiseringsparameteren. Standard er algoritmen for beslutningstubber, men andre algoritmer kan brukes. en nøkkelparameter i tillegg til den svake eleven er antall modeller å lage og legge til i serie. Dette kan spesifiseres i parameteren «numIterations» og er standard 10.

  1. Klikk «OK» for å lukke algoritmekonfigurasjonen.
  2. Klikk på «Start» -knappen for å kjøre algoritmen i Ionosphere-datasettet.

Du kan se at AdaBoost med standardkonfigurasjonen oppnår en nøyaktighet på 90%:

Weka-klassifiseringsresultater for AdaBoost-algoritmen

4. Avstemming

Avstemming er kanskje den enkleste ensemblealgoritmen, og er ofte veldig effektiv. Den kan brukes til klassifiserings- eller regresjonsproblemer. Stemmegivning fungerer ved å lage to eller flere undermodeller. Hver delmodell gir spådommer som kombineres på en eller annen måte, for eksempel ved å ta gjennomsnittet eller modusen til spådommene, slik at hver undermodell kan stemme om hva resultatet skal bli.

Velg Stem algoritme:

  1. Klikk «Velg» -knappen og velg «Stem» under «meta» -gruppen.
  2. Klikk på navnet på algoritmen for å se gjennom algoritmekonfigurasjonen.
Weka-konfigurasjon for avstemningsensemble-algoritmen

Nøkkelparameteren til et Vote-ensemble er valget av undermodeller. Modeller kan spesifiseres i Weka i parameteren “classifiers”.Ved å klikke på denne parameteren kan du legge til et antall klassifikatorer:

Weka Algorithm Selection for the Voting Ensemble Algorithm

Ved å klikke på «Rediger» -knappen med en klassifikator valgt, kan du konfigurere detaljene til den klassifikatoren. Et mål med valg av undermodeller er å velge modeller som gir ganske forskjellige spådommer (ukorrelerte spådommer). Som sådan er det en god tommelfingerregel å velge veldig forskjellige modelltyper, for eksempel trær, forekomstbaserte metoder, funksjoner og så videre.

En annen nøkkelparameter å konfigurere for avstemning er hvordan spådommene til delmodeller kombineres. Dette styres av parameteren «combinedRule» som er satt til å ta gjennomsnittet av sannsynlighetene som standard.

  1. Klikk «OK» for å lukke algoritmekonfigurasjonen.
  2. Klikk «Start» -knappen for å kjøre algoritmen på Ionosphere-datasettet.

Du kan se det med standardkonfigurasjonen at Vote oppnår en nøyaktighet på 64%. Åpenbart oppnådde denne teknikken dårlige resultater fordi bare ZeroR-undermodellen ble valgt.

5. Stacking

Stacked Generalization eller Stacking for short er en enkel utvidelse av stemmesemblene som kan brukes til problemer med klassifisering og regresjon.

I tillegg til å velge flere undermodeller, gir stabling deg å spesifisere en annen modell for å lære hvordan du best kombinerer spådommer fra undermodellene. Fordi en metamodell brukes til å best kombinere spådommer av undermodeller, kalles denne teknikken noen ganger blanding, som for å blande spådommer sammen.

Velg stablingsalgoritmen:

  1. Klikk på «Velg» -knappen og velg «Stabler» under «meta» -gruppen.
  2. Klikk på navnet på algoritmen for å se gjennom algoritmekonfigurasjonen.
Weka-konfigurasjon for stablingens ensemble-algoritme

Som med Vote-klassifisereren kan du spesifisere undermodellene i klassifiseringsparameteren. Modellen som vil bli opplært til å lære hvordan man best kombinerer spådommer fra undermodellen, kan spesifiseres i parameteren “metaClassifier”, som er satt til ZeroR som standard. Det er vanlig å bruke en lineær algoritme som lineær regresjon eller logistisk regresjon for henholdsvis regresjon og klassifiseringstypeproblemer. Dette er for å oppnå en utgang som er en enkel lineær kombinasjon av spådommene til undermodellene.

  1. Klikk «OK» for å lukke algoritmekonfigurasjonen.
  2. Klikk på «Start» -knappen for å kjøre algoritmen på Ionosphere-datasettet.

Du kan se at med standardkonfigurasjonen oppnår Stacking en nøyaktighet på 64%:

Weka-klassifiseringsresultater for stablingsensemble-algoritmen

Igjen , det samme som å stemme, oppnådde Stacking dårlige resultater fordi bare ZeroR-undermodellen ble valgt.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *