Direct naar inhoud
Alle termenKlassieke Machine Learning

Wat is DBSCAN?

Een slimme manier om automatisch groepjes te vinden in data, zonder dat je van tevoren hoeft te zeggen hoeveel groepen er zijn — handig voor klantprofielen of fraudedetectie.

Wat is DBSCAN

Wat is DBSCAN eigenlijk?

DBSCAN staat voor Density-Based Spatial Clustering of Applications with Noise — een naam die klinkt alsof hij bedacht is door iemand die heel graag wilde opscheppen. Maar achter die academische titel zit een heel praktisch idee: het vindt vanzelf groepjes in je data, op basis van waar dingen dicht bij elkaar staan.

Stel je voor dat je met een drone boven een park vliegt en foto's maakt van picknickdekens. Sommige dekens liggen in groepjes bij elkaar (gezinnen, vriendengroepen), andere liggen helemaal alleen. DBSCAN kijkt naar je data op precies dezelfde manier: waar zijn veel punten bij elkaar (dat wordt een cluster), en welke punten liggen er zo ver vanaf dat ze waarschijnlijk uitschieters zijn?

Het grote verschil met andere clustering-methoden: je hoeft niet van tevoren te zeggen hoeveel groepen je verwacht. Bij K-means (een andere populaire methode) moet je zeggen "ik wil 5 groepen". DBSCAN kijkt zelf en zegt: "Ik zie hier 3 dichte clusters, en 12 punten die nergens bij horen."

Hoe werkt het eigenlijk?

DBSCAN werkt met twee simpele instellingen:

  • Epsilon (ε): hoe dichtbij moet iets staan om bij elkaar te horen? Denk aan een cirkel die je om elk punt trekt — alles binnen die cirkel is een "buur".

  • MinPoints: hoeveel buren moet een punt minimaal hebben om als kern van een cluster te tellen? Als je 5 invult, moet er binnen die cirkel minstens 5 punten zitten.

Het algoritme loopt door je data en zegt bij elk punt:

  1. Zitten er genoeg buren binnen epsilon? Dan is dit een kernpunt — het hart van een cluster.

  2. Zit het punt wél binnen de cirkel van een kernpunt, maar heeft het zelf te weinig buren? Dan is het een randpunt — het hoort bij de cluster, maar staat aan de rand.

  3. Zit het nergens in de buurt van een kernpunt? Dan is het ruis — een uitbijter die nergens bij hoort.

Alle kernpunten die elkaars buren zijn, worden aan elkaar geplakt tot één grote cluster. Klaar.

Waar kom je het tegen?

DBSCAN is populair in situaties waar je wél weet dat er groepen zijn, maar niet hoeveel:

  • Marketing & customer segmentation: je hebt aankoopdata van duizenden klanten, maar je weet niet hoeveel type klanten je hebt. DBSCAN vindt vanzelf groepjes met vergelijkbaar gedrag.

  • Fraudedetectie: normale transacties vormen clusters, verdachte transacties zijn ruis of vreemde kleine groepjes.

  • Geospatiale analyse: waar vormen zich concentraties van criminaliteit, verkeersongelukken of populariteit? Handige tools als QGIS ondersteunen DBSCAN-clustering.

  • Beeldherkenning: objecten detecteren in 3D-puntenwolken (denk aan zelfrijdende auto's die voetgangers moeten herkennen).

In Python gebruik je het via scikit-learn, de standaard machine learning bibliotheek. Ook geo-analyse tools als PostGIS (database-extensie) en R hebben ingebouwde DBSCAN-functies.

Een concreet voorbeeld

Stel: je bent een retailer en je hebt GPS-coördinaten van 10.000 klanten. Je wilt weten: waar zitten concentraties, zodat je daar een nieuwe winkel kunt openen?

Met DBSCAN zeg je: "zoek alle plekken waar binnen 2 kilometer minstens 50 klanten wonen". Het algoritme vindt dan vanzelf dat er clusters zijn in centrum-Amsterdam, Haarlem-Noord en Amstelveen-Zuid — en dat er 200 klanten her en der verspreid zitten die nergens bij horen (ruis).

Dat helpt je om gericht te investeren, in plaats van te gokken.

Wanneer werkt het minder goed?

DBSCAN heeft één zwakte: als je clusters héél verschillende dichtheden hebben (denk: één groep waar punten dicht op elkaar staan, en één groep waar ze losser liggen), kan het moeite hebben om de lossere groep goed te herkennen. Dan moet je vaak epsilon aanpassen, maar dat beïnvloedt ook de dichte groepen.

Ook heeft het moeite met hele hoog-dimensionale data (denk: honderden kenmerken per punt). In dat geval zijn vrijwel alle punten even ver van elkaar, en verliest "dichtbij staan" zijn betekenis.

Wat kun je er nu mee?

Als je data hebt waarin je vermoedt dat er natuurlijke groepen zitten — maar je weet niet hoeveel, en je wilt niet dat één vreemde uitbijter je hele analyse verstoort — dan is DBSCAN een sterke keuze. Het is open source, goed gedocumenteerd, en werkt in de meeste standaard data science omgevingen. Probeer het eens op een dataset waar je normaal K-means zou gebruiken, en vergelijk de resultaten. Je zult merken dat DBSCAN vaak logischer groepen vindt, vooral als je data een beetje rommelig is — en dat is het in de echte wereld bijna altijd.

FAQ

Veelgestelde vragen over DBSCAN

De drie meest gestelde vragen over dit onderwerp, kort beantwoord.

Wat is DBSCAN?

Een slimme manier om automatisch groepjes te vinden in data, zonder dat je van tevoren hoeft te zeggen hoeveel groepen er zijn — handig voor klantprofielen of fraudedetectie.

Waarom is DBSCAN belangrijk?

DBSCAN staat voor Density-Based Spatial Clustering of Applications with Noise — een naam die klinkt alsof hij bedacht is door iemand die heel graag wilde opscheppen. Maar achter die academische titel zit een heel praktisch idee: het vindt vanzelf groepjes in je data, op basis van waar dingen dicht bij elkaar staan.

Hoe wordt DBSCAN toegepast?

Stel je voor dat je met een drone boven een park vliegt en foto's maakt van picknickdekens. Sommige dekens liggen in groepjes bij elkaar (gezinnen, vriendengroepen), andere liggen helemaal alleen. DBSCAN kijkt naar je data op precies dezelfde manier: waar zijn veel punten bij elkaar (dat wordt een cluster), en welke punten liggen er zo ver vanaf dat ze waarschijnlijk uitschieters zijn?

Deel: