Använda algoritmer för maskininlärning av ensemble i Weka

Ensemblealgoritmer är en kraftfull klass av maskininlärningsalgoritm som kombinerar förutsägelser från flera modeller. En fördel med att använda Weka för maskininlärning är tillgången på så många olika algoritmer för maskininlärning av ensembler.

Översikt över ensemblealgoritmer

Vi ska ta en rundtur i topp 5 ensemble maskininlärningsalgoritmer i Weka. Varje algoritm som kommer att täckas kommer att beskrivas kort i termer av hur den fungerar och de viktigaste algoritmparametrarna kommer att markeras såväl som algoritmen i sig skulle visas i Weka Explorer-gränssnittet.

De 5 algoritmerna som vi kommer att titta på är:

  1. Bagging
  2. Random Forest
  3. AdaBoost
  4. Röstning
  5. Stacking

Ett standardproblem för klassificering av maskininlärning kommer att användas för att demonstrera varje algoritm. Specifikt problem med binär klassificering av jonosfären. Detta är en bra dataset för att visa klassificeringsalgoritmer eftersom ingångsvariablerna är numeriska och alla har samma skala. Problemet har bara två klasser att diskriminera.

Varje instans beskriver egenskaperna hos radarreturer från atmosfären och uppgiften är att förutsäga huruvida det finns struktur i jonosfären eller inte. Det finns 34 numeriska ingångsvariabler i generellt samma skala. Du kan lära dig mer om denna dataset i UCI Machine Learning Repository . Toppresultaten är i storleksordningen 98% noggrannhet.

Starta Weka Explorer:

  1. Öppna Weka GUI Chooser.
  2. Klicka på ”Explorer” ”-Knappen för att öppna Weka Explorer.
  3. Ladda Ionosphere-datauppsättningen från data / ionosphere.arff -filen
  4. Klicka på” Klassificera ”för att öppna fliken Klassificera .

1. Bagging

Bootstrap Aggregation eller Bagging för kort är en ensemblealgoritm som kan användas för klassificering eller regression. Bootstrap är en statistisk uppskattningsteknik där en statistisk kvantitet som ett medelvärde uppskattas från flera slumpmässiga prover av dina data (med ersättning). Det är en användbar teknik när du har en begränsad mängd data och du är intresserad av en mer robust uppskattning av en statistisk kvantitet.

Detta exempelprincip kan användas med maskininlärningsmodeller. Flera slumpmässiga prover av dina träningsdata ritas med ersättning och används för att träna flera olika maskininlärningsmodeller. Varje modell används sedan för att göra en förutsägelse och resultaten beräknas i genomsnitt för att ge en mer robust förutsägelse.

Det används bäst med modeller som har låg förspänning och hög varians, vilket innebär att de förutsägelser de gör är mycket beroende av de specifika uppgifter som de utbildades från. Den mest använda algoritmen för påsar som passar detta krav med hög varians är beslutsträd.

Välj påsealgoritmen:

  1. Klicka på ”Välj” -knappen och välj ”Bagging” under gruppen ”meta”.
  2. Klicka på algoritmens namn för att granska algoritmkonfigurationen.
Weka Configuration for the Bagging Algorithm

En nyckelkonfigurationsparameter i bagging är typen av påse . Standard är REPTree som är Weka-implementeringen av ett standardbeslutsträd, även kallat ett Classification and Regression Tree eller CART för kort. Detta anges i klassificeringsparametern.

Storleken på varje slumpmässigt urval anges i ”bagSizePercent”, som är en storlek i procent av den råa träningsdataset. Standardvärdet är 100% vilket skapar ett nytt slumpmässigt urval av samma storlek som träningsdatasetet, men kommer att ha en annan sammansättning.

Detta beror på att slumpmässigt urval ritas med ersättning, vilket innebär att varje gång en instans dras slumpmässigt från träningsdatasetet och läggs till i provet, det läggs också tillbaka till träningsdatasetet, vilket innebär att det kan väljas igen och läggas till två eller flera gånger i provet.

Slutligen, antalet påsar (och antalet klassificeringsapparater) kan anges i parametern ”numIterations”. Standard är 10, även om det är vanligt att använda värden i hundratals eller tusentals. Fortsätt att öka värdet på ”numIterations” tills du inte längre ser en förbättring av modellen eller om du har slut på minne.

  1. Klicka på ”OK” för att stänga algoritmkonfigurationen.
  2. Klicka på ”Start” -knappen för att köra algoritmen i Ionosphere-datauppsättningen.

Du kan se att med standardkonfigurationen uppnår bagging en noggrannhet på 91%:

Weka-klassificeringsresultat för baggealgoritmen

2.Random Forest

Random Forest är en förlängning av påsar för beslutsträd som kan användas för klassificering eller regression. En baksida av påsade beslutsträd är att beslutsträd konstrueras med en girig algoritm som väljer den bästa delningspunkten vid varje steg i trädbyggnadsprocessen. Som sådant blir de resulterande träden mycket lika, vilket minskar varianterna av förutsägelserna från alla påsar, vilket i sin tur skadar robustheten i de förutsägelser som gjorts.

Slumpmässig skog är en förbättring av påsade beslutsträd som stör den giriga delningsalgoritmen under trädskapandet så att splitpunkter endast kan väljas från en slumpmässig delmängd av inmatningsattributen. Denna enkla förändring kan ha en stor effekt som minskar likheten mellan de säckade träden och i sin tur de resulterande förutsägelserna.

Välj den slumpmässiga skogsalgoritmen:

  1. Klicka på ”Välj” och välj ”RandomForest” under gruppen ”träd”.
  2. Klicka på algoritmens namn för att granska algoritmkonfigurationen.
Weka-konfiguration för slumpmässig skogsalgoritm

Förutom de angivna parametrarna ovan för påsar är en nyckelparameter för slumpmässig skog antalet attribut att beakta i varje delningspunkt. I Weka kan detta styras av attributet ”numFeatures”, som standard är 0, vilket automatiskt väljer värdet baserat på en tumregel.

  1. Klicka på ”OK” för att stänga algoritmkonfiguration.
  2. Klicka på ”Start” -knappen för att köra algoritmen i Ionosphere-datauppsättningen.

Du kan se att med standardkonfigurationen får slumpmässiga skogar en noggrannhet av 92%:

Weka-klassificeringsresultat för slumpmässig skogsalgoritm

3. AdaBoost

AdaBoost är en ensemble maskininlärningsalgoritm för klassificeringsproblem. Det är en del av en grupp ensemblemetoder som kallas boosting, som lägger till nya maskininlärningsmodeller i en serie där efterföljande modeller försöker fixa de förutsägelsesfel som gjorts av tidigare modeller. AdaBoost var den första framgångsrika implementeringen av denna typ av modell.

Adaboost designades för att använda korta beslutsträdsmodeller, var och en med en enda beslutspunkt. Sådana korta träd kallas ofta beslutsstubbar.

Den första modellen är konstruerad som vanligt. Varje instans i träningsdatasetet viktas och vikterna uppdateras baserat på modellens totala noggrannhet och om en instans klassificerades korrekt eller inte. Efterföljande modeller tränas och läggs till tills en minimal noggrannhet uppnås eller inga ytterligare förbättringar är möjliga. Varje modell vägs utifrån sin skicklighet och dessa vikter används när man kombinerar förutsägelser från alla modeller på nya data.

Välj AdaBoost-algoritmen:

  1. Klicka på ”Välj” -knappen och välj ”AdaBoostM1” under gruppen ”meta”.
  2. Klicka på algoritmens namn för att granska algoritmkonfigurationen.
Weka-konfiguration för AdaBoost-algoritmen

Den svaga eleven inom AdaBoost-modellen kan specificeras med klassificeringsparametern. Standard är beslutsstumpalgoritmen, men andra algoritmer kan användas. en nyckelparameter utöver den svaga eleven är antalet modeller som ska skapas och läggas till i serie. Detta kan anges i parametern ”numIterations” och är standardvärde 10.

  1. Klicka på ”OK” för att stänga algoritmkonfigurationen.
  2. Klicka på ”Start” -knappen för att köra algoritmen i Ionosphere-datauppsättningen.

