Funksjonsvalg i maskinlæring

Hei Habr!

Vi i Reksoft oversatte artikkelen til russisk Funksjonsvalg i maskinlæring. Vi håper det vil være nyttig for alle som er interessert i temaet.

I den virkelige verden er ikke data alltid så rene som bedriftskunder noen ganger tror. Dette er grunnen til at datautvinning og datakrangel er etterspurt. Det hjelper med å identifisere manglende verdier og mønstre i spørringsstrukturerte data som mennesker ikke kan identifisere. For å finne og bruke disse mønstrene til å forutsi resultater ved å bruke oppdagede relasjoner i dataene, kommer maskinlæring godt med.

For å forstå en hvilken som helst algoritme, må du se på alle variablene i dataene og finne ut hva disse variablene representerer. Dette er kritisk fordi begrunnelsen bak resultatene er basert på forståelse av dataene. Hvis dataene inneholder 5 eller til og med 50 variabler, kan du undersøke dem alle. Hva om det er 200 av dem? Da vil det rett og slett ikke være nok tid til å studere hver enkelt variabel. Noen algoritmer fungerer dessuten ikke for kategoriske data, og da må du konvertere alle de kategoriske kolonnene til kvantitative variabler (de kan se kvantitative ut, men beregningene vil vise at de er kategoriske) for å legge dem til modellen. Dermed øker antallet variabler, og det er omtrent 500. Hva skal jeg gjøre nå? Man skulle kanskje tro at svaret ville være å redusere dimensjonalitet. Algoritmer for dimensjonsreduksjon reduserer antall parametere, men har en negativ innvirkning på tolkbarheten. Hva om det er andre teknikker som eliminerer funksjoner og samtidig gjør de resterende enkle å forstå og tolke?

Avhengig av om analysen er basert på regresjon eller klassifisering, kan funksjonsvalgalgoritmene variere, men hovedideen for implementeringen deres forblir den samme.

Svært korrelerte variabler

Variabler som er sterkt korrelert med hverandre gir samme informasjon til modellen, så det er ikke nødvendig å bruke alle for analyse. For eksempel, hvis et datasett inneholder funksjonene "Online Time" og "Traffic Used", kan vi anta at de vil være noe korrelert, og vi vil se en sterk korrelasjon selv om vi velger et objektivt datautvalg. I dette tilfellet trengs bare én av disse variablene i modellen. Hvis du bruker begge, vil modellen være overmontert og skjev mot én bestemt funksjon.

P-verdier

I algoritmer som lineær regresjon er en innledende statistisk modell alltid en god idé. Det hjelper å vise viktigheten av funksjonene gjennom deres p-verdier som ble oppnådd av denne modellen. Etter å ha satt signifikansnivået, kontrollerer vi de resulterende p-verdiene, og hvis en verdi er under det spesifiserte signifikansnivået, blir denne funksjonen erklært signifikant, det vil si at en endring i verdien vil sannsynligvis føre til en endring i verdien av målet.

Direkte valg

Forovervalg er en teknikk som innebærer å bruke trinnvis regresjon. Modellbygging starter med en fullstendig null, det vil si en tom modell, og deretter legger hver iterasjon til en variabel som gjør en forbedring av modellen som bygges. Hvilken variabel som legges til modellen bestemmes av dens signifikans. Dette kan beregnes ved hjelp av ulike beregninger. Den vanligste måten er å bruke p-verdiene oppnådd i den opprinnelige statistiske modellen ved å bruke alle variabler. Noen ganger kan fremovervalg føre til overtilpasning av en modell fordi det kan være svært korrelerte variabler i modellen, selv om de gir samme informasjon til modellen (men modellen viser fortsatt forbedring).

Omvendt valg

