Ga naar hoofdinhoud

40+ Python-statistiekbronnen voor Data Science

Een lijst met Python-bronnen voor de acht statistiekonderwerpen die je moet kennen om uit te blinken in data science
· 13 min lezen

Verken met AI

Data Science versus Statistiek

Volgens onze “Leer Data Science in 8 (makkelijke) stappen”-infographic is een van de eerste stappen om data science te leren: een goed begrip krijgen van statistiek, wiskunde en machine learning.

Als je het je goed herinnert, is de volgende stap leren programmeren.

Maar zodra je alle Python kent die je nodig hebt voor data science, is het tijd om de kennis die je hebt opgedaan te verzilveren.

De statistiekonderwerpen voor data science waar deze blog naar verwijst en bronnen voor biedt, zijn:

Deze lijst is niet uitputtend voor de statistiek die in data science wordt gebruikt, maar is bedoeld om je op weg te helpen. :) 

Trouwens, als je nog wilt beginnen met Python voor data science, overweeg dan onze cursus Intro to Python For Data Science. Die helpt je statistiek met Python toe te passen. 

Statistiek leren voor data science is heel praktisch, en daarom moet je niet vergeten om ook te blijven focussen op het oefenen van de theoretische concepten die je misschien al aan het begin van je data science-reis hebt geleerd.

Maar wat is nu precies het verschil tussen statistiek en data science?

Ze worden vaak door elkaar gehaald, en sommigen zeggen dat er geen verschil is en dat de data scientist eigenlijk een statisticus is.

Maar uiteindelijk, als je die meningen even parkeert, kan de meesten het erover eens zijn dat statistiek een van de kerncomponenten is die in data science wordt gebruikt en een van de basiscomponenten vormt.

Statistiek met Python

De post van vandaag richt zich op hoe je statistiek met Python kunt leren. Inclusief statistische analysethema’s die je tijdens je data science-reis met Python moet verkennen.

Waarom Python?

R is een goede plek om te beginnen met statistiek. Het is ontwikkeld voor statistische berekeningen en grafieken, dus het biedt een heleboel statistische pakketten. Python daarentegen is een general-purpose taal met veel toepassingsgebieden.

Je kunt Python echter ook voor statistiek gebruiken.

Sommige mensen zeggen dat ze Python gebruiken vanwege de performance of omdat het ook veel kan wat R kan. 

Maar in essentie groeit de populariteit van deze programmeertaal, en het aantal pakketten dat voor data science kan worden gebruikt, is de afgelopen jaren zeker toegenomen. 

Kortom, er zijn zeker redenen om Python voor statistische analyse te gebruiken.

De tool die je uiteindelijk kiest, hangt gewoon af van het type analyse dat je wilt doen.

Dus, klaar om te beginnen met statistiek in Python?

PS. Als je ook op zoek bent naar bronnen om statistiek voor R of R te leren, bekijk dan DataCamp’s open cursussen of de Intro to Statistics With R.


Leer Python-statistiek voor Data Science


Python-statistiek & kansrekening

Het eerste onderwerp dat je waarschijnlijk moet aanpakken, is statistiek en kansrekening. Er zijn niet alleen heel wat video’s en cursussen die je kunnen helpen, maar er zijn ook veel (gedrukte) boeken die je op weg helpen met statistiek in Python.

Introductie tot statistiek met Python 

Voor een introductie tot statistiek is deze tutorial met voorbeelden uit de praktijk een aanrader. De notebooks van deze tutorial introduceren je aan concepten als gemiddelde, mediaan, standaarddeviatie en de basis van onderwerpen zoals hypothesetoetsing en kansverdelingen.

Een prima manier om je statistiekleren te starten, want het is geïnspireerd op de boeken "Think Bayes" en "Think Stats", twee topaanbevelingen die hieronder terugkomen!

Als je op zoek bent naar boeken, probeer dan dit gratis boek over computationele statistiek in Python, dat niet alleen een introductie tot programmeren met Python bevat, maar ook onderwerpen behandelt zoals Markov Chain Monte Carlo, het Expectation-Maximization (EM)-algoritme, resampling-methoden en veel meer.

Of je kunt dit boek van Thomas Haslwanter kopen voor een algemene introductie tot veelgebruikte statistische toetsen, lineaire regressieanalyse en onderwerpen uit survivalanalyse en Bayesiaanse statistiek. Let op: dit boek neemt de levens- en medische wetenschappen als toepassingsgebied.

Beide bovenstaande boeken introduceren je, zoals je ziet, ook al in meer geavanceerde statistiekonderwerpen met Python.

