Funktionsvalg i maskinlæring

Hej Habr!

Vi hos Reksoft har oversat artiklen til russisk Funktionsvalg i Machine Learning. Vi håber, at det vil være nyttigt for alle, der er interesserede i emnet.

I den virkelige verden er data ikke altid så rene, som erhvervskunder nogle gange tror. Det er grunden til, at datamining og datastrid er efterspurgt. Det hjælper med at identificere manglende værdier og mønstre i forespørgselsstrukturerede data, som mennesker ikke kan identificere. For at finde og bruge disse mønstre til at forudsige resultater ved hjælp af opdagede relationer i dataene, er maskinlæring praktisk.

For at forstå enhver algoritme skal du se på alle variablerne i dataene og finde ud af, hvad disse variabler repræsenterer. Dette er kritisk, fordi rationalet bag resultaterne er baseret på forståelse af dataene. Hvis dataene indeholder 5 eller endda 50 variabler, kan du undersøge dem alle. Hvad hvis der er 200 af dem? Så vil der simpelthen ikke være tid nok til at studere hver enkelt variabel. Desuden virker nogle algoritmer ikke for kategoriske data, og så bliver du nødt til at konvertere alle de kategoriske kolonner til kvantitative variable (de kan se kvantitative ud, men metrikken vil vise, at de er kategoriske) for at tilføje dem til modellen. Således stiger antallet af variable, og dem er der omkring 500. Hvad skal man gøre nu? Man kunne tro, at svaret ville være at reducere dimensionalitet. Dimensionalitetsreduktionsalgoritmer reducerer antallet af parametre, men har en negativ indvirkning på fortolkbarheden. Hvad hvis der er andre teknikker, der eliminerer funktioner og samtidig gør de resterende lette at forstå og fortolke?

Afhængigt af om analysen er baseret på regression eller klassificering, kan funktionsvalgalgoritmerne variere, men hovedideen om deres implementering forbliver den samme.

Højt korrelerede variabler

Variabler, der er meget korrelerede med hinanden, giver den samme information til modellen, så der er ingen grund til at bruge dem alle til analyse. For eksempel, hvis et datasæt indeholder funktionerne "Online Time" og "Traffic Used", kan vi antage, at de vil være nogenlunde korrelerede, og vi vil se en stærk korrelation, selvom vi vælger en upartisk dataprøve. I dette tilfælde er der kun behov for én af disse variable i modellen. Hvis du bruger begge, vil modellen være overmonteret og skævt til en bestemt funktion.

P-værdier

I algoritmer som lineær regression er en indledende statistisk model altid en god idé. Det hjælper med at vise vigtigheden af ​​funktionerne gennem deres p-værdier, som blev opnået med denne model. Efter at have indstillet signifikansniveauet kontrollerer vi de resulterende p-værdier, og hvis en værdi er under det angivne signifikansniveau, er denne funktion erklæret signifikant, det vil sige, at en ændring i dens værdi sandsynligvis vil føre til en ændring i værdien af målet.

Direkte valg

Fremadvalg er en teknik, der involverer anvendelse af trinvis regression. Modelbygning starter med et komplet nul, det vil sige en tom model, og derefter tilføjer hver iteration en variabel, der gør en forbedring af den model, der bygges. Hvilken variabel, der tilføjes til modellen, bestemmes af dens betydning. Dette kan beregnes ved hjælp af forskellige metrics. Den mest almindelige måde er at bruge p-værdierne opnået i den oprindelige statistiske model ved at bruge alle variabler. Nogle gange kan fremadvalg føre til overtilpasning af en model, fordi der kan være meget korrelerede variabler i modellen, selvom de giver den samme information til modellen (men modellen viser stadig forbedring).

Omvendt valg