Omvendt seleksjon innebærer også trinnvis eliminering av egenskaper, men i motsatt retning sammenlignet med seleksjon fremover. I dette tilfellet inkluderer den opprinnelige modellen alle uavhengige variabler. Variabler blir deretter eliminert (én per iterasjon) hvis de ikke bidrar med verdi til den nye regresjonsmodellen i hver iterasjon. Funksjonsekskludering er basert på p-verdiene til den opprinnelige modellen. Denne metoden har også usikkerhet ved fjerning av høyt korrelerte variabler.

Eliminering av rekursiv funksjon

RFE er en mye brukt teknikk/algoritme for å velge nøyaktig antall viktige funksjoner. Noen ganger brukes metoden til å forklare en rekke «viktigste» funksjoner som påvirker resultatene; og noen ganger for å redusere et veldig stort antall variabler (ca. 200-400), og bare de som gir minst et visst bidrag til modellen beholdes, og alle andre blir ekskludert. RFE bruker et rangeringssystem. Funksjonene i datasettet er tildelt rangeringer. Disse rangeringene brukes deretter til å rekursivt eliminere funksjoner basert på kolineariteten mellom dem og viktigheten av disse funksjonene i modellen. I tillegg til å rangere funksjoner, kan RFE vise om disse funksjonene er viktige eller ikke selv for et gitt antall funksjoner (fordi det er svært sannsynlig at det valgte antallet funksjoner kanskje ikke er optimalt, og det optimale antallet funksjoner kan være enten flere eller mindre enn det valgte tallet).

Viktighetsdiagram for funksjoner

Når vi snakker om tolkbarheten til maskinlæringsalgoritmer, diskuterer vi vanligvis lineære regresjoner (som lar deg analysere viktigheten av funksjoner ved å bruke p-verdier) og beslutningstrær (som bokstavelig talt viser viktigheten av funksjoner i form av et tre, og ved samtidig deres hierarki). På den annen side bruker algoritmer som Random Forest, LightGBM og XG Boost ofte et funksjonsviktighetsdiagram, det vil si at et diagram av variabler og "deres viktighetstall" plottes. Dette er spesielt nyttig når du trenger å gi en strukturert begrunnelse for viktigheten av attributter når det gjelder deres innvirkning på virksomheten.

Regulering

Regularisering gjøres for å kontrollere balansen mellom skjevhet og varians. Bias viser hvor mye modellen har overfittet på treningsdatasettet. Avviket viser hvor forskjellige spådommene var mellom trenings- og testdatasettene. Ideelt sett bør både skjevhet og varians være liten. Det er her regularisering kommer til unnsetning! Det er to hovedteknikker:

L1 Regularization - Lasso: Lasso straffer modellvekter for å endre deres betydning for modellen og kan til og med nullstille dem (dvs. fjerne disse variablene fra den endelige modellen). Vanligvis brukes Lasso når et datasett inneholder et stort antall variabler og du ønsker å ekskludere noen av dem for å bedre forstå hvordan viktige funksjoner påvirker modellen (det vil si de funksjonene som er valgt av Lasso og har blitt tildelt viktighet).

L2 Regularization - Ridge metode: Ridges jobb er å lagre alle variablene og samtidig tildele dem betydning basert på deres bidrag til modellens ytelse. Ridge vil være et godt valg hvis datasettet inneholder et lite antall variabler og alle er nødvendige for å tolke funnene og resultatene som er oppnådd.

Siden Ridge beholder alle variablene og Lasso gjør en bedre jobb med å fastslå deres betydning, ble det utviklet en algoritme som kombinerer de beste egenskapene til begge regulariseringene, kjent som Elastic-Net.

Det er mange flere måter å velge funksjoner for maskinlæring på, men hovedideen er alltid den samme: demonstrer viktigheten av variabler og eliminer deretter noen av dem basert på den resulterende viktigheten. Viktighet er et veldig subjektivt begrep, siden det ikke bare er ett, men et helt sett med beregninger og diagrammer som kan brukes til å finne nøkkelattributter.

Takk for at du leser! God læring!

Kilde: www.habr.com

Legg til en kommentar