De 7 stappen van Machine Learning

Wat komt er allemaal kijken bij het maken en implementeren van een machine learning model?

 

Nou, het is meer dan alleen een databestandje laden en er een machine learning algoritme op los laten!

In dit artikel zal ik een kort overzicht schetsen van de stappen van het machine learning proces.

Bij elke stap zou een hele bibliotheek aan verdere uitleg geschreven kunnen worden, maar ik zal het zo kort mogelijk houden.

 

Stap 0: Voorbereiden

Voordat je kan beginnen moet je eerst weten wat het probleem is dat je met je machine learning model hoopt op te lossen!

Dit is de minst technische maar meest cruciale stap en vereist vooral inzicht in het probleem en communicatie met belanghebbenden.

Vervolgens is het de zaak om de benodigde data te identificeren en verzamelen. Dit gaat hand in hand met de definitie van het probleem, want zonder data heeft het weinig zin om na te denken over een machine learning oplossing.

 

Stap 1: Verkennen (Exploratory Analysis)

Je hebt het probleem gedefinieerd en de data verzameld. Tijd om te beginnen!

Maar, voordat je in het diepe springt is het de zaak om de data kort te verkennen en overzicht te krijgen. Hierbij gaat het vooral om het vinden van informatie die nuttig is voor de volgende stappen van het maken van het model.

Misschien dat je er zelfs achter komt dat je terug een stap terug moet doen en wat meer data moet verzamelen of het probleem moet herdefiniëren.

 

Stap 2: Schoonmaken (Data Cleaning)

Een machine learning model is nooit beter dan de informatie waar het op gebaseerd is.

Daarom is het van belang om te zorgen dat de data die erin gaat van goede kwaliteit is en geen fouten bevat. Missende observaties, ongewenste observaties, foute observaties. Geen van deze dingen helpen de prestatie van ons model.

 

Stap 3: Knutselen (Feature Engineering)

Nogmaals is het de zaak om te benadrukken dat een machine learning model nooit beter is dan de informatie waarop het gebaseerd is.

Niet alleen is het van belang data de data foutloos is. Het is ook van belang dat hij relevant is en op de juiste manier aan de algoritmes wordt gepresenteerd.

Denk bijvoorbeeld aan het toevoegen van een nieuwe variabele die het verschil geeft tussen twee jaartallen. Dit kan nuttiger zijn voor het algoritme dan de jaartallen zelf.

Dit is de stap die het meeste inzicht vereist in het probleem wat gemodelleerd wordt.

 

Stap 4: Selecteren (Algorithm Selection)

Oké, de data is klaar voor het model. Maar welk algoritme gebruiken we?

Dit is meestal vrij voor de hand liggend op basis van de machine learning taak (classificatie, regressie, clustering), maar er moet toch even over nagedacht worden. Het is belangrijk om een veelzijdig scala aan algoritmes te kiezen zodanig dat er goede resultaten te halen zijn met tenminste een aantal ervan.

 

Stap 5: Trainen (Model Training)

Eindelijk! De stap waar het allemaal om draait.

Het maken van het model.

Hierbij gaat het erom om de juiste hyper-parameters te vinden voor onze algoritmes, deze op de data los te laten, de resultaten op de juiste manier te evalueren en het winnende (meest nauwkeurige) model uit te kiezen.

 

Stap 6: Implementeren

We zijn echter nog niet klaar!

Nu het model af is moet het nog in gebruik genomen worden. Dit kan bijvoorbeeld betekenen dat het model moet worden opgenomen in een selfservice tool met een gebruiksvriendelijke interface. Ook zullen we het model misschien regelmatig moeten updaten door het nieuwe data te voeren.

En wie weet wat er allemaal nog meer gedaan moet worden om het model in gebruik te brengen en te houden?!

 

Pfoe!

Het is niet makkelijk om een machine learning model te implementeren.

Gelukkig hoef je deze stappen niet per se allemaal alleen te doen. Maar, het is wel van belang dat je je er van bewust bent wat er allemaal bij komt kijken zodat je jouw deel goed uit kunt voeren en effectief met je team kunt samenwerken.

