English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

gast
1 / ?
terug naar lessen

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.

Data Science Pipeline

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.

Beschrijf een moment waarop je met data in een spreadsheet of app hebt gewerkt. Wat probeerde je te achterhalen, en gaf de data je het antwoord?

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.

Common Data Problems

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.

Je hebt een dataset van werknemerssalarissen. 200 van de 5.000 records hebben ontbrekende salariswaarden. Je noticeert dat de meeste ontbrekende waarden van executives komen. Would you drop those rows, fill with the mean, or do something else? Explain your reasoning.

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?'

EDA Tools

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.

Correlation vs. Causation

Een bedrijf merkt dat werknemers die de bedrijfsgym gebruiken 30% minder ziekteverzuim hebben. De CEO wil dat alle werknemers verplicht de gym gebruiken. Wat is er mis met deze redenering? Welke confounding variables zouden de correlatie kunnen verklaren?

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 Engineering Techniques

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

Op basis van de ruwe data hierboven, stel minstens drie nieuwe features voor die je zou engineeren. Leg voor elke feature uit wat ze vastlegt & waarom het zou kunnen helpen om opzegging te voorspellen.

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.

Train/Test Split and Bias-Variance Tradeoff

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.

Evaluation Metrics and Confusion Matrix

Je bouwt een model om frauduleuze creditcardtransacties te detecteren. Slechts 0,1% van de transacties is echt frauduleus. Als je model elke transactie als legitiem voorspelt, wat is dan de nauwkeurigheid? Waarom is nauwkeurigheid een slechte metriek hier, & welke metriek zou je in plaats daarvan gebruiken?

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.

Data Career Paths

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.

Op basis van wat je in deze les hebt geleerd, welke van de drie rollen (data-analist, data scientist of ML-engineer) spreekt je het meest aan? Wat is één concrete stap die je deze week kunt nemen om vaardigheden te bouwen voor die rol?