Materialevalg i maskinlæring

Maskinlæring

Shaurya Lalwani

Follow

10. jul, 2020 – 7 min read

Foto af Louis Hansel @shotsoflouis på Unsplash

I den virkelige verden, er data ikke så rene, som de ofte antages at være. Det er der, hvor al datamining og datafinding kommer ind i billedet; at bygge indsigt ud af data, der er blevet struktureret ved hjælp af forespørgsler, og som nu sandsynligvis indeholder visse manglende værdier og udviser mulige mønstre, der ikke er synlige for det blotte øje. Det er her, maskinlæring kommer ind i billedet: At kontrollere for mønstre og gøre brug af disse mønstre til at forudsige resultater ved hjælp af disse nyligt forståede relationer i dataene.

For at forstå algoritmens dybde er man nødt til at læse variablerne i dataene igennem, og hvad disse variabler repræsenterer. Det er vigtigt at forstå dette, fordi man er nødt til at bevise sine resultater på baggrund af sin forståelse af dataene. Hvis dine data indeholder fem eller endda halvtreds variabler, lad os sige, at du er i stand til at gennemgå dem alle. Men hvad nu, hvis de indeholder 200 variabler? Du har ikke tid til at gennemgå hver enkelt variabel. Dertil kommer, at forskellige algoritmer ikke fungerer med kategoriske data, så du er nødt til at konvertere alle de kategoriske kolonner til kvantitative variabler (de ser kvantitative ud, men målingerne vil retfærdiggøre, at de er kategoriske), for at skubbe dem ind i modellen. Så dette øger antallet af variabler i dine data, og nu hænger du rundt med 500 variabler. Hvordan håndterer du dem? Du tror måske, at dimensionalitetsreduktion er svaret, lige med det samme. Dimensionalitetsreduktionsalgoritmer vil reducere dimensionerne, men fortolkningsmulighederne er ikke så gode. Hvad hvis jeg fortæller dig, at der findes andre teknikker, som kan fjerne funktioner, og det vil stadig være let at forstå og fortolke de bevarede funktioner?

Afhængigt af, om analysen er regressions- eller klassifikationsbaseret, kan teknikker til udvælgelse af funktioner være forskellige/variere, men den generelle idé om, hvordan den skal implementeres, forbliver den samme.

Her er nogle Feature Selection-teknikker til at tackle dette problem:

Variabler, der er stærkt korreleret med hinanden, giver den samme information til modellen, og derfor bliver det unødvendigt at inkludere dem alle i vores analyse. For eksempel: Hvis et datasæt indeholder en funktion “Browsing Time” og en anden kaldet “Data Used while Browsing”, kan man forestille sig, at disse to variabler vil være korreleret til en vis grad, og vi vil se denne høje korrelation, selv hvis vi tager en upartisk prøve af dataene. I et sådant tilfælde vil vi kun kræve, at en af disse variabler skal være til stede som en prædiktor i modellen, for hvis vi bruger begge variabler, vil modellen blive over-fit og blive skævvredet i retning af denne særlige funktion(er).

Foto af Akin Cakiner på Unsplash

P-Values

I algoritmer som lineær regression, er en indledende statistisk model altid en god idé, da den hjælper med at visualisere betydningen af funktioner ved hjælp af deres P-værdier, der er opnået ved hjælp af den pågældende model. Ved fastsættelse af et signifikansniveau kontrollerer vi de opnåede P-værdier, og hvis denne værdi er mindre end signifikansniveauet, viser det, at funktionen er signifikant, dvs. at en ændring i denne værdi sandsynligvis vil vise en ændring i værdien af målet.

Foto af Joshua Eckstein på Unsplash

Forward Selection

Forward Selection er en teknik, der indebærer anvendelse af trinvis regression. Modellen starter altså med at bygge fra nulpunktet, dvs. en tom model, og derefter tilføjes der for hver iteration en variabel, således at der sker en forbedring af den model, der bygges. Den variabel, der tilføjes i hver iteration, bestemmes ud fra dens signifikans, og den kan beregnes ved hjælp af forskellige målestokke, hvoraf en almindelig er den P-værdi, der opnås ved hjælp af en indledende statistisk model, der er opbygget med alle variablerne. Til tider kan Forward Selection forårsage en overtilpasning, fordi den kan tilføje stærkt korrelerede variabler til modellen, selv om de leverer de samme data til modellen (men modellen viser en forbedring).

