50 uur Kaggle ervaring in 5 minuten

Gegroet Dataridder,

Deze week heb ik mijn eerste Kaggle wedstrijd afgerond. De opdracht was om een zo goed mogelijk model te trainen voor het detecteren van online fraude.

Ik heb er in totaal meer dan 50 uur aan besteed en het is me uiteindelijk gelukt om in de top 50 procent van het Leaderboard te komen. In dit bericht ga ik jou in vogelvlucht wat vertellen over wat ik daar bij heb geleerd. Hopelijk zal het je helpen bij je eigen projecten en wedstrijden.

Laten we beginnen.

 

1. Het is niet zo makkelijk als het lijkt

“Wat? Hoezo makkelijk?!”, denk je misschien.

Tja, toen ik met machine learning leek het me dan ook alles behalve makkelijk. Maar, op een bepaald punt had ik genoeg geleerd dat ik dacht dat het allemaal best simpel was en dat ik deze wedstrijd wel eens even zou gaan laten zien wie de baas was. Immers, alle informatie die ik verder nodig had om te winnen was te vinden, inclusief legio aan voorbeeld kernels van mede-Kagglers.

Viel toch tegen.

Zoals ik al zei was er meer dan genoeg informatie te vinden. Maar, dat was dan ook precies het probleem: teveel informatie is bijna net zo erg als geen informatie. Waar begin je? Wat negeer je? Wat is belangrijk? Wat is minder belangrijk?

Er is gewoon niet genoeg tijd om het allemaal te bestuderen. En tegelijkertijd is er ook een heleboel wat er komt kijken bij het maken van een winnend model, heb ik gemerkt. Om zoveel informatie te verwerken tijdens een wedstrijd en dan ook nog die informatie allemaal foutloos toe te passen, dat valt niet mee.

2. Het is ook niet zo moeilijk als het leek

Het is niet onmogelijk. Stapje voor stapje kan je er komen.

Het is waar: Er is een heleboel informatie. Het is niet allemaal even belangrijk, maar er is toch een heleboel te leren.

Desalniettemin IS het allemaal best te doen. Een universitaire opleiding bevat nog veel meer informatie, en toch zijn er mensen die hun diploma halen, met voldoende tijd en inzet. Zo ook is de informatie voor het maken van een winnend model uiteindelijk gewoon te overwinnen.

De individuele onderdelen van een winnend model zijn soms op het eerste gezicht ingewikkeld, maar uiteindelijk valt dit best mee, heb ik gemerkt. Je leert ze gewoon een voor een, en langzaam maar zeker begint het dan allemaal wel in elkaar te passen. Er is nog een hoop te doen, maar er is ook al een hele hoop gedaan.

Stukje bij beetje. Dat is hoe je vooruitgang maakt.

 

3. Een EDA lijkt misschien nutteloos maar is dat zeker niet

In mijn eerste 3 Kaggle projecten deed ik alles vrij snel. Gewoon een werkend model krijgen in zo min mogelijk tijd.

Soms deed ik daarbij ook wat Exploratory Data Analysis (EDA), maar ik had dan altijd het idee dat dit niet echt veel uithaalde. Uiteindelijk ik gewoon alles in het machine learning algoritmen en kwamen er gewoon goede resultaten uit.

De informatie die ik dan tijdens mijn EDA had verzameld was misschien wel interessant, ik deed er uiteindelijk niets mee in mijn model. Daarom bleef ik ook niet al te lang hangen in de EDA tijdens deze Kaggle wedstrijd.

Dat was een fout.

Het is niet de schuld van de EDA wanneer je er geen nuttige informatie uit haalt. Het is een gebrek aan ervaring met het stellen van de juiste vragen en het herkennen van nuttige informatie. Mijn EDA’s waren tot dan toe nutteloos omdat ik gewoon nog geen benul had van wat je allemaal kan leren van een goede EDA. Nu ben ik begonnen daar een idee van te krijgen.  En wou ik dat ik in het begin de dingen had geweten die ik later met EDA en het lezen van de analyses van andere Kagglers had uitgevonden.

4. Leren vs resultaten vs gewerkte uren

Het maakt niet uit hoe lang je ergens mee bezig bent of hoe ingewikkeld het is. Althans, niet voor je Leaderboard score.

