FOCUS Evaluatie

Gegroet Dataridders,

Een aardig tijdje terug schreef ik een post met de titel FOCUS. In dit bericht stelde ik een aantal doelen voor de volgende 6 maanden. Nu, 7 maanden later, zal ik mijn prestatie evalueren.

Mijn doel was om redelijk tot uitstekend te worden op de volgende gebieden:

  • Toegepaste Statistiek
  • Machine Learning
  • Python
  • Java
  • SQL
  • R
  • Excel
  • Git
  • Calculus
  • Lineaire Algebra

Ik zal heel eerlijk zijn, zwart op wit heb ik het niet bijzonder goed gedaan. Mijn doelen waren ook een beetje vaag, maar dat was onvermijdelijk.

Echter, tegelijkertijd ben ik ook niet al te teleurgesteld. Want, hoewel ik niet alles geleerd heb wat ik mij had voorgenomen realiseer ik mij nu de volgende drie dingen:

1. Ik had teveel hooi op mijn vork genomen.

2. Niet alles wat ik dacht te moeten leren was essentieel.

3. Wat ik geleerd heb, dat is volgens mij wel het belangrijkste.

 

Had ik meer kunnen leren met meer discipline en inzet? Sowieso. Maar, uiteindelijk ben ik ook maar mens, en had ik ook andere dingen aan mijn hoofd.

Uiteindelijk heb ik vooral veel over Statistiek en, nog belangrijker, Applied Machine Learning met Python geleerd. Ook ben ik een stuk handiger geworden met Excel en heb ik een beetje geprutst met SQL. Ik had ook een beetje herhaling gedaan voor Java, Calculus en Lineaire Algebra, maar heb daar niet veel nieuws over geleerd en heb er niet al te veel tijd aan besteed. Git heb ik ook nog steeds regelmatig gebruikt. Maar aan R ben ik niet meer toegekomen.

Desalniettemin heb ik nu wel het punt bereikt waar ik mij in staat voel om een Applied Machine Learning project van start tot finish uit te voeren. In ieder geval van dataset tot machine learning model. Dankzij de Machine Learning Accelerator (grotendeels) bezit ik nu namelijk alle fundamentele vaardigheden die daarvoor nodig zijn en heb ik een goed begrip van het stappenplan, alsmede ervaring met het uitvoeren van die stappen.

Mijn zelfstudie en herhaling van wiskundige vaardigheden heeft me geen wiskundige excellentie opgeleverd, maar wel een goed overzicht van de relevante principes en hun rol in de wereld van Data Science. En ook over de rol van Excel, Java en Git heb ik nu een stuk meer duidelijkheid.

Tijdens het leren was ik vooral aan het leren wat ik nu eigenlijk moest leren. Dat is wel goed gelukt denk ik.

Maar wat van mijn doelen voor Dataridder?

Ik wilde dat jullie aan het einde van de 6 maanden toegang zouden hebben tot een hele hoop artikelen “waarin ik uitleg wat ik heb geleerd en de projecten die ik heb uitgevoerd presenteer en uitleg”. Dat is min of meer gelukt, maar niet helemaal zoals ik toentertijd voor ogen had.

Ik kwam er namelijk al snel achter dat het onmogelijk was om alles wat ik leerde, of zelfs maar een significant deel van wat ik leerde, in detail uit te leggen. Daar was simpelweg niet genoeg tijd voor. Niet alleen dat, het leek mij ook niet al te waardevol, aangezien er al meer dan genoeg goede leerbronnen voor handen waren.

Daarom probeerde ik mij al snel meer te focussen op het grote plaatje in mijn berichten, en een overzicht te schetsen van de relevante begrippen en principes, en ook te linken naar goede leerbronnen.

Later ontwikkelde zich dat meer en meer tot artikelen over de mindset alsmede over wat je nou überhaupt moest leren en waarom, omdat ik daar zelf ook veel mee bezig was en ook dacht dat jullie daar het meeste aan zouden hebben. Zelf lees ik mijn artikelen af en toe ook nog eens door als ik een beetje herhaling nodig heb.

Ook heb ik jullie regelmatig op de hoogte gehouden van mijn projecten.

Ik hoop dat jullie er wat aan gehad hebben, en ook dat toekomstige lezers het nuttig zullen vinden.

