Brug af ensemble-maskinlæringsalgoritmer i Weka

Ensemblealgoritmer er en stærk klasse af maskinlæringsalgoritme, der kombinerer forudsigelser fra flere modeller. En fordel ved at bruge Weka til maskinindlæring er tilgængeligheden af ​​så mange forskellige ensemble-maskinindlæringsalgoritmer.

Oversigt over ensemblealgoritmer

Vi skal tage en rundvisning på de 5 øverste ensemble maskinindlæringsalgoritmer i Weka. Hver algoritme, der vil blive dækket, vil blive beskrevet kort med hensyn til, hvordan den fungerer, og de vigtigste algoritmeparametre vil blive fremhævet, såvel som algoritmen i sig selv vil blive demonstreret i Weka Explorer-grænsefladen.

De 5 algoritmer, der vi vil se på er:

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

Et standardproblem med maskinindlæringsklassificering vil blive brugt til at demonstrere hver algoritme. Specifikt problemet med binær klassificering af ionosfæren. Dette er et godt datasæt til demonstration af klassificeringsalgoritmer, fordi inputvariablerne er numeriske og alle har samme skala. Problemet har kun to klasser at skelne mellem.

Hver instans beskriver egenskaberne for radarretur fra atmosfæren og opgaven er at forudsige, om der er struktur i ionosfæren eller ej. Der er 34 numeriske inputvariabler af generelt samme skala. Du kan lære mere om dette datasæt i UCI Machine Learning Repository . Topresultater er i størrelsesordenen med 98% nøjagtighed.

Start Weka Explorer:

  1. Åbn Weka GUI Chooser.
  2. Klik på “Explorer” ”-Knap for at åbne Weka Explorer.
  3. Indlæs Ionosphere-datasættet fra data / ionosphere.arff filen
  4. Klik på” Klassificer “for at åbne fanen Klassificer .

1. Bagging

Bootstrap Aggregation eller Bagging for kort er en ensemblealgoritme, der kan bruges til klassificering eller regression. Bootstrap er en statistisk estimeringsteknik, hvor en statistisk størrelse som et gennemsnit estimeres ud fra flere tilfældige prøver af dine data (med erstatning). Det er en nyttig teknik, når du har en begrænset mængde data, og du er interesseret i et mere robust skøn over en statistisk størrelse.

Dette eksempelprincip kan bruges med maskinlæringsmodeller. Flere tilfældige prøver af dine træningsdata tegnes med erstatning og bruges til at træne flere forskellige maskinlæringsmodeller. Hver model bruges derefter til at forudsige, og resultaterne beregnes i gennemsnit for at give en mere robust forudsigelse.

Det bruges bedst med modeller, der har en lav bias og en høj varians, hvilket betyder, at de forudsigelser, de laver er meget afhængige af de specifikke data, hvorfra de blev trænet. Den mest anvendte algoritme til sække, der passer til dette krav med høj varians, er beslutningstræer.

Vælg sagsalgoritmen:

  1. Klik på knappen “Vælg” og vælg “Sække” under gruppen “meta”.
  2. Klik på algoritmens navn for at gennemse algoritmekonfigurationen.
Weka Configuration for the Bagging Algorithm

En nøglekonfigurationsparameter i bagging er den type model, der taskes . Standard er REPTree, som er Weka-implementeringen af ​​et standardbeslutningstræ, også kaldet et klassifikations- og regressionstræ eller kort sagt CART. Dette er specificeret i klassificeringsparameteren.

Størrelsen af ​​hver tilfældig prøve er specificeret i “bagSizePercent”, som er en størrelse som en procentdel af det rå træningsdatasæt. Standard er 100%, hvilket skaber en ny tilfældig prøve i samme størrelse som træningsdatasættet, men vil have en anden sammensætning.

Dette skyldes, at den tilfældige prøve er tegnet med erstatning, hvilket betyder, at hver gang en instans er tilfældigt trukket fra træningsdatasættet og føjes til prøven, det føjes også tilbage til træningsdatasættet, hvilket betyder, at det kan vælges igen og føjes to eller flere gange til prøven.