Je kan uren bezig zijn met het puzzelen met Principal Component Analysis, geheugen vermindering, herstructureren van je code en noem het maar. En deze dingen zijn zeker belangrijk. Maar, je score gaat er niet per se van omhoog. Zelfs Feature Engineering kan verspilde tijd zijn als je geen goede features weet te vinden.

Tegelijkertijd kunnen een paar minuten handmatig uitproberen van verschillende hyperparameters voor je model je 100 plekken omhoog brengen op het Leaderboard.

Mijn eerste score op het Leaderboard bracht mij al bijna in de top 50 procent waar ik uiteindelijk geëindigd was. En het enige wat ik gedaan had was een simpele kernel kopiëren die de data in gooide XGBoost zonder enige analyse of feature engineering. Vervolgens ben ik WEKEN bezig geweest met het proberen van allerlei technieken om mijn score te verbeteren, zonder enige verbetering van mijn score.

Waren deze weken verspilde tijd? Nee, dat zeker niet. Ik heb mijn score wellicht niet verbeterd, maar ik heb een hele hoop geleerd. Ook had ik een gevonden om het model sneller te laten uitrekenen. Deze zaken kwamen echter niet tot uiting op het Leaderboard.

Uiteindelijk behaalde ik mijn eerste verbetering in mijn score gewoon door domweg wat andere hyperparameters in te voeren in het bare bones model. Daarna pas begon het geleerde te klikken en verbeterde ik mijn score nog verder met Feature Engineering.

Ik had mijn score misschien nog sneller kunnen verbeteren als ik een beetje rond gekeken had voor kernels met betere scores en deze gewoon gekopieerd had.

Maar dan had ik natuurlijk niets geleerd.

 

5. Kaggle is een geweldige leerbron, maar…

Er valt ECHT een hele hoop te leren over machine learning op Kaggle, daar ben ik inmiddels wel achter. Maar deze kennis is niet allemaal direct toe te passen in de echte wereld.

Voor de beginnende Data Scientist die nog weinig ervaring met het trainen van modellen heeft en zijn PCA nog moet leren onderscheiden van zijn EDA is Kaggle geweldig. Zelfs voor de verder gevorderde Data Scientist is er nog een hoop te leren. Maar, er zijn grenzen aan wat je kan bereiken met het doen van Kaggle wedstrijden.

Want, een Kaggle probleem is niet een bedrijfsprobleem, en een Kaggle score is geen complete representatie van de kwaliteit van een machine learning oplossing.

Een model dat 20 verschillende algoritmes combineert om met behulp van honderden uren rekentijd de hoogst mogelijke accuraatheid te behalen is misschien geweldig voor Kaggle. Maar, niet zo geweldig voor een bedrijf dat voorspellingen wil maken over de vraag naar hun product voor morgen en inzicht wil krijgen in de belangrijkste factoren die deze vraag bepalen.

En hoe denk je dat die data die jouw Kaggle model gebruikt in de eerste instantie bij elkaar verzameld is? Denk je misschien dat die data zomaar uit de lucht is komen vallen? Of dat er uren aan research, brainstormen en verzamelwerk aan vooraf is gegaan?

Kortom, Kaggle is een geweldige leerbron, maar perfecte Kaggle skills maken nog geen perfecte Data Scientist.

 

Natuurlijk is dit lang niet het enige wat ik geleerd heb tijdens deze wedstrijd. Ik wou dat het mogelijk was om dit allemaal in een bericht van 5 minuten aan jullie te leren. Als dat namelijk het geval was dan had ik zelf zo’n bericht gelezen en had dit bericht 5 minuten Kaggle leeservaring in 5 minuten kunnen heten.

Helaas.

Wees niet getreurd. Er komen nog meer berichten. Maar, dat is alles voor nu.

 

Tot de volgende keer!

 

 

Relevante links

Wordt vandaag nog een Data Scientist!

Hallo wereld!

Wanneer is iemand een Data Scientist?

Wanneer hij een dataset heeft geopend? Wanneer hij een machine learning model heeft gebouwd? Wanneer hij een dag als Data Scientist heeft gewerkt? Een jaar? Twintig jaar?

Allemaal fout.

Iemand is een Data Scientist nadat hij/zij mijn geweldige tutorial voor Data Analyse met Jupyter Notebook heeft gevolgd!

In deze tutorial ga ik jullie wat simpele maar belangrijke trucjes leren om je data te analyseren.

Data analyse is de eerste stap voor alle data aspiranten. Of je nu Data Scientist wil worden, Data Analyst of Machine Learning Engineer, het begint allemaal met het openen van en analyseren van je databestandje.

