Hallo wereld
Het is weer hoog tijd voor een project update. Mijn missie om een Random Forest te maken in Python gaat nog steeds door. Na uren van het vergroten van mijn kennis over beslissingsbomen, oefenen met Python en prutsen met Python is het me eindelijk gelukt om een werkende applicatie te maken! Er is nog een hele hoop werk te doen, maar de eerste boompjes hebben hun blaadjes gespreid.
Zoals ik al eerder had gezegd, mijn ervaring met Python was beperkt toen ik aan dit project begon. De helft van de uitdaging in dit project zat hem dan ook in het leren om te programmeren met Python. Echter, ik was ook geen complete beginner. Ik had al ervaring met Java en mezelf eerder al genoeg aangeleerd over Python om mijn eerste applicatie te maken: Conway’s Game of Life.
Deze manier van leren programmeren met het maken van een specifieke applicatie in gedachten is in mijn ogen HEEL BELANGRIJK. Want, als je niet weet WAT je wil programmeren en simpelweg het doel stelt om een programmeertaal te leren dan zul je nooit slagen. Je kunt een programmeertaal immers NOOIT helemaal leren! Zelfs een doel als “de basis principes van Python leren” is in mijn ogen nog steeds te vaag en je zult je daarbij eerst eens goed af moeten vragen:
- Wat zijn die basis principes?
- Waarom wil ik ze leren?
- Wat kan ik ermee maken?
Aldus had ik opnieuw het doel om meer over Python te leren met een specifieke applicatie in gedachten. Om dit doel te behalen moest ik wel eerst mijn kennis van de basis syntax een beetje herhalen en aanvullen. Om dat te doen had ik onder andere deze video gekeken, waarin Python in 40 minuten wordt uitgelegd, op advies van EliteDataScience. Wees gewaarschuwd echter, hoewel het meeste wat in deze video wordt uitgelegd best nuttig is, is de kwaliteit niet overal even goed. Aan het eind van de video kwam ik namelijk in de problemen met niet werkende code vanwege een typefout. Nou, dat was mijn eigen schuld natuurlijk, maar toen ik daar op stackoverflow een vraag over stelde kwam ik erachter dat een significant aantal ervaren Python programmeurs de manier waarop hij een aantal dingen deed vrij slecht vonden. In het bijzonder ging het om zijn onhandige manier van het benoemen van variabelen, en zijn manier van het declareren van classes en het implementeren van inheritance. Als geheel is de video echter nog steeds nuttig als spoedcursus, maar wees dus gewaarschuwd dat het niet allemaal even geweldig is.
Daarna ging ik verder met het volgende advies op EliteDataScience. Ze verwezen naar een leuke puzzelpagina waarbij je puzzels kunt oplossen met Python. Hoewel dit in het begin heel leuk was werkte om de een of andere reden een van mijn oplossingen niet helemaal en kon ik de volgende pagina (derde geloof ik?) niet vinden. Ik kwam wel op een of andere forum pagina die mij informeerde dat ik de oplossing juist had, maar de url voor de volgende pagina werkte echter niet voor mij. Dus opnieuw, wees gewaarschuwd.
Maar ja, genoeg daarover. Terug naar het hoofd onderwerp, het project. Waar begin ik? Nou, ik ga er even van uit dat jullie al up-to-date zijn met hoe beslissingsbomen werken. Is dit niet het geval, lees dan misschien beter eerst even mijn eerdere bericht over de werking van beslissingsbomen. De code is te vinden op Github, maar ik denk dat het het handigst is om uit te leggen hoe het allemaal werkt in een video.
Hieronder staat ook nog een selectie van een aantal van de vele bronnen die ik gebruikt heb gedurende dit project tot dusver. Dat is alles voor nu.
Tot de volgende keer!
Bronnen:
- Decision Tree – saedsayad.com
- Decision Tree Regression – saedsayad.com
- Decision Tree: an algorithm that works like the human brain – Emma Grimaldi
- Machine Learning Algorithms Explained
- Gini Index Voorbeeld berekening
- Random Forests – Siraj Rival – Youtube
- Random Forest – Augmented Startups – Youtube