Foto af Edu Grande på Unsplash

Backward Elimination

Backward Elimination indebærer også trinvis udvælgelse af funktioner, på en måde, der er modsat Forward Selection. I dette tilfælde starter den oprindelige model med alle de uafhængige variabler, og en efter en elimineres disse variabler (én pr. iteration), hvis de ikke giver værdi til den nyligt dannede regressionsmodel i hver iteration. Dette er igen baseret på de P-værdier, der er opnået ved hjælp af den oprindelige statistiske model, og på grundlag af disse P-værdier elimineres funktionerne fra modellen. Også ved anvendelse af denne metode er der en usikkerhed i forbindelse med fjernelsen af stærkt korrelerede variabler.

Foto af Markus Spiske på Unsplash

Recursive Feature Elimination (RFE)

RFE er en meget anvendt teknik/algoritme til at udvælge et nøjagtigt antal signifikante features, nogle gange for at forklare et bestemt antal “vigtigste” funktioner, der påvirker virksomheden, og nogle gange som en metode til at reducere et meget stort antal funktioner (f.eks. omkring 200-400) ned til kun dem, der skaber bare en smule indflydelse på modellen, og eliminere resten. RFE anvender et rangbaseret system til at vise rangeringen af funktionerne i datasættet, og disse rangeringer bruges til at fjerne funktionerne i en rekursiv sløjfe baseret på den kollinearitet, der er til stede mellem dem, og naturligvis på betydningen af disse funktioner i modellen. Ud over at rangordne funktionerne kan RFE vise, om disse funktioner er vigtige eller ej, selv for det valgte antal funktioner (fordi det er meget muligt, at det valgte antal, som vi har valgt, ikke repræsenterer det optimale antal vigtige funktioner, og at det optimale antal funktioner kan være mere eller mindre end det antal, som brugeren har valgt).

Foto af Andrew Seaman på Unsplash

Kortlagt Feature Importance

Når vi taler om fortolkeligheden af maskinlæringsalgoritmer, diskuterer vi normalt lineær regression (da vi kan analysere funktionernes betydning ved hjælp af P-værdierne) og beslutningstræer (som praktisk talt viser funktionernes betydning i form af et træ), som også viser hierarkiet af betydning), men på den anden side bruger vi ofte diagrammet over variabel betydning til at plotte variablerne og “størrelsen af deres betydning” i algoritmer som Random Forest Classifier, Light Gradient Boosting Machine og XG Boost. Dette er især nyttigt, når velstruktureret vigtighed af funktioner skal præsenteres for en virksomhed, der analyseres.

Foto af Robert Anasch på Unsplash

Regularisering

Regularisering sker for at overvåge afvejningen mellem bias og varians. Bias fortæller, hvor meget modellen har overfittet på træningsdatasættet. Variansen fortæller os, hvor forskellige forudsigelserne på trænings- og testdatasættene var. Ideelt set skal både bias og varians reduceres. Regularisering kommer til at redde dagen her! Der findes hovedsageligt to typer reguleringsteknikker:

L1 Regularisering – Lasso: Lasso straffer modellens betakoefficienter for at ændre deres betydning i modellen og kan endog gøre dem ubetydelige (gøre dem til nuller, dvs. i princippet fjerne disse variabler fra den endelige model). Generelt bruges Lasso, når du observerer, at dit datasæt har et stort antal variabler, og du har brug for at fjerne nogle af dem for at få en bedre forståelse af, hvordan de vigtige funktioner påvirker din model (dvs. de funktioner, der i sidste ende udvælges af Lasso, og deres betydning tildeles).

L2 Regularisering – Ridge: Funktionen af Ridge er at bevare alle variabler, dvs. at bruge alle variabler til at opbygge modellen, og samtidig tildele dem vigtighed, således at der sker en forbedring af modellens ydeevne. Ridge er et godt valg, når antallet af variabler i datasættet er lavt, og derfor er alle disse variabler nødvendige for at fortolke de opnåede indsigter og forudsagte målresultater.

Da Ridge bevarer alle variabler intakte, og Lasso gør et bedre stykke arbejde med at tildele variablerne betydning, blev der udviklet en kombination af begge, kendt som Elastic-Net, som en måde at udvikle en algoritme på, ved at kombinere de bedste egenskaber fra Ridge og Lasso. Elastic-Net bliver på den måde det ideelle valg.

Foto af Hunter Harritt på Unsplash

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.