Endelig, antallet af poser (og antallet af klassifikatorer) kan specificeres i parameteren “numIterations”. Standard er 10, selvom det er almindeligt at bruge værdier i hundreder eller tusinder. Fortsæt med at øge værdien af ​​”numIterations”, indtil du ikke længere ser en forbedring i modellen, eller hvis du løber tør for hukommelse.

  1. Klik på “OK” for at lukke algoritmekonfigurationen.
  2. Klik på knappen “Start” for at køre algoritmen på Ionosphere-datasættet.

Du kan se, at med standardkonfigurationen opnår bagging en nøjagtighed på 91%:

Weka-klassificeringsresultater for bagging-algoritmen

2.Random Forest

Random Forest er en udvidelse af sække til beslutningstræer, der kan bruges til klassificering eller regression. En underside af sækket beslutningstræer er, at beslutningstræer konstrueres ved hjælp af en grådig algoritme, der vælger det bedste splitpunkt ved hvert trin i træbygningsprocessen. Som sådan ender de resulterende træer meget ens, hvilket reducerer varianterne af forudsigelserne fra alle poserne, hvilket igen skader robustheden i de forudsagte forudsigelser.

Tilfældig skov er en forbedring på afsagte beslutningstræer, der forstyrrer den grådige opdelingsalgoritme under oprettelse af træ, så splitpunkter kun kan vælges fra en tilfældig delmængde af inputattributterne. Denne enkle ændring kan have stor indflydelse på at mindske ligheden mellem de sækkede træer og til gengæld de resulterende forudsigelser.

Vælg den tilfældige skovalgoritme:

  1. Klik på “Vælg” knappen og vælg “RandomForest” under gruppen “træer”.
  2. Klik på algoritmens navn for at gennemse algoritmekonfigurationen.
Weka-konfiguration til den tilfældige skovalgoritme

Ud over de anførte parametre ovenfor for bagging er en nøgleparameter for tilfældig skov antallet af attributter, der skal tages i betragtning i hvert splitpunkt. I Weka kan dette styres af attributten “numFeatures”, som som standard er sat til 0, som automatisk vælger værdien baseret på en tommelfingerregel.

  1. Klik på “OK” for at lukke algoritmekonfiguration.
  2. Klik på knappen “Start” for at køre algoritmen på Ionosphere-datasættet.

Du kan se, at tilfældige skove opnår en nøjagtighed med standardkonfigurationen af 92%:

Weka-klassifikationsresultater for den tilfældige skovalgoritme

3. AdaBoost

AdaBoost er en algoritme til maskinindlæring af ensembler til klassificeringsproblemer. Det er en del af en gruppe ensemblemetoder kaldet boosting, der tilføjer nye maskinlæringsmodeller i en serie, hvor efterfølgende modeller forsøger at rette forudsigelsesfejl fra tidligere modeller. AdaBoost var den første vellykkede implementering af denne type model.

Adaboost blev designet til at bruge korte beslutningstræmodeller, hver med et enkelt beslutningspunkt. Sådanne korte træer omtales ofte som beslutningsstubber.

Den første model er konstrueret som normalt. Hver instans i træningsdatasættet vægtes, og vægtene opdateres baseret på modelens samlede nøjagtighed, og om en instans blev klassificeret korrekt eller ej. Efterfølgende modeller trænes og tilføjes, indtil en minimal nøjagtighed er opnået, eller ingen yderligere forbedringer er mulige. Hver model vægtes på baggrund af dens dygtighed, og disse vægte bruges til at kombinere forudsigelser fra alle modeller på nye data.

Vælg AdaBoost-algoritmen:

  1. Klik på “Vælg” -knappen, og vælg “AdaBoostM1” under gruppen “meta”.
  2. Klik på navnet på algoritmen for at gennemgå algoritmekonfigurationen.
Weka-konfiguration til AdaBoost-algoritmen

Den svage lærer inden for AdaBoost-modellen kan specificeres ved hjælp af klassificeringsparameteren. Standard er beslutningsstumpalgoritmen, men andre algoritmer kan bruges. et nøgleparameter ud over den svage elev er antallet af modeller, der skal oprettes og tilføjes i serier. Dette kan specificeres i parameteren “numIterations” og er som standard 10.

  1. Klik på “OK” for at lukke algoritmekonfigurationen.
  2. Klik på knappen “Start” for at køre algoritmen på Ionosphere-datasættet.

Du kan se, at AdaBoost med standardkonfigurationen opnår en nøjagtighed på 90%:

Weka-klassificeringsresultater til AdaBoost-algoritmen

4. Afstemning

Afstemning er måske den enkleste ensemblealgoritme og er ofte meget effektiv. Det kan bruges til klassificerings- eller regressionsproblemer. Afstemning fungerer ved at oprette to eller flere undermodeller. Hver delmodel forudsiger forudsigelser, der kombineres på en eller anden måde, f.eks. Ved at tage gennemsnittet eller tilstanden af ​​forudsigelserne, så hver undermodel kan stemme om, hvad resultatet skal være.

Vælg afstemningen algoritme:

  1. Klik på knappen “Vælg” og vælg “Stem” under gruppen “meta”.
  2. Klik på algoritmens navn for at gennemgå algoritmekonfigurationen.
Weka-konfiguration til afstemningsensemble-algoritmen

Nøgleparameteren for et stemmeensemble er valget af undermodeller. Modeller kan specificeres i Weka i parameteren “klassifikatorer”.Ved at klikke på denne parameter kan du tilføje et antal klassifikatorer:

Weka Algorithm Selection for the Voting Ensemble Algorithm

Hvis du klikker på knappen “Rediger” med en valgt klassifikator, kan du konfigurere detaljerne for den klassifikator. Et mål med valg af undermodeller er at vælge modeller, der giver helt forskellige forudsigelser (ukorrelaterede forudsigelser). Som sådan er det en god tommelfingerregel at vælge meget forskellige modeltyper, såsom træer, instansbaserede metoder, funktioner og så videre.

En anden nøgleparameter, der skal konfigureres til afstemning, er, hvordan forudsigelserne for Undermodeller kombineres. Dette styres af parameteren “kombinationRule”, der er indstillet til at tage gennemsnittet af sandsynlighederne som standard.

  1. Klik på “OK” for at lukke algoritmekonfigurationen.
  2. Klik “Start” -knappen til at køre algoritmen på Ionosphere-datasættet.

Du kan se det med standardkonfigurationen, at Vote opnår en nøjagtighed på 64%. Denne teknik opnåede åbenbart dårlige resultater, fordi kun ZeroR-undermodellen blev valgt.

5. Stacking

Stacked Generalization eller Stacking for short er en simpel udvidelse til afstemningsensembler, der kan bruges til problemer med klassificering og regression.

Ud over at vælge flere undermodeller giver stabling dig at specificere en anden model for at lære, hvordan man bedst kombinerer forudsigelserne fra undermodellerne. Da en metamodel bruges til bedst at kombinere forudsigelser af undermodeller, kaldes denne teknik undertiden blanding, som ved blanding af forudsigelser sammen.

Vælg stablingsalgoritmen:

  1. Klik på knappen “Vælg”, og vælg “Stacking” under gruppen “meta”.
  2. Klik på algoritmens navn for at gennemgå algoritmekonfigurationen.
Weka-konfiguration til stacking ensemble-algoritmen

Som med Stemmeklassificereren kan du specificere undermodellerne i klassificeringsparameteren. Den model, der vil blive uddannet til at lære, hvordan man bedst kombinerer forudsigelser fra undermodellen, kan specificeres i parameteren “metaClassifier”, som er indstillet til ZeroR som standard. Det er almindeligt at bruge en lineær algoritme som lineær regression eller logistisk regression til henholdsvis regression og klassificeringstypeproblemer. Dette er for at opnå et output, der er en simpel lineær kombination af forudsigelserne for undermodellerne.

  1. Klik på “OK” for at lukke algoritmekonfigurationen.
  2. Klik på “Start” -knap for at køre algoritmen på Ionosphere-datasættet.

Du kan se, at Stacking med standardkonfigurationen opnår en nøjagtighed på 64%:

Weka-klassificeringsresultater for stablingsensemble-algoritmen

Igen , det samme som at stemme, Stacking opnåede dårlige resultater, fordi kun ZeroR-undermodellen blev valgt.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *