machine learning robot

Machine Learning – Gør din data klar ved 5 simple steps

Selvom vi, gennem machine learning, lærer computeren at lære selv, spiller menneskelig vejledning en stor rolle. Faktisk siger man, at omkring 80% af et machine learning-projekt går med at rense og organisere data. Der er mange ting man skal være opmærksom på, og tage stilling til, for at kunne omdanne sine datamængder til brugbar viden.

I denne guide får du 5 simple steps til at forsimple forarbejdet, så du hurtigere kan komme i gang med dit eget machine learning-projekt.

Hvad er machine learning?

Machine learning er en data-analyse-metode, som automatiserer genereringen af analytiske modeller, som fx kan bruges til at tage beslutninger eller til lave forudsigelser. Metoden udspringer fra Artificial Intelligence og er baseret på idéen om, at maskinen skal kunne lære at tilpasse sig gennem erfaring, og uden at blive hardcoded.
Machine learning er bygget op omkring statistik og sandsynligheder, og det kan måske føles uoverskueligt at skulle forstå al den bagvedliggende matematik. I dag er de fleste algoritmer dog allerede indbygget som ”pakker” i diverse programmeringssprog som fx Python, R og SAS. Dette gør det lettere for programmører, der ikke nødvendigvis har matematiske- og statistiske evner, at benytte machine learning.

5 simple steps til at forsimple forarbejdet 

1: Skab overblik og forståelse for dine data

Vi indsamler data som aldrig før, og alligevel er de fleste datasæt mangelfulde, eller ikke kontinuerligt opdaterede. Det er derfor vigtigt, at danne sig et overblik og få en forståelse for sit data. For at forstå – og kritisk vurdere – resultatet af ens fremtidige machine learning model, er man også nødt til at vide hvilke data man gav modellen til at starte med. Det kan fx være en god idé at lave visualiseringer af ens kolonner i datasættet, kigge på korrelation mellem disse, eller lave histogrammer for at se, om data er normalfordelt.

2: Rens dine data

Inden for machine learning bruges analogien ”Better data beats fancier algorithms”, hvilket kort sagt betyder, at man kan komme rigtig langt ved grundigt at forberede og strømline ens data. Det kan være en god idé at undersøge datasættet for dubletter og irrelevant data, manglende data eller strukturfejl såsom slåfejl eller inkonsistens. Man skal også tage stilling til, hvordan man fx ønsker at tilgå ”missing data”, da de fleste algoritmer ikke accepterer NULL og NAN værdier. Man kan fx vælge helt at droppe rækker hvor der optræder manglende data, eller man kan prøve at beregne en ny værdi ud fra de andre observationer i datasættet.

 

Better data beats fancier algorithms

3: Tilpas/organisér datarækker

For at hjælpe computeren med at ”fokusere” på vigtige aspekter i ens data, kan man have brug for at lave nye variable. Man kan fx kombinere informationer, så det bliver mere brugbart eller samle ting, som faktisk er det samme. Derudover har de fleste algoritmer svært ved at forstå tekst og symboler. Derfor skal man tage stilling til, hvordan man vil bearbejde den slags data. Her findes der metoder som “Dummy variable”, ”BagOfWords” og ”Word2Vec” for at nævne nogle få.

I forhold til step 2 og 3, er det altid en god idé at tracke hvordan man manipulerer sit datasæt, så man ikke pludselig har fået genereret det man ønskede, og ikke hvad det oprindelige datasæt indeholdte. Dette kan fx trackes ved at føre en log.

4: Vælg den rigtige machine learning algoritme

Det er vigtigt at tage stilling til hvilken metode og hvilke algoritmer, der bedst passer til ens problem. Inden for machine learning kigger man oftest på supervised- og unsupervised learning.
Supervised learning handler om at træne en model på baggrund af historisk data. Algoritmen bliver præsenteret for input data, men også for det ønskede output (sandheden). Målet er derefter for algoritmen at lære de generelle sammenhænge, som kortlægger input til output. Det kunne fx være om en ny mail skal klassificeres som ”spam” eller ”ikke-spam” baseret på tidligere kategoriseringer.
Unsupervised learning kræver derimod ingen menneskelig ”vejledning” og her vil computeren selv gruppere data i forskellige klasser, hvor hver klasse repræsenterer et fundet mønster.

Det er ikke unormalt at skulle gennem flere algoritmer for at se, hvilken der resulterer i den bedste model for ens datasæt. Du kan få et overblik over de mest brugte algoritmer her.

5: Træn din machine learning model

Det er algoritmen, der bygger en model ud fra det data den har fået. Den ”matcher” så at sige, data så godt den kan. For at kunne lave den bedste model, skal ens valgte algoritme trænes.

For supervised learning splitter man det “kendte” data i et trænings- og et testsæt (Her kan man bruge 80-20 reglen, så 80% er træningsdata og 20% er testdata). Man kører algoritmen på træningssættet (hvor “sandheden” er fjernet), og evaluerer derefter i forhold til “sandheden”. Når en tilfredsstillende model er fundet, afprøves denne på testsættet, for at se, hvordan den performer generelt. Testsæt-undersøgelsen skal undgå at modellen er tilpasset for meget til træningssættet. Husk, at en machine learning-model vurderes ud fra evnen til at kategorisere nyt, uset data. “Overfitting” sker, når modellen er blevet for detaljeret i forhold til træningssættet, og mister fokus for de underliggende mønstre. Dette medfører en dårligere performance på nyt data.

For unsupervised learning skal man fortælle algoritmen, hvor mange inddelinger man ønsker af sit data. Man kan prøve med forskellige antal, og se hvad der giver bedst mening.

Når du har lavet modellen (ud fra algoritmen) er der ikke flere skridt. Du er i mål. Du har en model, du tror på, og som bedst forudsiger dit data.

Machine Learning as a Service

Den skuffede læser har måske bemærket, at jeg ikke gik i dybden med selve machine learningen i dette oplæg. Her findes der rigtig mange gode online tutorials og videoer (fx denne), som beskriver machine learning algoritmer mere detaljeret. Jeg håber alligevel, at du er blevet klogere på det arbejde, der ligger forud for analysen. Måske har du endda fået mod på at engagere din virksomhed i et machine learning-projekt.

Hvis du er interesseret i at læse mere om, hvilke tiltag der bliver gjort for at gøre det endnu lettere at benytte machine learning, vil jeg anbefale dig at læse min kollega, Michaels, indlæg om Machine learning as a Service.

Sidsel Sørensen arbejder som Data Scientist for Visma Consulting i DABAI projektet - 'Machine Learnin as a Service'. Sidsel har 1 års erfaring som konsulent, og har arbejdet på DABAI projektet siden maj 2017. Sidsel er uddannet civilingeniør i Matematisk Modellering og Beregning fra DTU.