Hoe nu verder?

Nou, volgens de makers van de Machine Learning Accelerator ben ik nu klaar om te solliciteren voor mijn eerste (Junior) Data Science baan. In hoeverre dat waar is moet ik nog achter komen. Ik zal beginnen mijn moed te verzamelen en ondertussen gewoon door gaan met leren en vooral ook oefenen.

Wat betreft Dataridder, ik denk dat ik voorlopig gewoon zal doorgaan zoals de afgelopen maanden, wat betreft de inhoud. Wel zal ik proberen de frequentie weer een beetje op te voeren. Mijn aanvankelijke voornemen om elke week minimaal een artikel te posten was niet helemaal succesvol, maar gemiddeld genomen heb ik dat toch wel gehaald. Toch zal ik proberen om weer wat consistenter te worden.

Maar dat is alles voor nu,

 

Tot de volgende keer!

Vervulling en frustratie

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.

 

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!

Machine Learning

Gegroet Dataridder,

In een eerder bericht had ik je al uitgelegd wat Datamining is. Dit keer ga ik het hebben over Machine Learning.

Misschien dat je je nu afvraagt wat het verschil is. Zelf was ik namelijk ook even in de war. Datamining en Machine Learning gaan toch immers allebei om het vinden van patronen in data? Om het omzetten van ruwe data naar nuttige informatie?

En dat is ook zo, maar bij Machine Learning gaat het erom om COMPUTERS te leren om nuttige informatie uit data te halen. Datamining zelf is een algemenere term, en hierbij kan het dus bijvoorbeeld ook gaan om het maken van grafieken en het interpreteren daarvan.

Maar, bij Machine Learning programmeer je de computer om zelf data om te zetten in nuttige informatie. Hierbij wordt dan gebruik gemaakt van de zogenaamde machine learning algoritmes (zoals bijvoorbeeld het random forest algoritme). Met behulp van deze algoritmes kan de computer leren van data, en op basis van het geleerde beslissingen en voorspellingen leren te maken.

Dit is een krachtig concept. Het stelt ons in staat om beslissingen en voorspellingen te automatiseren. Dat konden wij al eerder natuurlijk, dankzij computers over het algemeen, maar die moesten wij daarvoor expliciet programmeren. Maar met machine learning hoeft dat dus niet meer. De computer leert zelf om data gedreven beslissingen te maken.

Het is de techniek die centraal staat in de vierde industriële revolutie. Dankzij de eerste drie leven we nu in een tijd waarin we van de luxe kunnen genieten van geautomatiseerde spierkracht. Ook hebben we toegang tot een hele hoop informatie dankzij het internet. Maar nu gaan we dus een stap verder met geautomatiseerde denkkracht. Het is misschien wel het begin van de laatste uitvinding die we ooit hoeven te maken.

Hoe dan ook, de computer leert bij machine learning in principe om zelf een model te vormen. Een representatie/simplificatie van de werkelijkheid die gebruikt kan worden voor het maken van beslissingen en voorspellingen.

Er zijn nu al een heleboel nuttige toepassingen van machine learning. In onder andere dit artikel had ik er al een aantal genoemd. Maar, om er nog een paar te herhalen, denk bijvoorbeeld aan gepersonaliseerde reclames, spraakherkenning en zelfrijdende auto’s. Dit is echter slechts het begin, wie weet wat er nog meer mogelijk is?

Machine learning algoritmes kunnen vrij moeilijk zijn om te begrijpen. Mijn missie om mijn random forest algoritme te programmeren bleek een heel karwei, en dat was misschien nog een van de simpelere algoritmes. En bij de werking van neurale netwerken komt ook heel wat wiskunde kijken. Maar, natuurlijk is het erg belangrijk om deze algoritmes te begrijpen. Als je er een proefwerk over krijgt.

Grapje.

Deze algoritmes komen natuurlijk niet uit de lucht vallen en iemand moet ze bedenken en verbeteren. Leren hoe ze werken is dus zeker nuttig. Maar, wil je leren om zelf machine learning toe te passen dan is het vooral belangrijk dat je leert hoe je ze moet gebruiken. Moet je weten hoe een computer werkt om een blog artikel te lezen?

Natuurlijk niet.

