23-06-2018 09:59:14

Data science på konkurrenceform

På platformen Kaggle kæmper dataanalytikere, programmører og matematikere over hele verden om at udvikle de bedste modeller - men hvordan gør de?
12. jan. 2016 Af David Kofoed Wind - PhD-studerende på DTU Compute og CEO i Peegrade.io

En ny trend inden for dataanalyse og statistisk modellering er brugen af konkurrencer til at udvikle og finde de bedste modeller og metoder til at løse konkrete problemer. Denne måde at arbejde på blev populært med Netflix-konkurrencen, hvor dataanalytikere over hele verden forsøgte at forbedre Netflix egen algoritme til at foreslå film til brugerne. Det første hold der kunne forbedre den eksisterende model med 10% ville modtage én million dollars. Siden har platformen Kaggle været centrum for hundredevis af lignende konkurrencer, hvor brugerne forsøge at forudsige shoppingmønstre, estimere sandsynligheden for regnvejr og klassificere plankton i dybhavsbilleder.

En konkurrence på Kaggle foregår ved, at arrangøren definerer et konkret problem omkring forudsigelse indenfor statistisk modellering og frigiver et datasæt til deltagerne. Ved at konstruere forskellige statistiske modeller forsøger brugerne at løse forudsigelsesproblemet. For eksempel kunne opgaven være at forudsige prisen på en række aktier, og dataen ville være historisk opførsel af andre aktier. Når brugerne har lavet deres statistiske modeller indsender de deres forudsigelser til Kaggle, som derefter evaluerer dem i forhold til en mængde tilbageholdt hemmelig data (testdataen). Den bruger, der kommer tættest på den rigtige data, vinder en pengepræmie.

“Kaggle recently hosted a bioinformatics contest, which required participants to pick markers in a series of HIV genetic sequences that correlate with a change in viral load (a measure of the severity of infection). Within a week and a half, the best submission had already outdone the best methods in the scientific literature.”

 - Anthony Goldbloom, Founder and CEO at Kaggle

I forbindelse med mit kandidatspeciale, der omhandlede Kaggle-konkurrencer, var jeg i kontakt med en lang række af de mest succesfulde brugere på Kaggle for at høre, hvad deres strategi er for at vinde. Her er nogle af deres vigtigste råd.

Feature engineering er ofte det vigtigste

Ved hjælp af cloud-løsninger og open-source biblioteker til dataanalyse er det i dag muligt for alle at få adgang til avanceret statistisk software. En konsekvens af dette er, at man for at differentiere sig skal kunne mere end bare at træne store avancerede modeller. I de fleste konkurrencer er vinderen den, som har været i stand til at finde, konstruere og udtrække de bedste features fra dataen.

The features you use influence more than everything else the result. No algorithm alone, to my knowledge, can supplement the information gain given by correct feature engineering.

- Luca Massaron (

Som et (måske lidt for) simpelt eksempel på feature engineering kunne man forestille sig, at man er interesseret i at bygge en model til at forudsige huspriser. Dataen, man har for et nyt hus, er bredden på husets grundplan, længden på husets grundplan og antallet af etager. Ved blot at proppe disse tre faktorer/features ind i en statistisk model, er det ikke sikkert, at den performer sit bedste. De fleste mennesker ved dog, at antallet af kvadratmeter er vigtigt for prisen på et hus, så det er er fornuftigt at lave en ny feature (antal kvadratmeter) som er længden på grundplanen, gange højden på grundplanen, gange antallet af etager.

Man kommer langt med simple modeller

Når man, efter en konkurrence er overstået, kigger igennem de vindende løsninger for at se, hvor man kunne have forbedret sig, så bliver man ofte overrasket over, at de vindende løsninger er simplere end ens egen.

I think beginners sometimes just start to “throw” algorithms at a problem without first getting to know the data. I also think that beginners sometimes also go too-complex-too-soon. There is a view among some people that you are smarter if you create something really complex. I “try” to follow Albert Einsteins advice when he said, “Any intelligent fool can make things bigger and more complex. It takes a touch of genius – and a lot of courage – to move in the opposite direction”.

My first few submissions are usually just “baseline” submissions of extremely simple models – like “guess the average” or “guess the average segmented by variable X”. These are simply to establish what is possible with very simple models. You’d be surprised that you can sometimes come very close to the score of someone doing something very complex by just using a simple model.

 - Steve Donoho

Det er vigtigt, at man starter med en simpel model, og bruger tiden på at undersøge og forstå dataen inden man kaster sig ud i en mere kompleks model.

Ensembling er en vindende strategi

Et populært trick blandt vindende løsninger på Kaggle er at kombinere en lang række modeller til én samlet model (dette kaldes model ensembling). Ideen er, at hvis man tager gennemsnittet af forudsigelserne fra flere simple modeller, så får man for det meste et resultat, der er bedre, end hvis man blot tager forudsigelsen fra den bedste enkelte model (det kan ses som en slags statistisk version af demokrati).

Ensembling is a no-brainer. You should do it in every competition since it usually improves your score. However, for me it is usually the last thing I do in a competition and I don’t spend too much time on it.

 - Josef Feigl

Lær fra andre og kom i gang!

Det råd, som alle Kaggle-mestre er mest enige om, er, at den bedste måde at vinde på er at læse løsninger fra andre vindere på Kaggle’s forum. Efter hver konkurrence beskriver de fleste deltagere (deriblandt vinderne) hvordan, de greb problemet an og hvad der fik deres modeller til at virke (eller ikke virke). Det sidste råd er bare at komme i gang med Kaggle - der er rigeligt med intro-konkurrencer, hvor man kan lære de fundamentale aspekter og der er masser af hjælp at hente fra de andre deltagere. Held og lykke!


Mød artiklens forfatter, Kaggle aktivist, David Kofoed Wind den 8. februar til arrangementet Big-data: Her er de metoder og eksempler, du mangler.


Deltag i debatten

Fremtidsteknologi

luk
close