Wat Is Data Science?
Data science is niet alleen machine learning. Het is niet alleen statistiek. Het is niet alleen programmeren.
Data science is de discipline van het winnen van bruikbare kennis uit data. Het grootste deel van dat werk is niet glamorous: het is het schoonmaken van rommelige spreadsheets, het stellen van de juiste vragen, en het communiceren van resultaten aan mensen die niet om je code geven.
De typische data science pipeline ziet er als volgt uit:
1. Collect: ruwe data verzamelen uit databases, APIs, CSV's of web scraping
2. Clean: ontbrekende waarden behandelen, types corrigeren, duplicaten verwijderen
3. Explore: verdelingen visualiseren, patronen vinden, vragen stellen
4. Engineer: nieuwe features creëren die modellen helpen te leren
5. Model: algoritmes trainen, prestaties evalueren, itereren
6. Communicate: bevindingen presenteren aan stakeholders die beslissingen maken
Als je ooit Excel-pivottabellen, voorwaardelijke opmaak of VLOOKUP hebt gebruikt, heb je al stappen 1-3 gedaan. Deze les brengt die ervaring naar de Python-based workflow die in de industrie wordt gebruikt.
Warm-Up
Jouw Data-ervaring
Iedereen heeft op een of andere manier met data gewerkt: een budgetspreadsheet, een cijferregistratie, een fitnessapp, zelfs een afspeellijst met afspeelaantallen.
Garbage In, Garbage Out
Waarom Opschonen Belangrijk Is
Data scientists besteden 60-80% van hun tijd aan het opschonen van data. Dit is geen overdrijving: het is een consistente bevinding uit verschillende sectoronderzoeken.
De reden is eenvoudig: garbage in, garbage out. Als je data fouten, ontbrekende waarden of inconsistente formaten bevat, zal elke analyse die daarop gebouwd is foutief zijn. Een perfect model getraind op vuile data levert met zekerheid verkeerde antwoorden op.
Veelvoorkomende Data Problemen
- Ontbrekende waarden: cellen zijn leeg. Is de data niet verzameld, of is de waarde werkelijk nul? Dit zijn verschillende situaties die op verschillende manieren behandeld moeten worden.
- Verkeerde datatypes: een kolom met getallen opgeslagen als tekst, data in inconsistente formaten (01/02/2024: is dat 2 januari or 1 februari?)
- Uitschieters: een salaris kolom heeft één entry van $1.000.000.000. Is dat realiteit, of een typfout? In beide gevallen zal het je gemiddelden scheef trekken.
- Duplicates: dezelfde record komt twee keer voor omdat twee systemen onvolledig zijn samengevoegd
- Categorical encoding: een kolom bevat 'Yes', 'yes', 'Y', 'TRUE' en '1'. Deze betekenen allemaal hetzelfde, maar je computer weet dat niet.
In pandas (de standaard Python data library), los je dit op met methodes zoals dropna(), fillna(), astype(), en drop_duplicates(). Maar het moeilijke deel is niet de code: het is beslissen wat je met elk probleem doet.
Cleaning Decisions
Deciding What To Do
Hier is een realistisch scenario. Je hebt een dataset met 10.000 klantrecords. De 'age' kolom heeft 500 ontbrekende waarden.
Je opties:
- Rijen verwijderen: verwijder alle 500 records. Eenvoudig, maar je verliest 5% van je data. Als die 500 klanten een gemeenschappelijk kenmerk delen (misschien hebben ze het leeftijd-veld overgeslagen omdat ze privacybewust zijn), introduceert het verwijderen van hen bias.
- Invullen met het gemiddelde: vervang lege waarden met de gemiddelde leeftijd. Snel, maar het reduceert kunstmatig de variantie van je leeftijdskolom.
- Invullen met de mediaan: beter dan het gemiddelde als de leeftijdsverdeling scheef is (een paar zeer oude of zeer jonge klanten die het gemiddelde trekken).
- Een vlag gebruiken: maak een nieuwe kolom aan genaamd 'age_missing' (1 of 0) en vul de originele met de mediaan. Nu kan je model leren dat de afwezigheid zelf informatie bevat.
Er is geen universeel juist antwoord. De keuze hangt af van waarom de data ontbreekt & wat je ermee wilt doen.
De juiste vragen stellen
Verkennende Data-analyse (EDA)
Voordat je een model bouwt, moet je je data begrijpen. EDA is het proces van samenvatten, visualiseren en bevragen van een dataset om patronen, anomalieën en relaties te vinden.
Belangrijkste Hulpmiddelen
- Histogrammen: tonen de verdeling van een enkele variabele. Is het klokvormig? Scheef? Bimodaal (twee pieken)? Een histogram van inkomen is altijd rechtsscheef omdat een paar mensen veel meer verdienen dan de meerderheid.
- Spreidingsdiagrammen: tonen de relatie tussen twee variabelen. Worden mensen die langer zijn zwaarder? Correleert meer studietijd met hogere cijfers? Het patroon (of het ontbreken daarvan) geeft aan of er een relatie bestaat.
- Correlatie: een getal tussen -1 en +1 dat de lineaire samenhang meet. +1 betekent een perfecte positieve relatie, -1 betekent een perfecte negatieve relatie, 0 betekent geen lineaire relatie. Maar correlatie impliceert geen causaliteit: ijsverkoop en verdrinkingsdoden zijn gecorreleerd omdat beide in de zomer toenemen.
- Samenvattende statistieken: gemiddelde, mediaan, standaarddeviatie、最小値,最大値. In pandas: df.describe() geeft je al deze waarden in één regel.
De echte vaardigheid
De tools zijn makkelijk te leren. Het moeilijke deel is het stellen van de juiste vragen. Slechte vraag: 'Wat zegt de data?' Goede vraag: 'Hebben klanten die binnen de eerste week contact opnemen met support een hogere retentie?'
Correlation Trap
Correlation vs. Causation
Dit is het belangrijkste concept in data literacy. Twee variabelen kunnen sterk gecorreleerd zijn zonder dat de ene de oorzaak is van de andere.
Klassieke voorbeelden:
- Steden met meer brandweerlieden hebben meer branden. (Grotere steden hebben beide.)
- Leerlingen die ontbijten halen betere cijfers. (Misschien zijn rijkere families vaker geneigd om zowel ontbijt als academische ondersteuning te bieden.)
- Landen die meer chocolade consumeren, winnen meer Nobelprijzen. (Beide correleren met nationale rijkdom.)
De verborgen factor wordt een confounding variable genoemd: een derde variabele die beide variabelen die je bekijkt, beïnvloedt.
Het creëren van nuttige variabelen
Wat is Feature Engineering?
Een feature is een invoervariabele die een model gebruikt om voorspellingen te maken. Feature engineering is de kunst van het creëren van nieuwe features uit ruwe data om modellen te helpen patronen te leren die ze anders niet zouden kunnen zien.
Ruwe data komt zelden in de vorm die modellen nodig hebben. Beschouw een dataset met een 'geboortedatum'-kolom. Een model kan weinig doen met ruwe data. Maar als je een 'leeftijd'-feature creëert uit deze data, kan het model ineens patronen leren die gebaseerd zijn op leeftijd.
Veelvoorkomende technieken
- Normalisatie: het schalen van getallen naar een gemeenschappelijk bereik (0 tot 1, of gemiddelde=0 en standaardafwijking=1). Zonder dit zal een feature gemeten in duizenden (salaris) een feature gemeten in enkele cijfers (jaren ervaring) overheersen.
- One-hot encoding: het omzetten van categorische variabelen naar binaire kolommen. Een 'kleur'-kolom met waarden [rood, blauw, groen] wordt drie kolommen: 'kleur_rood', 'kleur_blauw', 'kleur_groen', elk met 0 of 1.
- Binning: het omzetten van een continue variabele in categorieën. Leeftijd 0-17 wordt 'minderjarige', 18-64 wordt 'volwassene', 65+ wordt 'senior'. Dit helpt wanneer de relatie niet lineair is.
- Interactiefeatures: twee features met elkaar vermenigvuldigen. 'Vloeroppervlakte maal aantal badkamers' kan de huisprijs beter voorspellen dan elk afzonderlijk.
- Domeinkennis: de krachtigste techniek. Een arts die features creëert voor een medisch model weet welke labwaarden belangrijk zijn. Een marketeer weet dat 'dagen sinds laatste aankoop' nuttiger is dan 'aankoopdatum'. Geen algoritme kan dit vervangen.
Feature-oefening
Feature Engineering toepassen
Stel je voor dat je een model bouwt om te voorspellen welke klanten hun streamingabonnement volgende maand zullen opzeggen. Je ruwe data bevat:
- Aanmaakdatum account
- Laatste inlogdatum
- Aantal series gekeken vorige maand
- Maandelijks betalingsbedrag
- Klantenservice tickets ingediend
- Land
Train/Test Split
Waarom je je data splitst
De belangrijkste regel in modelleren: nooit een model evalueren op dezelfde data waarop je het hebt getraind.
Als je dat wel doet, kan het model de antwoorden gewoon uit het hoofd leren. Het zal perfect scoren op de trainingsdata,但是在新数据上会失败。这被称为overfitting: het model heeft de ruis in jouw specifieke dataset geleerd in plaats van de echte patronen.
De standaardpraktijk is om je data te splitsen:
- Trainingset (meestal 70-80%): het model leert hiervan
- Testset (meestal 20-30%): apart gehouden, alleen gebruikt om het uiteindelijke model te evalueren
In scikit-learn: X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
Veelgebruikte algoritmen
- Lineaire regressie: tekent de best passende rechte lijn door de data. Simpel, interpreteerbaar, werkt wanneer de relatie ongeveer lineair is. Voorspelt een getal (prijs, temperatuur, score).
- Beslissingsbomen: een stroomdiagram van ja/nee-vragen. Makkelijk te begrijpen en te verklaren. Gevoelig voor overfitting tenzij gesnoeid of beperkt in diepte.
- Random forests: veel beslissingsbomen die samen stemmen. Accurate dan een enkele boom, minder gevoelig voor overfitting, maar moeilijker te verklaren.
Overfitting vs. Underfitting
- Overfitting: model is te complex. Het memoriseert de trainingsdata, inclusief ruis. Hoge nauwkeurigheid op trainingsdata, lage nauwkeurigheid op testdata.
- Underfitting: model is te eenvoudig. Het kan de echte patronen niet gevangen nemen. Lage nauwkeurigheid op zowel trainingsdata也 als testdata.
Het doel is de sweet spot daartussen.
Evaluatiemetrieken
Hoe weet je of je model goed is?
Alleen nauwkeurigheid kan misleidend zijn. Als 95% van de e-mails geen spam is, is een model dat altijd 'geen spam' zegt 95% nauwkeurig: maar volledig nutteloos.
Belangrijkste metrieken:
- Accuracy: percentage correcte voorspellingen. Nuttig wanneer klassen gebalanceerd zijn.
- Precision: van alle dingen die het model als positief heeft gemarkeerd, hoeveel waren dat daadwerkelijk? Hoge precisie betekent weinig valse alarmen.
- Recall: van alle werkelijke positieven, hoeveel heeft het model gevonden? Hoge recall betekent weinig gemiste gevallen.
- F1-score: het harmonisch gemiddelde van precisie en recall. Handig wanneer je beide in balans wilt brengen.
- RMSE (Root Mean Squared Error): voor regressie (voorspellen van getallen). Hoe ver zitten de voorspellingen er gemiddeld naast?
Welke metriek het belangrijkst is, hangt af van het probleem. Bij kankerdetectie is recall belangrijker: je wilt geen geval missen. Bij spamfiltering is precisie belangrijker: je wilt geen echte e-mail verwijderen.
Data-analist vs. Data Scientist vs. ML Engineer
Drie verschillende rollen
Het data-vakgebied heeft drie hoofdcarrièrepaden, en ze vereisen verschillende vaardigheden.
Data-analist
- Focus: het beantwoorden van zakelijke vragen met bestaande data
- Tools: SQL, Excel, Tableau, basis Python of R
- Day-to-day: dashboards, rapporten, A/B-testanalyse, presentaties voor stakeholders
- Entry path: vaak de meest toegankelijke. Veel analisten beginnen zonder een CS-diploma.
Data Scientist
- Focus: het bouwen van voorspellende modellen & patronen vinden in complexe data
- Tools: Python (pandas, scikit-learn, matplotlib), statistiek, SQL, Jupyter notebooks
- Dagelijkse werkzaamheden: EDA, feature engineering, model building, experimenteren
- Instaptraject: vereist doorgaans een achtergrond in statistiek of kwantitatieve vakken. Bootcamps en zelfstudie zijn mogelijk.
Machine Learning Engineer
- Focus: modellen deployen en schalen in productieomgevingen
- Tools: Python, TensorFlow/PyTorch, Docker, cloudplatforms (AWS/GCP), APIs
- Dagelijkse werkzaamheden: modeloptimalisatie, pipeline-infrastructuur, monitoring van productie-modellen
- Instaptraject: vereist doorgaans sterke software engineering skills plus ML-kennis.
Een portfolio opbouwen
Hiring managers kijken vooral naar wat je kunt, niet alleen naar wat je hebt gestudeerd. Een portfolio met 3-5 sterke projecten op GitHub is belangrijker dan certificaten. Goede projecten maken gebruik van echte (niet speelgoed-) datasets, hebben duidelijke documentatie en tonen de volledige pipeline: van rommelige data tot bruikbare inzichten.
Je volgende stappen
Waar ga je naartoe vanaf hier
De tools van het vak zijn gratis en toegankelijk:
- pandas: de standaard Python-bibliotheek voor data-manipulatie
- matplotlib / seaborn: visualisatiebibliotheken
- scikit-learn: het werkpaard voor klassieke machine learning
- Jupyter notebooks: interactieve coderingsomgevingen waarin je code, output en notities kunt mixen
- Kaggle: gratis datasets, competities en een community van practitioners
Begin met één echte dataset die je interesseert. Download hem, clean hem, verken hem, en probeer een vraag te beantwoorden. Dat ene project zal je meer leren dan welke cursus dan ook.