Gegroet Dataridders,
In dit artikel zal ik de 3 lessen delen die ik geleerd heb bij het uitvoeren van de 3 actieve Getting Started wedstrijden/projecten op Kaggle. In volgorde van uitvoeren:
Let’s get started!
Les 1: Als je er een kan, dan kan je ze allemaal.
Mijn machine learning cursus eindproject heeft mij wekenlang zoet gehouden. Maar, mijn eerste Kaggle project was al klaar binnen een aantal uurtjes. De volgende twee projecten waren ook klaar binnen een dagje of twee.
Daarmee heb ik dan op Kaggle een project gedaan met classificatie, een met image recognition en een met regressie voor een dataset met 80 variabelen. Het proces was vrij vergelijkbaar voor alle drie. Verrassend vergelijkbaar.
Waren er uitdagingen? Ja. Was het moeilijk? Niet echt. Tuurlijk, er waren obstakels, maar het was slechts een kwestie van trial, error en Google search en de oplossingen waren redelijk snel gevonden.
Natuurlijk wil ik niet beweren dat alle machine learning technieken makkelijk zijn. Maar volgens mij zit de moeilijkheid niet zozeer in het maken van een model, maar in het maken van een optimaal model.
Les 2: Goede scores halen hoeft niet veel tijd te kosten.
Zoals ik al zei had ik er niet lang over gedaan om mijn projecten op Kaggle af te ronden. Waarom? Ik probeerde geen topscores te behalen. Het was slechts mijn doel om EEN score te halen. En dus trainde ik gewoon mijn modellen met zo weinig mogelijk data cleaning en feature engineering.
Het resultaat?
Verrassend goed! Oke, ik heb geen topscores behaald. Bij mijn eerste wedstrijd haalde ik de top 80 procent en de overige twee zat ik net onder de top 50 procent.
Dat klinkt vrij niet al te indrukwekkend, maar de modelprestaties van die modellen lagen allemaal vrij dicht bij de topscores. Mijn Titanic model haalde 75 procent accuraatheid, terwijl de hoogste realistische score zo’n 80 procent zou bedragen volgens de discussie pagina’s. Mijn image recognition model haalde 98 procent.
Een minimale inzet model doet dus niet veel onder voor een top tier model. Dit komt omdat de algoritmes het meeste werk al voor je doen. Lekker makkelijk!
Les 3: Kaggle succes kan misleidend zijn.
Bij elke van de 3 leaderboards zijn er mensen die een accuraatheid van 100 procent of een foutpercentage van (bijna) 0 procent gehaald hebben. Echter, dit zijn geen realistische scores voor een voorspellend model.
Hoe kan dit dan?
Vals spelen. Deze mensen hebben hun model simpelweg getraind op de gehele dataset en het vervolgens ook nog eens drastisch overfit. Vergelijk het met het uit je hoofd leren van de antwoorden voor een meerkeuzevraag proefwerk zonder de theorie te leren. Maar gelukkig is dit niet mogelijk bij de normale Kaggle wedstrijden waarbij de test data niet simpelweg van het internet af te halen is.
Ik ontdekte echter nog een vreemd fenomeen bij het opsturen van mijn antwoorden voor de House Prices wedstrijd. Ik had 3 verschillende lineaire regressie modellen getraind op de trainingsdata. Deze modellen presteerden ongeveer allemaal even goed op de testset die ik van de trainingsdata had achtergehouden. Er was echter een groot verschil met hoe twee van deze modellen scoorden op het leaderboard.
Mijn eerste submissie leverde mij een plek in de buurt van de bodem op met een Root-Mean-Squared-Error (RMSE) van 0.45. Mijn tweede submissie, een model dat vrijwel hetzelfde score op de testfractie van de trainingsdata, plaatste mij in de buurt van de top 60 procent met een RMSE van 0.15! Een drastische verbetering!
Misschien dat ik iets gemist heb maar volgens mij is de enige verklaring voor dit verschil toeval. Met meer data was dit volgens mij dan ook nooit het geval geweest.
Samenvatting
Als je er een kan kan je ze allemaal, goede scores vergen weinig inzet en Kaggle scores zijn soms misleidend. Dat zijn de lessen die ik geleerd heb.
Misschien dat ik er met meer ervaringsdata achter kom dat mijn conclusiepatronen moeten worden bijgesteld, maar voor nu is dit mijn model van de Kaggle en Machine Learning wereld.
Dat is alles voor nu.
Tot de volgende keer!