Skip to content

Data-visualisatie

Data-visualisatie draait om het omzetten van ruwe data naar begrijpelijke grafische weergaven. Als AI Engineer moet je in staat zijn om data te verkennen, patronen te herkennen en resultaten helder te communiceren naar anderen.


Tools en libraries

Pandas

Pandas is dé Python-library voor datamanipulatie en -analyse. Je gebruikt het om datasets in te laden, te filteren, te transformeren en voor te bereiden op visualisatie of modellering.

Belangrijke functionaliteiten:

  • DataFrames: tabelstructuren om data te organiseren
  • Inladen van CSV, Excel, JSON en andere formaten
  • Filteren, groeperen en aggregeren van data
  • Basale plotfuncties via .plot()
1
2
3
4
5
import pandas as pd

df = pd.read_csv("data.csv")
df.head()  # Bekijk de eerste 5 rijen
df.describe()  # Statistische samenvatting

Scikit-learn

Scikit-learn is een uitgebreide library voor machine learning in Python. Naast modeltraining biedt het ook handige tools voor data-analyse en visualisatie van modelresultaten.

Relevante functionaliteiten voor visualisatie:

  • Confusion matrix voor classificatieresultaten
  • Clustering-algoritmen (K-means, DBSCAN)
  • Preprocessing en feature scaling
  • Train-test splits
1
2
from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay
from sklearn.cluster import KMeans

Visualisatietypes

Histogrammen

Een histogram toont de verdeling van een numerieke variabele door de data op te delen in "bins" (intervallen) en te tellen hoeveel waarden in elk interval vallen.

Gebruik wanneer... Voorbeeld
Je de verdeling van één variabele wilt bekijken Leeftijdsverdeling van klanten
Je wilt zien of data normaal verdeeld is Scores op een toets
Je uitschieters wilt identificeren Transactiebedragen

Pie charts (taartdiagrammen)

Een pie chart toont de verhouding tussen categorieën als "taartpunten" van een geheel.

Gebruik wanneer... Vermijd wanneer...
Je een klein aantal categorieën hebt (max 5-6) Er veel categorieën zijn
Je het aandeel van het geheel wilt benadrukken Precieze vergelijkingen nodig zijn
De categorieën samen 100% vormen Categorieën vergelijkbare groottes hebben

!!! tip "Overweeg alternatieven" Pie charts worden vaak bekritiseerd omdat mensen slecht zijn in het inschatten van hoeken. Een bar chart is vaak een beter alternatief.


Bar charts (staafdiagrammen)

Een bar chart vergelijkt waarden tussen verschillende categorieën met rechthoekige staven.

Variant Toepassing
Verticaal Standaard vergelijking tussen categorieën
Horizontaal Handig bij lange categorienamen
Gestapeld (stacked) Toont onderverdeling binnen categorieën
Gegroepeerd Vergelijkt subcategorieën naast elkaar

Normaalverdelingen

De normaalverdeling (Gaussische verdeling) is een klokvormige curve die veel voorkomt in natuurlijke en sociale fenomenen. Het herkennen van normaalverdelingen is belangrijk omdat veel statistische methoden hierop gebaseerd zijn.

Kenmerken:

  • Symmetrisch rond het gemiddelde
  • 68% van de data valt binnen 1 standaarddeviatie
  • 95% van de data valt binnen 2 standaarddeviaties
  • 99.7% van de data valt binnen 3 standaarddeviaties
1
2
3
4
5
6
7
import matplotlib.pyplot as plt
import numpy as np

data = np.random.normal(loc=0, scale=1, size=1000)
plt.hist(data, bins=30, density=True, alpha=0.7)
plt.title("Normaalverdeling")
plt.show()

Clusters

Clustervisualisaties tonen hoe datapunten zijn gegroepeerd op basis van gelijkenis. Dit is vooral nuttig bij unsupervised learning.

Veelgebruikte technieken:

  • Scatter plots met kleurcodering per cluster
  • Elbow method om het optimale aantal clusters te bepalen
  • Silhouette plots om de kwaliteit van clusters te beoordelen
1
2
3
4
5
6
7
8
9
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt

kmeans = KMeans(n_clusters=3)
labels = kmeans.fit_predict(X)

plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis')
plt.title("K-means clustering")
plt.show()

Correlatiematrixen

Een correlatiematrix toont de samenhang tussen meerdere numerieke variabelen. Waarden liggen tussen -1 (perfecte negatieve correlatie) en +1 (perfecte positieve correlatie).

Waarde Interpretatie
0.7 tot 1.0 Sterke positieve correlatie
0.3 tot 0.7 Matige positieve correlatie
-0.3 tot 0.3 Zwakke of geen correlatie
-0.7 tot -0.3 Matige negatieve correlatie
-1.0 tot -0.7 Sterke negatieve correlatie
1
2
3
4
5
6
import seaborn as sns

correlation = df.corr()
sns.heatmap(correlation, annot=True, cmap='coolwarm')
plt.title("Correlatiematrix")
plt.show()

!!! warning "Correlatie ≠ causaliteit" Een sterke correlatie betekent niet dat de ene variabele de andere veroorzaakt. Er kan sprake zijn van een derde, onderliggende factor.


Confusion Matrixen

Een confusion matrix visualiseert de prestaties van een classificatiemodel door voorspelde labels te vergelijken met de werkelijke labels.

Voorspeld: Positief Voorspeld: Negatief
Werkelijk: Positief True Positive (TP) False Negative (FN)
Werkelijk: Negatief False Positive (FP) True Negative (TN)

Afgeleide metrics:

  • Accuracy: (TP + TN) / Totaal
  • Precision: TP / (TP + FP)
  • Recall: TP / (TP + FN)
  • F1-score: harmonisch gemiddelde van precision en recall
1
2
3
4
5
6
7
from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay

cm = confusion_matrix(y_true, y_pred)
disp = ConfusionMatrixDisplay(confusion_matrix=cm)
disp.plot(cmap='Blues')
plt.title("Confusion Matrix")
plt.show()

!!! note "Tip voor interpretatie" Kijk niet alleen naar accuracy. Bij ongebalanceerde datasets (bijvoorbeeld 95% negatieve cases) kan een model 95% accuracy halen door altijd "negatief" te voorspellen, terwijl het geen enkele positieve case correct identificeert.