Bekijk het gauw hier op mijn Github!

IKKE NIE SNAP NIE…

Gegroet Dataridders,

In dit bericht ga ik je drie praktische tips geven om om te gaan met het gevoel dat je een idioot bent tijdens het bestuderen van Data Science.

Of wat dan ook eigenlijk. Maar ik denk dat deze tips vooral erg nuttig zijn voor de aspirant Dataridder, omdat deze vaak niet alleen met hele complexe theorie in aanraking komt, maar dat vaak ook in isolatie doet van zijn mede idioten…

 

Tip nummer 1: Iedereen is een idioot

Wij mensen geloven graag dat we heel erg slim zijn. We kijken naar uitvindingen zoals de space shuttle, nano-technologie en Jersey Shore en kunnen ons superioriteitsgevoel over het dierenrijkdom niet bedwingen. Maar, de bittere waarheid is dat wij mensen als individu niet zo veel slimmer zijn dan de gemiddelde chimpansee als we graag willen geloven.

Tuurlijk, als soort als geheel kunnen wij een hele hoop indrukwekkende dingen bereiken maar als individu zijn we eigenlijk niet echt zo slim. Er zijn uitzonderingen geweest zoals Einstein en Mozart, maar zelfs deze geweldige brainiacs bouwden voort op de gezamenlijke intellectuele inspanningen van alle idioten die voor hen kwamen.

Iedereen kan een briljant idee hebben, maar niemand kan altijd briljant zijn, en dingen niet snappen is een state of life. Zelfs Einstein heeft nooit uitgevogeld hoe hij nu die muur moest bouwen.

Dus als jij een tutorial serie over Deep Learning aan het kijken bent en af en toe geen idee hebt waar meneer de Data Scientist het allemaal over heeft hoef je je echt niet te schamen of ontmoedigd te raken. De kans is groot dat hij het zelf ook niet altijd weet, en de student achter de laptop in het huis aan de overkant weet het al helemaal niet.

 

Tip nummer 2: De aanhouder wint, meestal…

Oke, misschien dat je het de eerste keer allemaal maar half begrijpt en je hoofd inmiddels op springen staat, maar morgen is er weer een nieuwe dag. Zie het leren als het drinken van een grote emmer vol water, bier, thee, of wat je vloeistof naar keuze ook mag zijn.

Het punt is, er is maar zoveel nieuwe informatie die je op een dag kan verwerken. Maar, morgen is er weer een nieuwe dag, is je hoofd weer uitgerust en kan je de informatie weer opnieuw aanvallen.

Grote kans dat je het deze keer beter begrijpt dan de vorige keer!

Herhaal dit proces vaak genoeg en op een gegeven moment zul je de informatie meestal voldoende geadsorbeerd hebben.

Meestal. Geen garanties echter. Soms is de informatie gewoon geschreven in het Chinees en is het beter om een andere leerbron te vinden of door te gaan naar de volgende les. Of om eerst Chinees te leren.

Maar dat je iets niet meteen snapt hoeft niet te betekenen dat je het met wat herhaling niet kan ontcijferen. Zelfs een chimpansee kan een paar woordjes Chinees leren met voldoende doorzettingsvermogen.

 

Tip nummer 3: Je hoeft het niet allemaal te snappen!

Dit is misschien nog wel het allerbelangrijkste om je te realiseren. Zoals ik al zei kan je als je iets niet snapt af en toe het beste gewoon door gaan naar de volgende les. Maar, de beste manier om uit te vinden of je moet weten om iets te doen is door het gewoon te doen.

Blijf niet hangen in de theorie, probeer gewoon dat model te trainen. Kom je er dan niet uit dan weet je vaak wel wat je moet herhalen om er uit te komen. Zo niet, dan wordt het tijd om daar achter te komen.

Zelfs als je 80 procent van de theorie niet begrijpt kun je soms nog steeds prima de opgaves maken. Als je altijd alles probeert te snappen dan kom je nooit aan uitvoeren toe en leer je uiteindelijk niets praktisch.

Dat is alles voor nu,

 

Tot de volgende keer!

3 Lessen uit 3 Kaggle projecten

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:

  1. Titanic: Machine Learning from Disaster

  2. Digit Recognizer

  3. House Prices: Advanced Regression Techniques

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!

Moeiteloos leren

Gegroet aspirant Dataridder,