Dat is alles voor nu,

 

Tot de volgende keer!

 

Bronnen

Data Science Build – Deel 2

“I fear the man who has practised one kick 10,000 times, but the man who has practiced 10,000 kicks once scares the shit out of me.

And don’t even get me started on the man who has practiced 10,000 kicks twice!”

– Sam Dee

Gegroet Dataridder,

Zou je niet willen dat alles in het leven zwart of wit zou zijn? Dat er geen tegenstrijdigheden waren en alle vragen één antwoord hadden?

 

Jammer dan.

 

Dit is de echte wereld en in de echte wereld is alles grijs.

Nou ja, figuurlijk gesproken dan.

In mijn eerdere bericht vertelde ik je dat je beste kans om een Data Scientist te worden specialisatie was. In dit bericht ga ik je compleet in de war brengen en alles in dat vorige bericht compleet tegenspreken.

En bevestigen.

Heb je wel eens Skyrim gespeeld? Of een andere RPG misschien? Heb je weleens geprobeerd om een build te maken die slechts een of twee skills gebruikt?

 

Hoe was dat?

 

Effectief. Meestal. Soms. Een beetje.

Ik had het er al over in mijn eerdere bericht. Het is niet altijd handig om een specialist te zijn. In sommige gevallen is jouw specialisme compleet nutteloos. De zwaardvechter die een draak probeert te bestrijden komt er al gauw achter dat zwaarden niet veel schade doen als je tegenstander vliegt. En ze zijn ook niet echt nuttig om drakenvuur van je gezicht af te houden.

 

Maar niet alleen dat. Het was ook nogal saai, nietwaar?

 

Elk gevecht is hetzelfde:

“HAK! HAK! HAK!

– Warrior

 

“POW! POW! POW!”

– Mage

 

“PEW! PEW! PEW!”

– Archer

 

Dat moet toch beter kunnen?

 

En ik heb het niet alleen over mijn geluidseffecten. Waarom geen meer veelzijdige build? Een build die zich kan aanpassen aan elke situatie? Een build waarmee elk gevecht een nieuw avontuur is?

Een GENERALIST.

Zoals ik al zei heeft de generalist echter zijn eigen problemen. Overal slecht in, nergens goed in. Maar het is mogelijk om je build veelzijdiger te maken. Flexibeler te maken. Interessanter te maken. En het is in mijn mening ook zeker aan te raden om dat te doen.

Maar, hoe doe je dat zonder je build compleet waardeloos te maken?

Nou, ten eerste is het van belang om vaardigheden te kiezen die elkaar aanvullen in plaats van vaardigheden die precies hetzelfde doen op een iets andere manier. Ga geen build maken met zowel de two handed als one handed weapon skill.

Logisch.

Maar, one handed en destruction doen in principe ook hetzelfde: schade aanbrengen. Ze doen het echter op verschillende manieren en zijn nuttig in verschillende situaties. Hierdoor word de build opeens een stuk flexibeler.

En dat wil je dus ook doen met Data Science. Je wilt vaardigheden kiezen die elkaar aanvullen. Niet vaardigheden die elkaar in de weg zitten.

Het lijkt dan op het eerste gezicht ook een slecht idee om Data Science te leren en tegelijkertijd ook proberen om een Front-End Web Developer te worden.

Maar, wat als je je specialiseert in A/B testing en ook in staat bent om zelf verschillende webpagina’s te bouwen? Dat zou dan misschien weer WEL nuttig kunnen zijn, maar alleen als je om de een of andere reden niet in staat of bereid bent om iemand anders het bouwen van de webpagina’s voor je te laten doen.

Ingewikkeld allemaal hè?

Nou het wordt nog ingewikkelder. Als mens zijn wij namelijk geëvolueerd als generalisten. Onze grootste kracht en zwakte was ons vermogen om bijna overal slecht in te zijn. We hadden geen warme vacht. We hadden geen scherpe tanden of klauwen. We hadden geen vleugels.

We hadden bijzonder weinig.