Du kan se att AdaBoost med standardkonfigurationen uppnår en noggrannhet på 90%:

Weka-klassificeringsresultat för AdaBoost-algoritmen

4. Omröstning

Omröstning är kanske den enklaste ensemblealgoritmen och är ofta mycket effektiv. Den kan användas för klassificerings- eller regressionsproblem. Omröstning fungerar genom att skapa två eller flera undermodeller. Varje delmodell gör förutsägelser som kombineras på något sätt, till exempel genom att ta medelvärdet eller läget för förutsägelserna, så att varje delmodell kan rösta om vad resultatet ska bli.

Välj rösta algoritm:

  1. Klicka på knappen ”Välj” och välj ”Rösta” under gruppen ”meta.
  2. Klicka på algoritmens namn för att granska algoritmkonfigurationen.
Weka-konfiguration för röstensemblens algoritm

Nyckelparametern för en röstensemble är valet av undermodeller. Modeller kan specificeras i Weka i parametern “klassificerare”.Genom att klicka på den här parametern kan du lägga till ett antal klassificerare:

Weka Algorithm Selection for the Voting Ensemble Algorithm

Om du klickar på knappen ”Redigera” med en vald klassificerare kan du konfigurera detaljerna för den klassificeraren. Ett mål för att välja delmodeller är att välja modeller som gör helt olika förutsägelser (okorrelerade förutsägelser). Som sådan är det en bra tumregel att välja mycket olika modelltyper, såsom träd, instansbaserade metoder, funktioner och så vidare.

En annan nyckelparameter att konfigurera för omröstning är hur förutsägelserna för delmodeller kombineras. Detta styrs av parametern ”kombinationRule” som är inställd på att ta genomsnittet av sannolikheterna som standard.

  1. Klicka på ”OK” för att stänga algoritmkonfigurationen.
  2. Klicka ”Start” -knappen för att köra algoritmen i Ionosphere-datauppsättningen.

Du kan se det med standardkonfigurationen att Röst uppnår en noggrannhet på 64%. Uppenbarligen uppnådde denna teknik dåliga resultat eftersom endast ZeroR-undermodellen valdes.

5. Stapling

Staplad generalisering eller stapling för kort är en enkel förlängning av röstensembler som kan användas för klassificerings- och regressionsproblem.

Förutom att välja flera delmodeller, ger stapling dig för att specificera en annan modell för att lära sig hur man bäst kombinerar förutsägelser från delmodellerna. Eftersom en metamodell används för att bäst kombinera förutsägelser för undermodeller kallas denna teknik ibland blandning, som vid blandning av förutsägelser tillsammans.

Välj staplingsalgoritmen:

  1. Klicka på knappen ”Välj” och välj ”Stapling” under gruppen ”meta”.
  2. Klicka på algoritmens namn för att granska algoritmkonfigurationen.
Weka-konfiguration för staplingsensemble-algoritmen

Som med röstklassificeraren kan du ange undermodellerna i parametern klassificerare. Modellen som kommer att utbildas för att lära sig att bäst kombinera förutsägelser från undermodellen kan specificeras i parametern ”metaClassifier”, som är satt till ZeroR som standard. Det är vanligt att använda en linjär algoritm som linjär regression eller logistisk regression för regression respektive klassificeringsproblem. Detta för att uppnå en utdata som är en enkel linjär kombination av förutsägelserna för undermodellerna.

  1. Klicka på “OK” för att stänga algoritmkonfigurationen.
  2. Klicka på ”Start” -knappen för att köra algoritmen på Ionosphere-datasetet.

Du kan se att med standardkonfigurationen uppnår Stacking en noggrannhet på 64%:

Weka klassificeringsresultat för staplingsensemble-algoritmen

igen , samma som att rösta, Stacking uppnådde dåliga resultat eftersom endast ZeroR-undermodellen valdes.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *