Ensemble Learning in Python ved eksempel

Ensemble Learning in Python ved eksempel

Det er ingen hemmelighet at maskinlæring blir bedre med tiden og de prediktive modellene. Prediktive modeller danner kjernen i maskinlæring. Det er bra å forbedre nøyaktigheten av modellen for bedre resultater i maskinlæringsmodellen. En teknikk kalt "Ensemble Machine Learning" brukes for å øke ytelsen og nøyaktigheten til en modell.

Ensemble Learning bruker forskjellige modeller for maskinlæring for å prøve å komme med bedre spådommer på datasettet. En modells spådommer er kombinert i en ensemblemodell for å gjøre den endelige spådommen vellykket. Imidlertid er mange mennesker ikke kjent med ensemblemaskinlæring. Les under; Vi forklarer alt om denne maskinlæringsteknikken ved hjelp av Python med passende eksempler.

Anta at du deltar i et trivia -spill og har god kunnskap om noen emner, men du vet ikke noe andre få emner. Et teammedlem vil bli pålagt å dekke alle spillemnene hvis du ønsker å oppnå en maksimal poengsum i spillet. Det er den grunnleggende ideen bak ensemblelæring der vi kombinerer spådommene fra forskjellige modeller for nøyaktig produksjon.

Bildet viser et eksempel på skjemaer av et ensemble. I bildet over er inngangsarrayen fylt av tre forbehandlingsrørledninger, og det er baseelever. Alle ensembler kombinerer spådommene til baseelever i den endelige prediksjonsarrayen “P”.

Anta at du tenker på å kombinere alle spådommene. Hvis vi vurderer eksemplet ovenfor, er det enkelt å svare på når du har et team; Maskinlæring er det samme som klassifiseringsproblemene. I maskinlæring tar systemet en vanlig klassemerke som tilsvarer flertallsregelen. Imidlertid er det forskjellige måter å kombinere forskjellige spådommer på, og du kan bruke en modell for å lære å kombinere spådommene på riktig måte.

Hva er ensemblelæring?

Maskinlæring og statistikk sprer seg over hele verden, så vi trenger forskjellige teknikker for å øke en prediktiv modells ytelse for bedre nøyaktighet. Ensemblelæring er en prosedyre for å bruke forskjellige maskinlæringsmodeller og konstruere strategier for å løse et spesifikt problem.

Ensemblet kombinerer forskjellige sett med modeller for å improvisere prediktiv kraft og stabilitet. I følge ensemblebaserte modellene er det to forskjellige scenarier, i.e., en høyere eller lavere datamengde.

La oss forstå ensemblets læring ved å bruke et eksempel; Anta at vi ønsker å investere i "ABC" -firmaet, men vi er ikke sikre på resultatene. Så vi tar råd fra forskjellige mennesker om ytelsen til "ABC" -firmaet. Vi kan ta rådene fra:

Ansatte i "ABC" -firma: Ansatte i selskapet vet alt om selskapets interne funksjonalitet og all informasjonsinformasjon. Imidlertid mangler ansatte et bredere perspektiv på konkurransen, hvordan teknologien utvikler seg, og virkningene på "ABC" -firmaets produkt. I følge informasjonen og tidligere erfaringer er det å ha råd fra ansatte 65% ganger rett.

Finansielle rådgivere for "ABC" -firma: Finansielle rådgivere har et bredere perspektiv om konkurransemiljøet. Rådene fra finansrådgiveren for selskapet har imidlertid vært 75% ganger riktige tidligere.

Aksjemarkedshandlere: Disse handelsmennene observerer alltid selskapets aksjekurs, og de kjenner sesongens trender og samlede markedsresultater. De utvikler også en ivrig institusjon om variasjonen av aksjer over tid. Likevel har rådene fra aksjemarkedshandlere vært 70% ganger nyttige tidligere.

Ansatte i konkurrentens selskap: Disse ansatte kjenner de interne funksjonalitetene til en konkurrents selskap og er klar over de spesifikke endringene. Imidlertid har de ikke hvert syn av selskapet sitt og eksterne faktorer relatert til konkurrentens vekst. Likevel var ansatte i konkurrentens selskap 60% ganger i det siste.

Markedsundersøkelsesgruppe: Dette teamet jobber for å analysere kundepreferansene til "ABC" -firmaets produkt over konkurrentene. Dette teamet tar for seg kundesiden for å være uvitende om variasjonen "ABC" -firmaet vil bringe på grunn av tilpasningen til deres mål. Markedsundersøkelsesgruppen var imidlertid 75% ganger nyttig tidligere.

Ekspert team for sosiale medier: Dette teamet er gunstig for å forstå hvordan "ABC" -firmaets produkter er posisjonert i markedet. De analyserer også kundens følelser som endrer seg med selskapet over tid. Sosiale medier ekspertteam uvitende om informasjon utover digital markedsføring. Så de er 65% ganger i det siste.