Als je fan bent van video’s, overweeg dan deze tutorial over statistische data-analyse met SciPy te bekijken, met Christopher Fonnesbeck, Assistant Professor aan de Department of Biostatistics van de Vanderbilt University School of Medicine. Er is ook deze video over inferentiële en verkennende statistiek met Python door Gaël Varoquaux. Deze laatste video gebruikt de Python-pakketten Pandas en StatsModels. 

Je ziet dat dit vrij algemene bronnen zijn om je op weg te helpen met statistiek in Python.

Als je op zoek bent naar bronnen die je snel op snelheid brengen met de basis van statistiek, bekijk dan DataCamp’s cursus Statistical Thinking in Python, gegeven door Justin Bois. Je wordt geïntroduceerd in concepten als Exploratory Data Analysis (EDA), variantie en covariantie, gemiddelden en medianen, kansverdelingen en nog veel meer.

Kansrekening met Python

Kansrekening is ook iets wat enorm waardevol is om mee te nemen als je statistiek met Python leert. Het is de analyse van willekeurige verschijnselen. Dat betekent dat de uitkomst van een willekeurige gebeurtenis niet-deterministisch is: het kan elk van de verschillende mogelijke uitkomsten zijn, en de uiteindelijke uitkomst wordt door toeval bepaald.

Kansrekening bevat de conceptuele oorsprong van statistiek.

De bronnen die hierboven zijn genoemd, gaven een algemene introductie tot statistiek en in sommige gevallen behandelden ze ook kansrekening (wat logisch lijkt gezien het bovenstaande), maar er zijn ook bronnen die zich exclusief op dit onderwerp richten.

Je kunt ook de volgende bronnen bekijken:

Een van de topaanbevelingen is de cursus Computational Probability and Inference van EdX. Deze hands-on cursus, gegeven door MIT-docenten, maakt je vertrouwd met de principes van kansrekening en inferentie.

Je zou ook dit gratis boek moeten lezen, geschreven door Professor Brian Blais, een inleidend leerboek statistische inferentie, gemotiveerd door kansrekening als logica.

Python-kansverdelingen

Om statistiek met Python voor data science echt te leren, moet je ook een goed gevoel ontwikkelen voor wanneer welke verdeling wordt gebruikt. Een verdeling is een overzicht of functie die alle mogelijke waarden of intervallen van de data en hun frequentie toont.

En als je naar deze lijst kijkt, zie je dat er heel wat verdelingen te overwegen zijn.

Voor een introductie tot uniforme, normale, binomiale en Poisson-kansverdelingen met SciPy kun je deze blogpost bekijken.

Een topaanbeveling is het vierde hoofdstuk in het boek “Think Stats: Probability and Statistics for Programmers”, dat je introduceert in continue verdelingen. Het vijfde hoofdstuk geeft je echter ook een solide introductie tot kansverdelingen.

Om verdelingen te visualiseren, kun je onder andere histogrammen gebruiken. Als je snel een overzicht wilt, bekijk dan deze IPython-notebook, die je een korte introductie geeft tot beschrijvende statistiek met gemiddelden, kwantielen en histogrammen en hun relaties. Wil je meer leren over hoe je verdelingen kunt visualiseren, bekijk dan deze Seaborn-tutorial.

Er is ook deze plotly-tutorial over basisstatistiek in Python.

Let op: als je een cursus wilt volgen die enkele van de verdelingen behandelt, zoals binomiaal en Poisson, en verdelingsfuncties zoals de empirische cumulatieve verdelingsfunctie, of een cursus die je leert hoe je deze verdelingen visualiseert, bekijk dan DataCamp’s cursus Statistical Thinking in Python.


Kansverdelingen in Python


Hypothesetoetsing in Python

Hypothesetoetsen zijn statistische toetsen die worden gebruikt om te bepalen of er voldoende bewijs is in een steekproef om af te leiden dat een bepaalde voorwaarde waar is voor de gehele populatie.

De twee centrale concepten van deze toetsen zijn de nulhypothese en de alternatieve hypothese, maar ook de p-waarde is fundamenteel voor hypothesetoetsing. Deze zaken zijn lastig te begrijpen wanneer je nieuw bent in het vakgebied, en het kost wat moeite om de alfawaarde of significantieniveau voor je p-waarde te doorgronden en wat het verschil maakt tussen het verwerpen of niet-verwerpen van de nulhypothese.

Je vindt een tutorial op de site van de SciPy-bibliotheek die kort met p-waarden en schatting werkt.

Deze SciPy-lezingen introduceren je in de t-toets, die je kunt gebruiken om je hypothese te testen door de gemiddelden van twee populaties te analyseren. Je kunt ook terecht bij deze blogpost als je t-toetsen wilt verkennen.