Maar, we waren wel nieuwsgierig, slim en creatief. We waren constant op onderzoek, aan het experimenteren en aan het uitvinden. Hierdoor konden wij ons aanpassen aan vrijwel elke situatie.

We hadden geen vacht nodig want we maakten kleren. We hadden geen klauwen nodig want we maakten speren. We hadden geen vleugels nodig want we maakten bogen.

En we waren ook sociaal. Langzaam maar zeker waren wij in staat om samen te werken in steeds grotere aantallen. Maatschappijen ontstonden en groeien nog altijd groter en groter. En in een maatschappij is het mogelijk om jezelf te specialiseren in het maken van kleren en niet om te komen van de honger. Specialisatie werd geboren en verheven.

Maar, diep van binnen zijn wij nog steeds allemaal een stelletje generalisten. Nieuwsgierige kunstenaars die verslaafd zijn aan afwisseling. En als we de hele dag hetzelfde moeten doen, dan worden wij daar bijzonder depressief van. Variatie is daarom niet alleen nuttig voor flexibiliteit, maar ook voor je mentale gezondheid.

Laten we nu even terug gaan naar de man die 10,000 trappen één keer oefende. Heb je wel eens nagedacht over wat nou echt het effect zou zijn van zo’n training? Denk je niet dat deze man niet afschuwelijk sterke en behendige benen zou ontwikkelen? Denk je niet dat hij afschuwelijk onvoorspelbaar en flexibel zou zijn? En denk je niet dat hij een stuk meer plezier heeft gehad in het leven dan de man die een trap 10,000 keer geoefend heeft? En een stuk minder last van RSI?

Het lijkt erop dat ik mijzelf compleet tegen gesproken heb, maar dat is niet zo. Wat ik in mijn eerdere bericht had gezegd was ook allemaal waar. Het is echter allemaal wat ingewikkelder dan het op het eerste gezicht lijkt.

Maar, dat is geen tegenstrijd. Dat is complexiteit. Het lijkt alleen maar tegenstrijdig, omdat we het met ons kleine brein niet allemaal tegelijkertijd kunnen begrijpen.

 

Denk daar maar eens over na.

 

Ik hoop dat ik je niet al te veel in de war heb gebracht. In tegenstelling tot wat ik eerder zei was dat echt niet mijn bedoeling. Maar het leven is nou eenmaal niet altijd zo simpel als we zouden willen.

Is het nu mijn advies om een trap 10,000 keer te oefenen? Nee. 10,000 trappen een keer te oefenen? Ook niet. De beste oplossing zit er waarschijnlijk ergens tussen in.

Specialisatie is een krachtig en noodzakelijk principe. Maar, vergeet niet dat het bijzonder veel makkelijker en leuker is om 10,000 trappen TWEE keer te oefenen dan een trap 20,000 keer, en dat een high kick bijzonder nutteloos is tegen een dwerg met een machinegeweer.

Dat is alles voor nu,

 

Tot de volgende keer!

Data Science Build

Een van mijn favoriete bezigheden in het verleden was het spelen van Skyrim. In dit spel kun je je character build compleet zelf bepalen. Je kan spelen als een mage, warrior, thief of hybrid en zelfs daarbij kun je nog oneindig veel variëren met de skills waar je je op focust.

Echter, wil je in Skyrim succes hebben dan is het niet zo’n goed idee om alles tegelijk te doen. Tuurlijk, de sterkste Dragonborn is de Dragonborn die het allemaal kan, maar met zoveel verschillende skills duurt het helaas veel te lang als je alles tegelijk doet.

Niet alleen dat, de vijanden schalen met je level. Dus, als jij je levels te dun spreidt over alle verschillende vaardigheden dan eindig je uiteindelijk met met een Dragonborn die nergens goed in is en compleet ingemaakt wordt door alles wat hij tegenkomt.

De andere kant die je op kunt gaan is het jezelf specialiseren in slechts een enkele skill. Dit werkt al een stuk beter dan wanneer je alles tegelijk probeert te doen, zolang je je maar specialiseert op een skill waarmee je daadwerkelijk kunt winnen, oftewel damage doen. En het is waar, een pure Destruction mage met stagger lock is een gevaarlijke tegenstander waar veel vijanden in Skyrim lastig mee om kunnen gaan.