I ovennevnte scenario har vi forskjellige aspekter ved å ta en god beslutning, da nøyaktighetsgraden kan være 99%. Forutsetningene vi har brukt ovenfor er imidlertid uavhengige og litt ekstreme fordi de forventes å være korrelert.

Ensemblemetoder

La oss nå diskutere fullstendig informasjon om de forskjellige teknikkene for ensemblelæring i Python:

Grunnleggende ensemblemetode

Det er tre typer teknikker i den grunnleggende ensemblemetoden, og de er:

Maks avstemning

Det viktigste arbeidet med maksimalt avstemning brukes til å løse klassifiseringsproblemer. Denne metoden har flere uavhengige modeller, og den individuelle produksjonen er kjent som "stemme". Flere modeller brukes til å forutsi hvert datapunkt. Klassen med en maksimal avstemning vil komme tilbake som en produksjon. Forutsigelsen som brukere får av flertallet av modellen vil bli brukt som en endelig spådom.

For eksempel har vi fem eksperter for å vurdere et produkt, de har gitt rangeringene som dette:

Ekspert 1 Ekspert 2 Ekspert 3 Ekspert 4 Ekspert 5 Endelig vurdering
4 5 4 5 4 4

Her er prøvekoden for eksemplet ovenfor:

Model1 = tre.DecisionTreeClassifier ()
Model2 = KneighborsClassifier ()
Model3 = LogisticRegression ()
Model1.Fit (X_Train, Y_Train)
Model2.Fit (X_Train, Y_Train)
Model3.Fit (X_Train, Y_Train)
Pred1 = Model1.forutsi (x_test)
Pred2 = Model2.forutsi (x_test)
Pred3 = Model3.forutsi (x_test)
final_pred = np.Array ([])
for i i rekkevidde (0, len (x_test)):
final_pred = np.vedlegg (final_pred, modus ([pred1 [i], pred2 [i], pred3 [i]]))

I eksemplet ovenfor er X_Train en uavhengig variabel av treningsdataene, og Y_Train er en målvariabel for treningsdataene. Her er x_train, x_test og y_test valideringssett.

Gjennomsnitt

Det er flere spådommer for hvert datapunkt i gjennomsnittet; det brukes til regresjonsproblemet. I denne teknikken finner vi et gjennomsnitt av flere spådommer fra de gitte modellene og bruker dette gjennomsnittet for å oppnå en endelig prediksjon.

Gjennomsnittsmetoden har uavhengige modeller som brukes til å finne gjennomsnittet av spådommene. Generelt er den kombinerte utgangen mer nøyaktig enn den enkelte utgang da variansen reduseres. Denne metoden brukes til å lage passende spådommer i regresjonsproblemet eller finne muligheten for klassifiseringsproblemet.

Hvis vi vurderer eksemplet ovenfor, vil gjennomsnittet av rangeringene være

Ekspert 1 Ekspert 2 Ekspert 3 Ekspert 4 Ekspert 5 Endelig vurdering
4 5 4 5 4 4

Gjennomsnitt av rangeringene = (4+5+4+5+4+4)/5 = 4.4

Eksempelkode for problemet ovenfor vil være:

Model1 = tre.DecisionTreeClassifier ()
Model2 = KneighborsClassifier ()
Model3 = LogisticRegression ()
Model1.Fit (X_Train, Y_Train)
Model2.Fit (X_Train, Y_Train)
Model3.Fit (X_Train, Y_Train)
Pred1 = Model1.PREATION_PROBA (X_TEST)
Pred2 = Model2.PREATION_PROBA (X_TEST)
Pred3 = Model3.PREATION_PROBA (X_TEST)
FinalPred = (Pred1+Pred2+Pred3)/3

Vektlagt gjennomsnitt

Denne metoden er en utvidet type av gjennomsnittlig metode da modeller tildeles forskjellige vekter som definerer viktigheten av hver modell for riktig prediksjon. For eksempel, hvis et team har to eksperter og to nybegynnere, vil viktigheten bli gitt til ekspertene i stedet for nybegynnere.

Resultatet av det vektede gjennomsnittet kan beregnes som [(5 × 0.24) + (4 × 0.24) + (5 × 0.19) + (4 × 0.19) + (4 × 0.19)] = 4.68.

Faktorer Ekspert 1 Ekspert 2 Ekspert 3 Ekspert 4 Ekspert 5 Endelig vurdering
vekt 0.24 0.24 0.19 0.19 0.19
vurdering 5 4 5 4 4 4.68

Eksempelkode for ovennevnte eksempel på vektet gjennomsnitt:

Model1 = tre.DecisionTreeClassifier ()
Model2 = KneighborsClassifier ()
Model3 = LogisticRegression ()
Model1.Fit (X_Train, Y_Train)
Model2.Fit (X_Train, Y_Train)
Model3.Fit (X_Train, Y_Train)
Pred1 = Model1.PREATION_PROBA (X_TEST)
Pred2 = Model2.PREATION_PROBA (X_TEST)
Pred3 = Model3.PREATION_PROBA (X_TEST)
finalpred = (pred1*0.3+pred2*0.3+pred3*0.4)