Als je een boek wilt lezen, blijft de topaanbeveling het boek “Think Stats: Probability and Statistics for Programmers” ook voor hypothesetoetsing geldig. Het zevende hoofdstuk leert je alles over hypothesetoetsing als je niet al door de andere hoofdstukken bent gegaan om over verdelingen te leren.

Voor wie op zoek is naar cursussen: DataCamp’s Statistical Thinking in Python (Part 2) biedt een introductie en testvoorbeelden om de nodige kennis en oefening op te doen in hypothesetoetsing en nog veel meer. 

Statistische modellering en fitten in Python

Nu je hypothesetoetsing en verdelingen onder de knie hebt, kun je eerst herhalen of dieper ingaan op hoe je statistische modellen maakt en verdelingen op data fit.

Statistische modellen benaderen wat je data genereert en kunnen in data-analyse worden gebruikt om data samen te vatten, te voorspellen en te simuleren. Met andere woorden, het is een representatie van complexe verschijnselen die de data hebben gegenereerd, en die kan worden gebruikt voor samenvattingen, voorspellingen of simulaties.

Dit houdt echter in dat je ook moet kunnen vaststellen of je data bij dat model past.

Om de beste fit tussen het model en de data te krijgen, kan schatting worden gebruikt. Schatting houdt zich bezig met het trekken van conclusies over een populatie, op basis van informatie uit een steekproef. Naast hypothesetoetsing is het een manier om iets te leren over de populatie vanuit de steekproef.

Deze tutorial introduceert je in het onderwerp fitten met behulp van de Python-bibliotheek SciPy.

Statistische datamodellering en fitten is ook een hoofdstuk in deze tutorial statistische analyse, uitgewerkt in notebooks en gemaakt door Christopher Fonnesbeck. Die naam klinkt nu vast bekend! 

Voor wie meer van video’s houdt, is deze tutorial ook beschikbaar op YouTube in vier delen en behandelt onderwerpen zoals schatting (Maximum Likelihood en Momentenmethode).

Je kunt de video’s van deze tutorial hier bekijken.

Trouwens, als je meer wilt weten over de Maximum Likelihood-schatting voor statistische patroonclassificatie, mis dan deze IPython-notebook niet of deze notebook die uitlegt hoe je deze schatter voor verschillende verdelingen berekent. Deze notebooks maken deel uit van de pattern classification-repository van Sebastian Raschka, die ook een andere repository heeft voor zijn Python Machine Learning-boek. 

Machine learning met Python

En met zijn laatste suggestie voor het Machine Learning-boek vraag je je misschien af: deze post ging toch over statistiek?

Klopt.

En het is niet zo dat machine learning en statistiek hetzelfde zijn, maar ze stellen wel dezelfde vraag: hoe kunnen we van data leren?

Ook worden zowel machine learning- als statistische technieken vaak gebruikt in bijvoorbeeld patroonherkenning of data mining. 

Machine learning is een heel bruikbaar hulpmiddel in je data science-gereedschapskist. Het is een tamelijk breed onderwerp, en je kunt er veel tijd aan besteden om de concepten en algoritmen te doorgronden.

Daarom kun je maar beter nu beginnen!

Maar het is niet heel eenvoudig waar je moet beginnen, omdat het zo breed is en er veel bronnen bestaan om vaardig te worden met machine learning in Python.

De algemene machine learning-cursus van Andrew Ng is behoorlijk theoretisch, maar wordt nog steeds aanbevolen als je de hoofdconcepten en -algoritmen eerst vanuit theoretisch perspectief wilt benaderen.

Er zijn echter ook veel praktischere bronnen die je op weg kunnen helpen.

De volgende bronnen zijn slechts een greep uit het aanbod:

Deze vriendelijke introductie tot machine learning met SciPy helpt je op het juiste spoor. Deze tutorial is ideaal voor wie basiskennis statistiek wil opfrissen en daarop wil voortbouwen. Kyle Kastner leidt je langs parameterinschatting, regressie, modelinschatting en basisklassificatie.

Als je dit onderwerp via een boek wilt benaderen, kun je de IPython Interactive Computing and Visualization Cookbook bekijken. Het achtste hoofdstuk geeft je een introductie tot fundamentele machine learning-concepten en illustreert algoritmen zoals logistische regressie, Naive Bayes, K-nearest neighbors, Support Vector Machines, random forests en andere. De cookbook gebruikt het Scikit-learn-pakket voor de voorbeelden.

Als je een tutorial wilt met een introductie tot machine learning met Scikit-learn, ga dan hierheen. 

Mis ook deze tutorial over de Naive Bayes-classifier niet.

Regressieanalyse met Python

Regressie is zeker iets wat je niet mag missen als het gaat om statistiek voor data science. Het is een statistisch proces om de relatie tussen variabelen te schatten.

Om te begrijpen hoe je regressie met Python kunt doen, moet je eerst wat materiaal over lineaire regressie doornemen.

Maar bekijk eerst deze tutorial: die behandelt regressieanalyse met het StatsModels-pakket en Quandl. Eerst worden de verschillende soorten regressie uitgelegd en vervolgens krijg je een praktisch voorbeeld.

Doorloop daarna deze tutorial over lineaire regressie voor meer oefening.

Vervolgens kun je doorgaan naar niet-lineaire regressie. Voor een tutorial over ridge- en lasso-regressie in Python kun je deze Analytics Vidhya-tutorial bekijken. Het artikel gebruikt de Python-bibliotheken NumPy, Pandas, Matplotlib en Scikit-learn om duidelijk uit te leggen hoe je dit onderwerp aanpakt. 

Er is ook een uitstekende notebook-tutorial over logistische regressie die je hier kunt vinden.

Mis ook deze Yhat-blogpost over logistische regressie met Rodeo niet.


Python Bayesiaans denken en modelleren


Bayesiaans denken & modelleren in Python

Bayesiaanse statistiek is een theorie die het bewijs over de ware staat van de wereld uitdrukt in termen van geloofsgraden, bekend als Bayesiaanse kansen. Soms wil je een Bayesiaanse benadering kiezen voor data science-problemen.

Wat dit precies betekent, wordt duidelijk in deze uitstekende vijfdelige serie die je introduceert in frequentisme en Bayesianisme.

Als je echter meer een boekenliefhebber bent, bekijk dan “Think Bayes: Bayesian Statistics in Python”. "Bayesian Methods For Hackers" is een andere geweldige bron om kennis te maken met Bayesiaanse inferentie. Twee must-reads voor iedereen die wil beginnen met Bayesiaans denken en modelleren! 

Of, als je een introductie in een notebook wilt, kun je deze tutorial doorlopen, die je introduceert in de stelling van Bayes.

Mis ook deze tutorial over Bayesiaanse statistische analyse in Python en de bijbehorende YouTube-video’s niet, die je introduceren in Bayesiaanse statistiek, Markov chain Monte Carlo, PyMC, hiërarchisch modelleren en modelcontrole en -validatie.

Voor een tutorial over Bayesiaans model-fitten in Python moet je deze IPython-notebooks en de bijbehorende YouTube-video bekijken, een college van Jake VanderPlas op de ESAC Data Analysis and Statistics Workshop 2014.  

Als je bronnen wilt hergebruiken, bekijk dan de IPython Interactive Computing and Visualization Cookbook, die je misschien al gebruikte voor Machine Learning. Het zevende hoofdstuk van dit boek gaat over statistische data-analyse, maar focust op frequentistische en Bayesiaanse methoden voor hypothesetoetsing, parametrische en niet-parametrische schatting en modelinferentie.

Hier staat een tutorial over PyMC, een Python-module die Bayesiaanse statistische modellen en fit-algoritmen implementeert, waaronder Markov Chain Monte Carlo (MCMC). Ook deze tutorial, waarin je leert hoe je Bayesiaanse lineaire regressiemodellen met PyMC3 implementeert, is de moeite waard. 

Markov-ketens

Eenvoudig gezegd zijn Markov-ketens wiskundige systemen die van de ene "toestand" naar de andere springen. Deze toestanden kunnen een situatie of een set waarden zijn. Dat betekent dat je een lijst met beschikbare toestanden hebt en dat een Markov-keten je de kans geeft om van de ene toestand naar een andere toestand te springen, ofwel te "transiteren".

Een aantal van de hierboven genoemde bronnen introduceerden je al in dit onderwerp.

Naast die bronnen wil je misschien ook deze video bekijken: het is een tutorial die onder andere Monte Carlo-simulatie en resampling gebruikt om hypothesetoetsing en statistische modellering te verkennen. Het kan een goede manier zijn om je kennis te consolideren voordat je in de Markov-ketens duikt.

Ook het boek Computational Statistics in Python geeft je inzicht in Markov-ketens. Het is een geweldige introductie tot Markov Chain Monte Carlo.

Aan de slag met statistiek in Python

Deze lijst is bedoeld om je op weg te helpen. Je zult zien dat veel bronnen overlappen of dat je andere bronnen tegenkomt. Laat het ons vooral weten op Twitter!

Hoe dan ook, er is geen reden meer om te wachten met het leren van statistiek met Python.

Begin nu

Onderwerpen

Gerelateerd