Omvendt selektion involverer også trin-for-trin eliminering af træk, men i den modsatte retning sammenlignet med fremad selektion. I dette tilfælde inkluderer den indledende model alle uafhængige variable. Variabler elimineres derefter (én per iteration), hvis de ikke bidrager med værdi til den nye regressionsmodel i hver iteration. Funktionsudelukkelse er baseret på p-værdierne for den indledende model. Denne metode har også usikkerhed ved fjernelse af stærkt korrelerede variable.

Rekursiv egenskabeliminering

RFE er en meget brugt teknik/algoritme til at vælge det nøjagtige antal væsentlige funktioner. Nogle gange bruges metoden til at forklare en række "vigtigste" egenskaber, der påvirker resultaterne; og nogle gange for at reducere et meget stort antal variable (ca. 200-400), og kun dem, der i det mindste bidrager til modellen, bibeholdes, og alle andre udelukkes. RFE bruger et rangordningssystem. Funktionerne i datasættet er tildelt rækker. Disse rækker bruges derefter til rekursivt at eliminere funktioner baseret på kolineariteten mellem dem og vigtigheden af ​​disse funktioner i modellen. Udover at rangere funktioner, kan RFE vise, om disse funktioner er vigtige eller ej selv for et givet antal funktioner (fordi det er meget sandsynligt, at det valgte antal funktioner muligvis ikke er optimalt, og det optimale antal funktioner kan være enten flere eller mindre end det valgte tal).

Funktions betydningsdiagram

Når vi taler om fortolkningsmuligheden af ​​maskinlæringsalgoritmer, diskuterer vi normalt lineære regressioner (som giver dig mulighed for at analysere vigtigheden af ​​funktioner ved hjælp af p-værdier) og beslutningstræer (bogstaveligt talt viser vigtigheden af ​​funktioner i form af et træ, og ved samtidig deres hierarki). På den anden side bruger algoritmer som Random Forest, LightGBM og XG Boost ofte et funktionsvigtighedsdiagram, det vil sige, at et diagram over variabler og "deres vigtighedstal" plottes. Dette er især nyttigt, når du skal give et struktureret rationale for vigtigheden af ​​attributter med hensyn til deres indvirkning på virksomheden.

Regulering

Regularisering udføres for at kontrollere balancen mellem bias og varians. Bias viser, hvor meget modellen har overfittet på træningsdatasættet. Afvigelsen viser, hvor forskellige forudsigelserne var mellem trænings- og testdatasættene. Ideelt set bør både bias og varians være lille. Det er her regularisering kommer til undsætning! Der er to hovedteknikker:

L1 Regularisering - Lasso: Lasso straffer modelvægte for at ændre deres betydning for modellen og kan endda nulstille dem (dvs. fjerne disse variabler fra den endelige model). Typisk bruges Lasso, når et datasæt indeholder et stort antal variabler, og du ønsker at udelukke nogle af dem for bedre at forstå, hvor vigtige funktioner påvirker modellen (det vil sige de funktioner, der er udvalgt af Lasso og er blevet tildelt betydning).

L2 Regularisering - Ridge metode: Ridges opgave er at gemme alle variablerne og samtidig tildele dem betydning baseret på deres bidrag til modellens ydeevne. Ridge vil være et godt valg, hvis datasættet indeholder et lille antal variable, og alle er nødvendige for at fortolke de opnåede resultater og resultater.

Da Ridge beholder alle variablerne, og Lasso gør et bedre stykke arbejde med at fastslå deres betydning, blev der udviklet en algoritme, der kombinerer de bedste funktioner fra begge regulariseringer, kendt som Elastic-Net.

Der er mange flere måder at vælge funktioner til maskinlæring på, men hovedideen er altid den samme: demonstrer vigtigheden af ​​variabler og fjern derefter nogle af dem baseret på den resulterende betydning. Vigtigt er et meget subjektivt udtryk, da det ikke kun er én, men et helt sæt af metrikker og diagrammer, der kan bruges til at finde nøgleattributter.

Tak fordi du læste! God læring!

Kilde: www.habr.com

Tilføj en kommentar