Je moet alleen weten wat alle knoppen doen. En zo is het ook met machine learning. Je moet leren werken met de tools.  Leer gewoon programmeren met de machine learning libraries en je kunt aan de slag. Je hoeft ze niet helemaal van binnen en buiten te kennen om ze te gebruiken, en waarschijnlijk heb je daar ook de tijd niet voor want er zijn er een hele boel en er komt een hele boel wiskunde bij kijken.

Maar, het mag wel.

Persoonlijk vindt ik het heel leuk om te weten hoe dingen werken en ze zelf na te maken. Daarom heb ik ook mijn eigen versies gemaakt van een random forest en neuraal netwerk. En als jij dat ook leuk vindt, laat je dan zeker niet tegen houden om hetzelfde te doen. Op deze manier leer je jezelf tegelijkertijd programmeren aan en leer je wat over de werking van machine learning algoritmes. Een veel leukere manier van leren dan neuzen door een stapel stoffige tekstboeken, als je het mij vraagt.

Wil je echter leren machine learning modellen en applicaties te maken dan zul je toch echt aan de slag moeten gaan met de bestaande tools. Zelf ben ik inmiddels weer ver gevorderd met de Machine Learning Accelerator van EliteDataScience. Een prima keuze om machine learning met Python te leren, ben ik nog steeds van mening. Er zijn echter meer dan genoeg cursussen beschikbaar dus kijk ook zeker verder.

Maar ja, 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.

Riddercode

Data Science is een gereedschap.

Stel je een applicatie voor. Een applicatie die op basis van informatie verzameld over een mensenleven precies weet wat die persoon zal doen in reactie op een situatie naar keuze.

Stel je voor dat persoon X deze applicatie en de benodigde gegevens over de gehele wereldbevolking bezit. Stel je voor dat persoon X deze gereedschappen gebruikt om de perfecte indoctrinatie te ontwikkelen voor elke mens op aarde. Stel je voor dat persoon X op deze manier de heerser wordt van de planeet. Zo’n applicatie zou nooit ontwikkeld mogen worden, nietwaar?

Stel je nu voor dat deze applicatie in het bezit is van elke persoon op aarde. Stel je voor dat deze applicatie iedereen in staat zou stellen om te weten hoe ze zich zouden gedragen in een bepaalde situatie. Stel je voor dat ze deze informatie zouden gebruiken om te begrijpen wie ze zijn en hun leven te verbeteren. Zo’n applicatie zou wel eens de meest waardevolle uitvinding aller tijden kunnen zijn, nietwaar?

Data Science is een gereedschap.

Of een applicatie als deze ooit zal bestaan is onzeker. Misschien ben je wel van mening dat zo’n gereedschap helemaal nooit zou mogen bestaan. Is de wereld er bijvoorbeeld wel echt beter van geworden nu we staal hebben uitgevonden? Verbranding? Kernsplitsing? En misschien heb je daar gelijk in.

Maar, kernsplitsing is uitgevonden. Waarom? Omdat de voordelen van kernsplitsing te groot waren om te negeren voor de mensen die het ontwikkelden. Mensen met, in ieder geval in hun eigen ogen, goede bedoelingen. En zo is het geweest met alle uitvindingen.

Is het mogelijk om dit eeuwenoude proces van innovatie stop te zetten nu we weten wat de risico’s zijn? Misschien, maar makkelijk zou dat niet zijn, als het al mogelijk is. En wat zou de prijs zijn om dit te verzekeren? Zou deze prijs het wel echt waard zijn? Of zou het ons meer kosten dan datgene wat we ermee proberen te voorkomen? En laten we ook vooral niet vergeten dat innovatie onze levens wel degelijk verbeterd heeft.

Kunnen we ons misschien niet beter afvragen wat we wel kunnen doen? Wat we kunnen doen om er voor te zorgen dat deze gereedschappen uitgevonden worden onder de juiste omstandigheden? Ons afvragen hoe we er voor kunnen zorgen dat ze gebruikt worden voor de juiste redenen? Is dat niet de taak waar we als mens altijd al mee belast zijn geweest?

De applicatie die ik beschreven heb zal misschien nooit ontwikkeld worden, maar wat zullen de consequenties zijn van de applicaties wij wel ontwikkelen? Data Science is een gereedschap.

Hoe wil jij dat het gebruikt wordt?

 

Python Power!

Hallo wereld,