Avanserte ensemblemetoder

Stabling

Stablingsmetode, flere modeller som regresjon eller klassifisering kombineres gjennom en metamodell. Med andre ord, denne metoden bruker forskjellige spådommer fra forskjellige modeller for å bygge en ny modell. Alle basismodellene er ordentlig trent på datasettet, og deretter er en metamodell riktig opplært på funksjoner som returneres fra basismodeller. Derfor er en basismodell i stabling spesielt forskjellig, og metamodellen er gunstig for å finne funksjonene fra basismodellen for å oppnå stor nøyaktighet. Stabling har et spesifikt algoritmetrinn som nedenfor:

  • Først, tog et datasett i N -deler.
  • Basismodellen vil bli montert i N-1-delene, og spådommer er delt i den første delen. Det krever å bli utført for hver eneste del av et togsett.
  • Modellen vil bli montert på et komplett togdatasett, og denne modellen vil bli brukt til å forutsi et testdatasett.
  • Etter det vil prediksjonen på et togdatasett bli brukt som en funksjon for å lage en ny modell.
  • Endelig vil den endelige modellen bli brukt til å forutsi på et testdatasett.

Blanding

Blanding er den samme som stablingsmetoden, men den bruker et holdout -sett fra et togsett for å lage spådommer. Med enkle ord bruker Blending et valideringsdatasett og holder det atskilt for å gjøre spådommene i stedet for å bruke et komplett datasett for å trene en basismodell. Så her er de algoritmiske trinnene vi kan bruke i blandingen:

  • Først må vi dele opp treningsdatasett i forskjellige datasett som test, validering og treningsdatasett.
  • Pass på grunnmodellen med et treningsdatasett.
  • Etter det, forutsi test- og valideringsdatasettet.
  • Ovennevnte spådommer brukes som en funksjon for å bygge andre nivå-modellen.
  • Til slutt brukes den andre nivåmodellen for å lage spådommene på testen og metafunksjonen.

Pose

Bagging kalles også en bootstrapping -metode; den kombinerer resultater av forskjellige modeller for å oppnå generaliserte resultater. I denne metoden kjører en basismodell på posene eller undergruppene for å oppnå en rettferdig distribusjon av et komplett datasett. Disse posene er undergrupper av et datasett med erstatning for å lage størrelsen på en pose som ligner på et komplett datasett. Utgangen av sekking dannes når alle basemodellene er kombinert for utgangen. Det er en spesifikk algoritme for tigging som nedenfor:

  • Lag først forskjellige datasett fra et treningsdatasett ved å velge observasjoner med en erstatning.
  • Kjør basismodeller på hvert opprettede datasett uavhengig.
  • Til slutt kan du kombinere alle spådommene til basismodellen med hvert endelige resultat.

Boosting

Boosting Works for å forhindre at feil basemodell påvirker en endelig produksjon, i stedet for å kombinere en basismodell, øke fokusert på å lage en ny modell avhengig av en tidligere. Denne nye modellen fjerner alle tidligere modellers feil, og hver modell er kjent som en svak elev. Den endelige modellen kalles en sterk elev, skapt ved å få et vektet middel av de svake elevene. Det er en sekvensiell prosedyre der hver påfølgende modell fungerer for å rette opp feil i tidligere modeller. Følgende er de sekvensielle trinnene i algoritmen for å øke:

  • Først må du ta delmengden av et treningsdatasett og trene deretter basismodellen på datasettet.
  • Bruk nå den tredje modellen for å lage spådommer på et komplett datasett.
  • Etter det, beregne feilen med den forutsagte og faktiske verdien.
  • Når du beregner feilen, initialiser deretter datapunktet med samme vekt.
  • Nå, tilordne en høyere vekt til det feil forutsatte datapunktet.
  • Etter det, lag en ny modell ved å fjerne de tidligere feilene og komme med passende spådommer fra den nye modellen.
  • Vi må lage forskjellige modeller-hver påfølgende modell ved å korrigere feilene i de siste modellene.
  • Endelig er den sterke eleven eller den endelige modellen et vektet middel av den forrige eller svake eleven.

Konklusjon

Som avslutter vår detaljerte forklaring av ensemblelæring med passende eksempler i Python. Som vi har nevnt tidligere, har ensemblelæring flere spådommer, så med andre ord bruker vi flere modeller for å finne den mest nøyaktige produksjonen som mulig. Vi har nevnt typer ensemblelæring med eksempler og algoritmer av dem. Det er flere metoder for å finne ut resultatene ved hjelp av flere prediksjoner. I følge mange dataforskere tilbyr ensemblelæring mest mulig nøyaktig output som den bruker flere spådommer eller modeller.