Gegroet Dataridder,
De meest vervullende dingen in het leven zijn vaak ook het meest frustrerend. Afgelopen week heb ik mijn eerste echte Applied Machine Learning Project afgerond, en daarmee mijn certificaat voor de Machine Learning Accelerator cursus behaald.
Het was niet makkelijk.
En ik zou liegen als ik zou zeggen dat het alleen maar plezierig en totaal niet onaangenaam was. Sterker nog, er waren meerdere periodes waar dit totaal niet het geval was, en waarin ik mezelf moest dwingen om door te gaan. Maar, uiteindelijk was het ook heel leerzaam en waren er ook veel periodes van plezier en vervulling.
In dit artikel zal ik mijn ervaringen met mijn eerste machine learning project bespreken in de hoop je voor te bereiden voor je eigen eerste project, mocht je daar nog niet aan begonnen zijn. Zowel, dan herken je je misschien in mijn ervaringen en weet je dat je niet de enige bent.
Voor de cursus mocht ik na het afronden van de leermodules mijn eigen eindproject formuleren. De eerste uitdaging was het kiezen van een onderwerp. Het is makkelijk genoeg om classificatie, regressie of clustering taken te bedenken, maar om taken te bedenken die ook nuttig en haalbaar zijn voor een eerste project en aansluiten bij mijn persoonlijke interesses, dat was echt bijzonder lastig. Ik was er dan ook vele uren aan kwijt, verspreid over vele, vele dagen.
De tweede uitdaging was het vinden van een goede dataset bij dat gekozen onderwerp. Het was echt verrassend lastig om een dataset te vinden die zowel geschikt is voor machine learning als goed gedocumenteerd is. Ik heb zo’n beetje het hele internet afgezocht en data voorbij zien komen in alle vormen en maten, van csv tot json en noem het maar.
Uiteindelijk heb ik gekozen voor het maken van een voorspellend model voor het succes van telemarketing voor een termijndeposito. De dataset kwam van The UCI Machine Learning Repository, was al eerder gebruikt door onderzoekers voor het zelfde doeleinde en goed gedocumenteerd. Een project dat zowel haalbaar leek als interessant, ook al sloot het niet helemaal aan bij mijn eerste ideeën en was het niet erg revolutionair.
Maar, na uren lang zoeken naar de perfecte dataset was het toch echt tijd om eens te gaan beginnen. Beter om een minder dan perfect project te doen, en dan nog een, en dan nog een, en op deze manier dan ook daadwerkelijk iets te leren, dan om voor altijd vast te blijven hangen in het keuzeproces.
Na de eerste stappen kwam ik uit bij de volgende uitdaging: het bedenken van goede ideeën voor feature engineering, het selecteren en vervormen van de gegevens voor het verbeteren van de prestatie van het model. Mijn domeinkennis bij mijn gekozen onderwerp was vrij beperkt, maar ook de dataset zelf liet vrij weinig ruimte over voor creativiteit aangezien hij al door een proces van filteren en feature engineering onderworpen was.
Na veel onderzoek kwam ik slechts met een handvol ideeën en deze bleken de prestatie van het model niet significant te verbeteren. Dit was erg frustrerend maar van wat ik gelezen en geleerd had tijdens de cursus ook niet ongebruikelijk. In ieder geval had ik wel veel geleerd en geoefend met de technieken die ik geleerd had in de cursus.
De vierde uitdaging was het wachten op het trainen van het model.
Ja, serieus.
Stel je het volgende scenario voor:
Je hebt eindelijk je feature engineering gedaan, je hyperparameters gekozen en je start het algoritme. Geweldig, nu kun je een paar uur wachten op de uitslag voordat je weer verder kunt. Na een paar uur wachten kom je terug om je resultaat te bewonderen. Maar, je bent ergens iets vergeten en/of de resultaten zijn teleurstellend en je kunt het hele proces weer opnieuw kunt beginnen.
Zucht…
Het kostte me een significant aantal iteraties om mijn aanpak en functies voldoende te verfijnen om dit proces wat vlotter te laten verlopen.
De laatste uitdaging was het documenteren van het proces zelf. Het eindresultaat moest namelijk een mooi lineair verslag zijn dat de lezer laat zien hoe je aan je resultaat gekomen bent. Vrij lastig om te doen voor een totaal niet-lineair proces waarbij je constant stappen terug zet en extra onderzoek doet om je resultaten te verbeteren. Uiteindelijk heb ik er maar het beste van gemaakt en mijn persoonlijke aantekeningen zo goed mogelijk omgezet in documentatie voor de lezer.
En dat was dus mijn project. Een proces van vele frustratie en vervulling als gevolg van het overwinnen van die frustratie. Hopelijk heb ik je met het delen van mijn uitdagingen een beetje voorbereid op je eigen toekomstige machine learning projecten, en/of je wat beter laten voelen over de projecten die je al gedaan hebt.
Dat was alles voor nu,
Tot de volgende keer.