Zoals ik al had aangekondigd in mijn vorige bericht ben ik de laatste dagen vooral bezig geweest met de Machine Learning Accelerator van EliteDataScience. En inmiddels heb ik al aardig wat geleerd over het gebruik van Python voor Data Science.

En ik ben onder de indruk.

Eerder had ik bijvoorbeeld al geleerd om data te analyseren met Excel. Niets bijzonders, gewoon de basics. Ik had een Youtube kanaal gevonden dat uitstekende tutorials had voor het gebruik van deze software. En ik was onder de indruk van wat je er allemaal mee kon doen en hoe gemakkelijk het allemaal was.

Maar de kracht van Excel komt niet eens in de buurt van de kracht van Python.

Niet wanneer het gaat om Data Science. En het is niet alleen dat Python je in staat stelt om machine learning toe te passen, hoewel dat er zeker een hoop mee te maken heeft. Het is ook niet dat je met Python (eventueel in combinatie met relationele databases en SQL), veel meer data kunt verwerken. Nee, de ECHTE kracht van Python, en programmeren over het algemeen, is dat er bijna geen grenzen zijn aan de mogelijkheden.

Python kan dankzij de Pandas, Matplotlib en Seaborn libraries in principe alles wat Excel ook kan, maar beter.

Wil je een staafdiagram voor inzicht in je gegevens maken? Laad de libraries, laad de data, schrijf twee regels code en voilà, staafdiagram voor een categorische variabele naar keuze. Liever categorieën vergelijken op basis van een bepaalde andere variabele? Ook zo gedaan. Het is echt belachelijk makkelijk. Wil je alle rijen die (niet) aan een bepaalde voorwaarde voldoen eruit filteren?

Kinderspel!

Dankzij libraries en de compacte, elegante syntax van Python kun je heel snel hele complexe en nuttige dingen doen met je data. Dingen die met Excel een stuk langer zouden duren. Maar, de echte kracht zit verschuild in hoe gemakkelijk het is om op die mogelijkheden verder te bouwen. Je hebt een pakket vol met nuttige analyses aan je vingertippen, ja. Net zo gemakkelijk echter kun je zelf een nieuw pakket samen stellen om nog betere en/of snellere analyses uit te voeren, en deze te automatiseren. Schrijf gewoon een nieuwe methode, en wie weet, kan je daar gewoon een nieuwe library van maken ook, zodat iedereen hem kan gebruiken!

Dat is de kracht van Python voor Data Science. En Excel, hoewel een geweldige tool voor de simpelere doeleinden, kan daar gewoon niet aan meten, lijkt mij. Maar ja, wat weet ik ervan?

Dat is alles voor nu,

Tot de volgende keer!

Accelerator

Hallo wereld,

Vorige week ben ik dan toch eindelijk over de streep getrokken; ik heb geld geïnvesteerd in mijn educatie! Tot nu toe had ik, zoals ik al zei op de Over Dataridder pagina, alles gewoon gratis en voor niets van het internet af gevist. Maar, na het volgen van een webinar van EliteDataScience was ik dan toch verkocht; ik heb de Machine Learning Accelerator cursus aangeschaft.

Sindsdien heb ik hem tijdens bijna al mijn zelfstudie sessies tot dusver helemaal verslonden. En tot nu toe ben ik zeer positief, want deze cursus lijkt echt te doen wat hij belooft.

En wat belooft hij dan?

Nou, het is een cursus gericht op beginnende tot ‘intermediate’ Data Scientists die hun leerproces willen versnellen. Het is volgens EliteDataScience (net zoals volgens mij, overigens) heel goed mogelijk om alles zelf te leren. Maar, het nadeel daarvan is vooral dat het een langzaam en moeizaam proces kan zijn, zoals ik zelf ook al gemerkt heb. Het is niet zozeer dat de informatie niet te vinden is, maar vooral juist dat er TEVEEL informatie te vinden is! Hierdoor zie je al snel door de bomen het bos niet meer.

Deze cursus richt zich echter op het aanleren van de fundamentele vaardigheden voor de Data Scientist, met behulp van een van de meest gebruikte professionele Data Science tools: Jupyter Notebook, met Python.

De FUNDAMENTELE vaardigheden.