Ben je al DAGEN, WEKEN, misschien zelfs MAANDEN lang aan het studeren voor Machine Learning? Heb je je verdiept in Neurale Netwerken, Beslissingsbomen, Lineaire Algebra, Statistiek en Python en ben je inmiddels al weer vergeten wat je geleerd had over Neurale Netwerken? En heb je nog steeds geen enkele praktijk ervaring met het trainen van Machine Learning modellen?

Dat moet toch makkelijker kunnen?

In een eerder bericht had ik je al verteld dat ik recent mijn eerste eigen Machine Learning project volbracht had. In dit bericht ga ik jou vertellen hoe jij dit OOK kan bereiken, maar dan zo snel, gemakkelijk en plezierig mogelijk!

Waarom is dit eerste project nou zo belangrijk?

Nou, het is mijn ervaring dat je het beste leert programmeren door, je raadt het al, te programmeren. Het merendeel van mijn vaardigheden met Java heb ik aangeleerd door gewoon lekker te prutsen met het maken van mijn eigen spellen. En wat dat betreft is machine learning precies hetzelfde.

Dankzij de Machine Learning Accelerator had ik de vaardigheden geleerd die nodig waren om mijn eerste project te volbrengen. En tijdens dat project heb ik een hele hoop geleerd.

Vervolgens ben ik door gegaan naar Kaggle en heb ik in een fractie van de tijd NOG een project volbracht, de Titanic wedstrijd, en daarbij NOG meer geleerd.

Nu ben ik met enthousiasme begonnen aan de Digit Recognizer en daarvoor het Deep Learning traject aan het bestuderen voor Image Recognition met TensorFlow. Dankzij de ervaring die ik heb opgedaan tijdens mijn eerste twee projecten sluit deze nieuwe informatie geweldig aan bij wat ik al weet.

Zie je wat de kracht is van het maken van je eerste machine learning model?

Je zou jaren lang door kunnen blijven leren over Neurale Netwerken, Lineaire Algebra, optimalisatie problemen en ga zo maar door en nog steeds geen stap dichterbij zijn bij het maken van je eerste model. De kans is groot dat je ook de motivatie verliest LANG voordat je zover bent. Maar leer om één model te maken, hoe stom of simpel dan ook, en je hebt niet alleen de basiskennis om een geavanceerder model te maken, maar ook de motivatie!

Misschien dat je denkt dat dit allemaal vanzelfsprekend is. Geweldig! Maar, zelf heb ik gemerkt hoe gemakkelijk het is om verdwaald te raken in de overvloed aan informatie die beschikbaar is op het internet, vooral als je helemaal zelfstandig en groen aan het leren bent.

Oké, hopelijk heb ik je nu overtuigd.

Maar, wat moet je nu leren om je eerste machine learning project te volbrengen? Nou, er is niet echt één antwoord. Het hangt ervan af wat je wil maken. En dat is maar goed ook. Want, dat betekent dat er ook al meteen een hele hoop is wat je NIET hoeft te leren.

Desalniettemin zijn er een aantal dingen die ik zou adviseren om te leren, ongeacht wat je eerste project ook zal zijn:

  1. Wat is Machine Learning?
  2. Basis van met Python programmeren in Jupyter Notebook
  3. Hoe werkt een Machine Learning Algoritme?
  4. De Machine Learning Workflow

En dat is het!

Blijf echter niet te lang vast hangen in deze stappen. Zorg gewoon dat je snel een overzicht hebt van deze onderwerpen en begin dan gewoon. Als er gaten blijken te zijn dan kan je die het best al doende aanvullen tijdens het uitvoeren van je eerste project. Zo voorkom je dat je tijd en momentum verspilt aan dingen die je niet echt nodig hebt voor het volbrengen van je eerste project.

Nu zijn er meer dan genoeg opties beschikbaar om dit punt te bereiken. Het IS mogelijk om dit allemaal stukje voor stukje van het internet aan te vissen, maar ik zou aanraden om een tutorial te volgen die al deze stappen behandeld zonder teveel overige afleidingen.

Zelf heb ik dat dus gedaan met de Machine Learning Accelerator cursus, maar Kaggle heeft bijvoorbeeld ook een Intro to Machine Learning cursus van Dan Becker, welke al deze elementen lijkt te bevatten. Nu heb ik deze cursus zelf niet gevolgd, maar de Deep Learning cursus die ik nu volg is ook van Dan Becker en de kwaliteit is goed, al vermoed ik wel dat het lastig kan zijn om het te volgen als je niet een beetje meer achtergrond hebt.