Een puur offensieve two handed warrior is ook een gevaarlijke tegenstander, maar raakt al gauw in de problemen omdat hij in de buurt moet komen van de tegenstander om damage te doen. Hierdoor krijgt hij ofwel zelf al snel teveel damage om te overleven, of kan hij niet eens damage doen omdat zijn tegenstander vliegt en hem van een afstand tot een hoopje as reduceert.

Maar, ook de Destruction mage raakt in de problemen wanneer hij in een gevecht terecht komt met meerdere boogschutters die allemaal in staat zijn om hem met een pijl uit te schakelen aangezien hij totaal geen armor heeft.

De volgende logische stap is dan ook om ervoor te zorgen dat je ook defensieve kwaliteiten hebt. Als je dood bent houdt het immers allemaal op, en meer verdediging geeft meer tijd om damage te doen en te reageren op lastige situaties. Een build met slechts een offensieve en een defensieve kwaliteit is al een stuk robuuster en doet het bijzonder goed in de meeste situaties.

Maar, zelfs zo’n build komt nog steeds situaties tegen waar hij niet goed mee om kan gaan, en waar de toevoeging van slechts een enkele skill al een wereld van verschil had kunnen maken! Echter, wat je ook toe voegt, er zullen altijd gaten blijven bestaan. Tenzij je alles toe voegt, in welk geval je weer overal slecht in bent.

Wat heeft dit nu allemaal te maken met Data Science?

Nou, Data Science is net zoals Skyrim: er zijn teveel vaardigheden om allemaal in een keer te leren. Er is te weinig tijd om het allemaal te leren, en je concurrentie zal je voorbij schieten als je het probeert.

De enige manier om een kans te maken is door jezelf te specialiseren!

Het is waar, door jezelf te specialiseren zul je jezelf automatisch diskwalificeren voor een groot aantal Data Science vacatures. Maar, je zult jezelf ook bijzonder geschikt maken voor het vervullen van een klein maar fijn aantal vacatures en projecten die precies de vaardigheid vereisen die jij bezit.

Dit is natuurlijk voorwaardelijk aan het kiezen van een specialiteit die daadwerkelijk het gewenste resultaat behaald. In de echte wereld ben je echter altijd op de een of andere manier onderdeel van een team. Als jij het juiste team kan vinden dan maakt het niet uit hoe klein jouw specialisme is op zichzelf. Als het een waardevol onderdeel is van het gehele proces, dan is het een nuttig specialisme.

Dat heet teamwork.

Kun jij bijvoorbeeld alleen data vanuit een database met SQL verzamelen in een csv bestand, dan is dat mogelijk een heel nuttige vaardigheid. Echter, de kans is groot dat je het moeilijk zult vinden om een team te vinden dat op zoek is naar een specialisme dat zo specifiek is. Al is het niet onmogelijk als jij jezelf genoeg kan onderscheiden van de concurrentie door er absurd goed in te zijn.

“I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times.” – Bruce Lee

Echter, het is waarschijnlijk praktischer als jij wat excellentie op geeft in het maken van csv bestanden en je bijvoorbeeld specialiseert in het maken van machine learning modellen.

Natuurlijk komt er een stuk meer kijken bij een succesvol machine learning project en het bereiken van een data driven bedrijf. Wat is het waard om te modelleren? Waar haal je de data vandaan? Hoe breng je het in de praktijk? Dat zijn allemaal vragen die ook belangrijk zijn en een hoop aandacht en expertise vragen. Bovendien zijn er nog veel meer dingen belangrijk bij het realiseren van een data driven bedrijf, zoals bijvoorbeeld A/B testing.

Maar, deze vaardigheid kan zeker een waardevolle toevoeging zijn voor veel bedrijven. En dit is natuurlijk slechts één voorbeeld van de vele mogelijke builds die je je maar kunt bedenken! Maar, wat je ook doet, probeer niet alles tegelijk te doen, of je zult nooit resultaten behalen.