Dat is heel belangrijk, want hierdoor raak je niet afgeleid en leer je de kern van het Data Science proces aan, waardoor je de gereedschappen hebt die je bij vrijwel elk project nodig zal hebben. Maar, het is zeker niet zo dat het zo erg versimpeld is dat je zelf van alles er bij moet leren om er iets mee te kunnen doen. Je leert echt alles wat je nodig hebt voor je eerste projecten. En je leert het beste in context, door het doen van projecten, en deze cursus brengt je op een goed niveau om daar mee te beginnen.

Althans, dat is de belofte.

Natuurlijk heb ik deze cursus pas een week gevolgd en ben ik nog niet eens op de helft. Maar, ik heb al wel een aardig overzicht van wat ik in dit programma allemaal ga leren. Ik heb nu de eerste module (‘Cornerstone’) afgerond en ben nu een kei met Jupyter Notebook, maar dat is slechts het begin.

Het beste van dit programma is wel dat er een grote nadruk ligt op het uitvoeren van oefeningen. Hierdoor leer je je de vaardigheden echt aan, in plaats dat je ze alleen aan kijkt. En je wordt ook gestimuleerd om zelf met de principes te experimenteren en er over na te denken. Ik kreeg er via het webinar ook gratis het certificatie pakket bij. Mooi voor op je CV. Tot slot is er ook nog de mogelijkheid om vragen te stellen als je er niet uit komt.

Wel zijn er best een aantal kleine foutjes in de cursus. Maar die vallen toch in het niet bij de waarde die dit programma in mijn ogen heeft. Het heeft mijn leerproces in ieder geval al een stuk versneld. Ik zou hem aanraden.

Maar, dat is alles voor nu.

Tot de volgende keer!

 

Eindeloos

Hallo wereld,

Vandaag ga ik het hebben over een aantal toepassingen van Data Science. Ik had het al eerder gehad over voorbeelden als Target, zelf rijdende auto’s, AlphaStar en een algoritme dat kanker kan classificeren aan de hand van medische foto’s. Maar, dat waren slechts een paar van de toepassingen die Data Science vandaag de dag al kent. In dit bericht ga ik er zoveel mogelijk noemen om jullie een idee te geven van wat er allemaal mogelijk is. Wie weet dat jullie er zelf nog meer ideeën van krijgen. De mogelijkheden zijn eindeloos.

Photo by Philipp Birmes from Pexels
SciSports

SciSports is een sport analyse bedrijf dat voornamelijk actief is in de voetbalwereld. Het ontwikkelt data analyse systemen die coaches in staat om spelers te selecteren op basis van analyses en voorspellingen aan de hand van prestatiegegevens. Een beetje verouderd maar nog steeds interessant artikel over SciSports kun je hier vinden.

CAS

Het Criminaliteits Anticipatie Systeem stelt de politie in staat om hun mankrachten strategischer in te zetten aan de hand van geografische voorspellingen over criminaliteit. Het systeem werkt het beste voor de kleinere, vaker voorkomende misdaden zoals woninginbraak. Het heeft met succes de criminaliteitscijfers in een aantal Nederlandse steden significant weten te verminderen. En predictive policing (voorspellend politiewerk) is slechts een van de manieren waarop data science toegepast wordt in steden.

Claims Management Systeem

Het Claims Management Systeem en FuN (Fraude en Naselectie) systeem stellen verzekeraars in staat om automatisch claims te inspecteren op visluchtjes. Wees gewaarschuwd.

Real Time Analytics

Ben je ook altijd zo over de zeik over de vertraging bij de NS? Nou, met behulp van Real Time Analytics proberen zij dit te beperken en de reizigerservaring zoveel mogelijk te verbeteren. Aan de hand van (real time) gegevens analyse proberen zij hun middelen zo strategisch mogelijk in te zetten en nieuwe oplossingen te bedenken.

Dynamic Pricing

Als webwinkel automatisch je prijzen laten aanpassen aan de hand van informatie verzameld over het web? Als supermarkt automatisch je prijzen laten aanpassen aan vraag en aanbod? Het kan allemaal.

Algemeen
  • (Google) Internet Search
  • Spraakherkenning
  • Beeldherkenning
  • Gericht adverteren
  • Gamen
  • Business Intelligence
  • Logistiek
  • Etc.
Meer leren

Dat is alles voor nu.

 

Tot de volgende keer!