Waarom en hoe leer je Python voor Data Science?

18 september 2017

Artikel geschreven door Jeroen Kromme, Senior Consultant

Python krijgt een steeds grotere voetprint in de interessante wereld van Data Science. Zo zegt KDnuggets dat Python R zelfs voorbij is als leider in het klassement der A.I. en Machine Learning platforms. Maar wat maakt Python nu zo bijzonder voor data science? Eén van de redenen is dat Python een general-purpose programming language is. Hiermee wordt bedoeld dat Python geen specifiek doel heeft, waardoor het mogelijkheden biedt om modellen direct in te zetten in een bredere context. R is daarentegen geen general-purpose language, aangezien het voornaamste doel statistisch modelleren is. Nog een reden dat Python zo populair aan het worden is, is dat het een gemakkelijke taal is om te leren, waardoor niet-programmeurs (zoals ik) toch gemakkelijk een programmeertaal kunnen leren.

Is het dan beter om alleen Python te leren en niet meer met R aan de slag te gaan? Nee! Python is complementair aan R. In een eerder artikel hebben we R en Python met elkaar vergeleken (samen met SAS en SPSS). R is sterk in zowel verklarende als voorspellende analyses, Python’s focus zit echt op de voorspellende kant: Machine Learning, Data Mining en Artificial Intelligence toepassingen worden eerder geschreven in Python dan in R. Tensorflow, het Deep Learning framework ontworpen door Google, is ook geschreven in Python. Dat Python R aan het inhalen is in Machine Learning, betekent dus niet dat Python R overal vervangt, met name bij het maken van voorspellen is R nog veel groter dan Python.

 

Wanneer gebruik ik Python?

Als een algoritme onderdeel is van een groter geheel en als de uitkomsten rechtstreeks gebruikt moeten worden voor een vervolgactie valt mijn keuze vaak op Python. Zo zijn we bijvoorbeeld bezig met een koffiezetapparaat met gezichtsherkenning en dit bouwen we in Python. Nadat het algoritme de persoon heeft herkend, moet het apparaat namelijk direct actie ondernemen en koffie gaan zetten. Of bij zelfrijdende auto’s wordt Python gebruikt: Als een algoritme een bocht naar links of een overstekend persoon of kind herkend, moet het meteen naar acteren.

 

Python 2.7 vs Python 3

In 2008 besloot Guido van Rossum in de ontwikkeling van Python meer nadruk te leggen op het opschonen van de code dan op backwards compatibility (= dat oude code het blijft doen op nieuwere versies). Met als gevolg dat er nu twee versies van Python rond gaan: 2.7 en 3.5.

Je gebruikt toch altijd gewoon het nieuwste? In dit geval hoeft dat niet zo te zijn. De meeste packages zijn namelijk nog geschreven in Python 2.7, waardoor je daar nu het meeste nog mee kan. Echter, wordt er steeds meer en meer beschikbaar voor Python 3. Sommige nieuwe packages worden wel al alleen voor Python 3 ontwikkeld, kijk bijvoorbeeld naar Tensorflow. Maar het echte omslagpunt moet nog komen.

Persoonlijk gebruik ik voornamelijk nog Python 2.7, aangezien al mijn oude code hierin is geschreven. Alleen als ik Deep Learning modellen wil trainen, maak ik gebruik van Python 3, aangezien Tensorflow alleen in Python 3 is ontwikkeld. Je kunt beide naast elkaar hebben draaien op je computer. Er zijn functionaliteiten beschikbaar om Python 2 naar Python 3 code en vice versa te converteren.

 

Hoe leer je Python?

De populariteit van de taal zie je ook in het aantal cursussen dat er tegenwoordig is. Coursera heeft ondertussen 115 courses en specialisaties met Python, vele universiteiten en websites hebben online courses beschikbaar gesteld en er zijn tal van boeken beschikbaar. Door de bomen zie je het bos niet meer. Dus waar begin je nu?

Een programmeertaal leren valt te vergelijken met het leren van een nieuwe taal. Je kunt het leren, maar door veel te oefenen, krijg je het echt onder de knie. Wij raden dan ook aan om te beginnen met één van deze twee cursussen: Code Academy of Udemy. Deze cursussen beginnen laagdrempelig en hebben een logische opbouw. Als je hiermee klaar bent, ga dan gewoon aan de slag. Ga dingen bouwen met Python: Bouw een keer een model in Python in plaats van de tool die je gewend bent. Of bouw bijvoorbeeld een webscraper die automatisch zoekt naar de goedkoopste tickets met de kortste tijden.

Bij het bouwen, heb Google ernaast staan. 99.9% van de dingen waar je tegen aanloopt, hebben anderen al gevraagd. Op websites zoals stackoverflow staan veelal goede instructies. Daarnaast zijn de volgende twee boeken ook erg handig als naslagwerk: Python Data Science Handbook van Jake VanderPlas en Python for Data Analysis van McKinney. Beide boeken leggen alles helder en laagdrempelig uit, met zeer veel voorbeeldcode.

Naast deze start-up guides zijn er wat andere tips die wij je kunnen geven:

  • Installeer Anaconda in plaats van de normale Python installers. Anaconda heeft al veel packages voor je geïnstalleerd en is daardoor makkelijk in gebruik.
  • Gebruik Jupyter Notebooks (wordt samen met Anaconda geïnstalleerd) in plaats van de Python interface. Het voordeel van notebooks is dat het interactief te werk kan gaan.
  • Handige Packages die je sowieso moet installeren als je aan de slag gaat met Machine Learning zijn:
    • Algemene must-have’s: numpy, scipy, pandas,
    • Machine Learning: statsmodels, scikit-learn
    • Deep Learning: Tensorflow , Theano, Keras
    • Visualization: matplotlib, plotly, ggplot
    • Webscraping: Selenium, Beautifulsoup, scrapy
    • Text Mining / NLP: NLTK, Gensim
    • Maken van User interfaces: Flask (web), PyGame, TKinter

Missen we hier interessante resources die ideaal zijn om Python te leren voor Data Science? Laat het ons weten!

Contact

Wil je meer weten over dit onderwerp? Neem dan contact op met Jeroen Kromme via onderstaande contactgegevens.

Jeroen Kromme, Senior Consultant

+31 6 43 58 59 92

j.kromme@cmotions.nl

Gerelateerd nieuws

Artificial Intelligence: Computers zijn soms net kinderen

7 juni 2017

Eén van de huidige buzzwords is A.I., ofwel Artificial Intelligence of Kunstmatige Intelligentie. Steeds vaker... lees meer

Insights as a Service

10 mei 2017

Je bent een marketeer in een organisatie met een Marketing Intelligence club. Je krijgt een... lees meer

Boek review: Data Scientist

29 maart 2017

The Definitive Guide to Becoming a Data Scientist door dr. Zacharias Voulgaris De wondere wereld... lees meer