Het is beter om slechts een skill te trainen dan na te denken over hoe je hem het beste kan aanvullen dan om alle skills tegelijk te oefenen en compleet ingemaakt te worden door elke mudcrab die je tegen komt.

Bedenk een build voor jezelf.

Data wat?

Hallo wereld,

Wat is een Data Scientist? Vandaag de dag is het lastig om daar een eenduidig antwoord op te vinden.

Sommigen zijn van mening dat Data Scientists vooral experts moeten zijn in statistiek. Anderen zijn van mening dat ze vooral geweldig moeten zijn in programmeren. Weer anderen leggen de nadruk op zakelijk inzicht.

Sommigen  vinden dat statistiek niet genoeg is, ze moeten zowel breedte en diepgang hebben in allerlei wiskundige disciplines. Niet alleen dat, ze moeten ook een diepgaande kennis hebben over de bedrijfstak waar ze in werkzaam zijn!

Maar de meesten vinden dat een Data Scientist dit eigenlijk ALLEMAAL moet kunnen! En nog veel meer!!!

Pfoe, het is niet makkelijk om een Data Scientist te zijn! Als je de omschrijvingen van het beroep allemaal letterlijk zou nemen is het moeilijk om jezelf voor te stellen dat deze wonderen der natuur daadwerkelijk de aardbodem bewandelen.

Photo by Elias Castillo on Unsplash

Waar begin je als leek om jezelf om te scholen tot Data Scientist? Hoe ga je verder?! Wanneer ben je klaar? Het antwoord op de eerste twee vragen is lastig, maar het antwoord op de laatste is duidelijk: NOOIT. Wat?! Maar Samson, hoe wordt ik dan een Data Scientist? Waarom zou ik beginnen als ik toch nooit klaar zal zijn met leren?!

Een betere vraag zou zijn, waarom zou je NIET beginnen als je dan nooit klaar HOEFT te zijn met leren? Oké, dat is eng, toegegeven, maar dat is ook wat Data Science juist zo interessant maakt! Maar, om praktisch te blijven, wat betekent het nou precies om Data Scientist te worden, en hoe krijg je er brood mee op de plank?

Nou, ik ben natuurlijk maar een leek, maar mij lijkt het dat je een Data Scientist bent wanneer je een combinatie van de eerder genoemde vaardigheden toepast om tot waardevolle inzichten te komen voor een bedrijf. Of voor een consument in de vorm van een applicatie. Wat voor combinatie? Hoe waardevol? Dat kan verschillen. Maar de kern zit hem in het bedenken van creatieve oplossingen voor complexe, multidisciplinaire data problemen. Datamining in principe, waar ik al meer over had geschreven in dit bericht.

Dat is best vaag, en de term Data Scientist kan dan misschien ook wel wat specifiekere “sub-classes” gebruiken. Er lijken echter wel wat algemene kenmerken te bestaan. Namelijk:

  1. Kennis van wiskunde, en vooral statistiek
  2. Ervaring met Python of vergelijkbare taal
  3. Ervaring met data analyse en data visualisatie
  4. Ervaring met het trainen van machine learning algoritmes
  5. Communicatievaardigheden
  6. Zakelijk inzicht

Verder? The sky is the limit!

Hopelijk heb ik je nu niet al te bang gemaakt? Oké, ik zal ophouden. Maar, bedenk jezelf het volgende.

Ook al zou je niet in staat zijn om al deze dingen te leren, dan zijn het stuk voor stuk nog steeds verdomd waardevolle vaardigheden om in je portfolio te hebben! Neem gewoon een stapje tegelijk, blijf jezelf ontwikkelen, en kijk hoe ver je komt. Je hoeft niet te wachten totdat je voldoet aan alle omschrijvingen van een Data Scientist voordat je er iets geweldigs mee kan gaan doen!

Wil je lezen wat anderen zeggen over wat een Data Scientist is? Kijk dan eens in de onderstaande bronnen. Dat is alles voor nu.

 

Tot de volgende keer!

 

Bronnen