Ensemblelæringens magi

Hei Habr! Vi inviterer dataingeniører og maskinlæringsspesialister til en gratis demo-leksjon "Produksjon av ML-modeller til et industrielt miljø ved å bruke eksemplet med online anbefalinger". Vi publiserer også artikkelen Luca Monno - Head of Financial Analytics hos CDP SpA.

En av de mest nyttige og enkle maskinlæringsmetodene er Ensemble Learning. Ensemble Learning er metoden bak XGBoost, Bagging, Random Forest og mange andre algoritmer.

Det er mange flotte artikler om Towards Data Science, men jeg valgte to historier (første и andre) som jeg likte best. Så hvorfor skrive en annen artikkel om EL? Fordi jeg vil vise deg hvordan det fungerer med et enkelt eksempel, som fikk meg til å forstå at det ikke er noen magi her.

Da jeg først så EL i aksjon (arbeide med noen veldig enkle regresjonsmodeller) trodde jeg ikke mine egne øyne, og jeg husker fortsatt professoren som lærte meg denne metoden.

Jeg hadde to forskjellige modeller (to svake treningsalgoritmer) med metrikk utenfor prøven R² lik henholdsvis 0,90 og 0,93. Før jeg så på resultatet, tenkte jeg at jeg ville få en R² et sted mellom de to opprinnelige verdiene. Med andre ord trodde jeg at EL kunne brukes til å få en modell til å prestere ikke så dårlig som den dårligste modellen, men ikke så godt som den beste modellen kunne prestere.

Til min store overraskelse ga et gjennomsnitt av spådommene en R² på 0,95. 

Først begynte jeg å lete etter feilen, men så tenkte jeg at det kanskje skjuler seg noe magi her!

Hva er Ensemble Learning

Med EL kan du kombinere spådommene til to eller flere modeller for å produsere en mer robust og mer effektiv modell. Det finnes mange metoder for å jobbe med modellensembler. Her skal jeg berøre de to mest nyttige for å gi en oversikt.

Med regresjon det er mulig å snitte ytelsen til tilgjengelige modeller.

Med klassifisering Du kan gi modellene muligheten til å velge etiketter. Etiketten som ble valgt oftest er den som vil bli valgt av den nye modellen.

Hvorfor EL fungerer bedre

Hovedårsaken til at EL presterer bedre er at hver prediksjon har en feil (vi vet dette fra sannsynlighetsteori), å kombinere to prediksjoner kan bidra til å redusere feilen, og derfor forbedre ytelsesmålingene (RMSE, R², etc.). d.).

Følgende diagram viser hvordan to svake algoritmer fungerer på et datasett. Den første algoritmen har større helning enn nødvendig, mens den andre har nesten null (muligens på grunn av overregularisering). Men ensemble viser mye bedre resultater. 

Hvis du ser på R²-indikatoren, vil den for den første og andre treningsalgoritmen være lik henholdsvis -0.01¹, 0.22, mens den for ensemblet vil være lik 0.73.

Ensemblelæringens magi

Det er mange grunner til at en algoritme kan være en dårlig modell selv på et grunnleggende eksempel som dette: kanskje du bestemte deg for å bruke regularisering for å unngå overtilpasning, eller du bestemte deg for å ikke utelukke noen anomalier, eller kanskje du brukte polynomregresjon og tok feil grad (for eksempel brukte vi et polynom av andre grad, og testdataene viser en klar asymmetri som tredje grad ville være bedre egnet for).

Når EL fungerer bedre

La oss se på to læringsalgoritmer som arbeider med de samme dataene.

Ensemblelæringens magi

Her kan du se at det å kombinere de to modellene ikke forbedret ytelsen mye. Opprinnelig, for de to treningsalgoritmene, var R²-indikatorene lik henholdsvis -0,37 og 0,22, og for ensemblet viste det seg å være -0,04. Det vil si at EL-modellen mottok gjennomsnittsverdien av indikatorene.

Det er imidlertid en stor forskjell mellom disse to eksemplene: i det første eksemplet var modellfeilene negativt korrelert, og i det andre var de positivt korrelert (koeffisientene til de tre modellene ble ikke estimert, men ble ganske enkelt valgt av forfatter som et eksempel.)

Derfor kan Ensemble Learning brukes til å forbedre bias/variansbalansen uansett, men når Modellfeil er ikke positivt korrelert, bruk av EL kan føre til forbedret ytelse.

Homogene og heterogene modeller

Svært ofte brukes EL på homogene modeller (som i dette eksempelet eller tilfeldig skog), men faktisk kan du kombinere forskjellige modeller (lineær regresjon + nevralt nettverk + XGBoost) med forskjellige sett med forklaringsvariabler. Dette vil sannsynligvis resultere i ukorrelerte feil og forbedret ytelse.

Sammenligning med porteføljediversifisering

EL fungerer på samme måte som diversifisering i porteføljeteori, men desto bedre for oss. 

Når du diversifiserer, prøver du å redusere variansen i ytelsen din ved å investere i ukorrelerte aksjer. En godt diversifisert portefølje av aksjer vil gi bedre resultater enn den dårligste enkeltaksjen, men aldri bedre enn den beste.

For å sitere Warren Buffett: 

"Diversifisering er et forsvar mot uvitenhet; for noen som ikke vet hva han gjør, gir [diversifisering] veldig lite mening."

I maskinlæring hjelper EL med å redusere variansen til modellen din, men det kan resultere i en modell med generell ytelse som er bedre enn den beste originalmodellen.

Oppsummere

Å kombinere flere modeller til én er en relativt enkel teknikk som kan føre til å løse problemet med variansbias og forbedre ytelsen.

Hvis du har to eller flere modeller som fungerer bra, ikke velg mellom dem: bruk dem alle (men med forsiktighet)!

Interessert i å utvikle seg i denne retningen? Registrer deg for en gratis demo-leksjon "Produksjon av ML-modeller til et industrielt miljø ved å bruke eksemplet med online anbefalinger" og delta i nettmøte med Andrey Kuznetsov — Maskinlæringsingeniør i Mail.ru Group.

Kilde: www.habr.com

Legg til en kommentar