Maar ja, welke cursus het meest geschikt voor jou is hangt af van je bestaande voorkennis en hoe snel je dingen op pakt. Dat is aan jou. Maar, wat ik je met dit bericht hopelijk heb meegebracht is dat de leukste, makkelijkste en snelste manier om te leren programmeren of modelleren al doende is.

En dat je daarom dan ook van het begin af aan zo weinig mogelijk tijd wilt verspillen aan andere onzin. Focus op het leren van alleen het meest essentiële voor het uitvoeren van dat eerste project. Zodra je dat in je zak hebt wordt het leerproces opeens een stuk leuker en gaat het bijna vanzelf.

Ik zou daarom ook aanraden om dat eerste project niet al te ambitieus te maken. Begin bijvoorbeeld gewoon met de Titanic wedstrijd op Kaggle. Dat is al uitdaging genoeg voor een beginner, geloof me. En als je dan vast loopt zijn er dan ook meer dan genoeg hulpbronnen te vinden om je verder te helpen.

Bijvoorbeeld sedaniel@dataridder.nl 😉

Maar 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!

 

Khan Academy

Hallo wereld,

Hebben jullie al een account op Khan Academy? Ik wel namelijk en het is echt een geweldige website. Khan Academy is een non-profitorganisatie gecreëerd door Salman Khan die een innovatief leerplatform vrij ter beschikking stelt op het internet. De website beschikt over een gratis onlineverzameling van meer dan 3000 les-fragmenten die met video bijeen zijn gebracht op YouTube. De originele website is in het Engels, maar er is eventueel ook een Nederlandse pagina en de video’s hebben daarbij Nederlandse ondertitelingen.

Op het moment ben ik Khan aan het gebruiken voor het leren van Statistiek, Calculus en binnenkort ook Lineaire Algebra. De wiskundige disciplines die op mijn toekomstige CV staan. Nu heb ik deze vakken al op de universiteit geleerd, herhaling kan ik altijd gebruiken, vooral in het geval van Statistiek, de kern van Data Science.

Er is echter een heleboel informatie beschikbaar op Khan Academy. En, hoewel het een optie is om gewoon bij het begin van elk vak te beginnen en alle video’s en opgaven een voor een te volgen, lijkt me dat zeker niet de meest efficiënte methode.

Het geweldige aan Khan Academy is namelijk dat je meteen al een test kan afleggen van 30 tot 45 minuten (of langer, afhankelijk van hoe lang je er over doet). Dit stelt je in staat om meteen te zien waar je sterke en zwakke kanten liggen, en je te focussen op wat je nog niet weet. Dit is niet alleen (maar zeker) slim om te doen om tijd te besparen, het zorgt er ook voor dat je de lessen kunt kijken met specifieke vragen in je achterhoofd. Dit zorgt ervoor dat je een stuk sneller (en leuker) leert dan wanneer je gewoon video voor video gaat kijken, zonder specifieke vragen.

Khan Academy heeft niet alleen uitstekende pakketten voor het leren van Statistiek, Calculus en Lineaire Algebra, maar nog veel meer! Onder andere een hoop meer Wiskunde, van tot tien tellen tot Multivariabele Calculus. Maar ook Ondernemen, Economie, Computer Science, Natuurkunde, noem het maar!

En dankzij het systeem met mastery points en levels voelt het leren bijna aan alsof je een computer spel aan het spelen bent. Je kunt ook badges verdienen en hulp krijgen en bieden op de community pagina. Een echte aanrader dus voor iedereen die geïnteresseerd is in leren, en het niet erg vindt om dat gratis, samen en op een leuke manier te doen. Maar dat is alles voor nu.

Tot de volgende keer!

Thank you Simple Programmer!

Hello world,

Today I want to give special thanks to Simple Programmer for creating the blogging course that helped me start my own blog. Seriously, I’m not sure when or if I had gotten around to it if it weren’t for this email course. I would seriously recommend it to anyone who wants to start his or her own blog. You can find the course here. Oh, and did I mention it is absolutely FREE?

As you may or may not have noticed already, I am writing this blog post in English. Somehow it just seemed fitting. The blogging course is in English, Simple Programmer is in English as well, and although John Sonmez, the founder of Simple Programmer, is a very smart man, I don’t think he has gotten around to learning Dutch yet.

About the course: This course will help you through the entire process of setting up your blog, from coming up with a theme to writing your first blog post to actually getting people to read it. Along the way you will get valuable advice for what to write about, how to come up with ideas and how to stay consistent.

About Simple Programmer: Well, you can go and look at the about page yourself here. But In short, it is a website dedicated to helping software developers, programmers and other IT professionals improve their careers and live better lives. But in all honesty, this website doesn’t just help programmers and IT professionals, it helps anyone who reads it. I have also followed John Sonmez on Youtube for quite some time now and he gives plenty of good free advice there too. So if you are interested in that, go check by clicking on any one of the previous links I so painstakingly scattered throughout this post for you.

I know I have given you a lot of links and praise now. It is because I really think it is good content, I am not getting paid for this or anything.

I wish!

That is all for now.

Until next time!

 

 

Project Aankondiging: Studenten Datasysteem

Gegroet Dataridders,

Kort geleden ben ik een gratis cursus begonnen op Udemy: Practice Java by Building Projects. Een van de opdrachten in deze cursus betreft het maken van een Studenten Datamanagement Systeem.

Nu zijn de eisen bij deze opdracht vrij laagdrempelig. Het de bedoeling om een applicatie in Java te schrijven die het mogelijk maakt om via de console studentendata in te voeren, aldus voor een fictieve beheerder, en daarnaast om studenten in staat te stellen om zich in te schrijven voor vakken. Elk object binnen deze applicatie heeft slechts een paar variabelen en functies nodig, en ik had de applicatie dan ook binnen een uurtje geschreven. De code is te vinden op https://github.com/SamsonCodes/Business-Applications

Wat dat betreft was deze cursus dus een beetje een anticlimax tot dusver, hoewel het qua kwaliteit wel prima in orde is en een goed beginpunt is voor beginners. Maar later kreeg ik het idee om deze en de andere opdrachten in deze cursus tot een nieuw niveau te brengen en applicaties te schrijven die de praktijk dichter benaderen. Applicaties met een daadwerkelijke user-interface, in plaats van de console, en met wachtwoord beveiliging, meer en meer realistische variabelen etc. En dit idee heeft dan ook mede bij gedragen aan de keuze voor het beginnen van een blog over datasystemen.

Om te beginnen zal ik dit dus doen voor het studenten datasysteem. In tegenstelling tot de code op Github zal ik dit waarschijnlijk gaan doen in Netbeans in plaats van Eclipse. Ik heb namelijk de meeste ervaring met Netbeans en heb voor deze projecten alleen Eclipse gebruikt om er wat meer ervaring mee op te doen, voor het geval dat ik er ooit weer eens mee moet werken. Maar ik vindt Netbeans persoonlijk veel fijner om in te werken.

Ter voorbereiding op dit project ben ik ook al begonnen met experimenteren met de JavaFX bibliotheek en heb ik een tutorial gevolgd op docs.oracle.com. In deze tutorial heb ik geleerd om een simpel inlogscherm te maken en hoe hem te exporteren naar bruikbare applicaties, alhoewel ik voor dat laatste nog wat extra onderzoek zal moeten doen. Hoe dan ook, ik heb besloten om deze applicatie te gaan maken met JavaFX aangezien de consensus online leek te zijn dat deze bibliotheek de toekomst is en de Swing bibliotheek (mijn go-to tot dusver) het verleden. Bovendien was mijn eerste indruk van JavaFX ook vrij positief, het is simpel genoeg om te leren en de opties voor stijlopmaak met CSS spraken me ook aan.

Wellicht zal dit project niet het enige zijn waar ik mij in de nabije toekomst mee bezig zal houden, maar het zal wel mijn hoofdproject zijn. Hoe ver ik het nu precies ga brengen weet ik niet nog niet. Ik heb geen ervaring met het maken van deze systemen en enkel ervaring met het gebruiken van deze systemen als student. Verder zal ik het moeten doen met wat er op het internet over te vinden is. Maar ik ga zo goed mogelijk mijn best doen om het op een applicatie te laten lijken die daadwerkelijk gebruikt zou kunnen worden. Mogelijk wordt het zelfs een applicatie die daadwerkelijk gebruikt KAN worden.

Maar dat zien we nog wel. Voor nu, verwacht regelmatige updates over dit project (ik zal minimaal een bericht per week publiceren, maar niet per se allemaal over dit project), totdat ik het als compleet beschouw. Dat is alles voor nu.

Tot de volgende keer!