Clusteranalyse is het classificeren of het groeperen in 'clusters' of 'klassen' van objecten op grond van hun kenmerken zonder vooraf de clusters vast te leggen. De gebruikte algoritmen bepalen wel de weg om tot clusters te komen, maar de gegevens bepalen welke clusters het worden. Deze algoritmen zijn, net als de algoritmen uit de associatie analyse, vormen van unsupervised learning (=ongestuurd leren)
Het doel van clusteranalyse is het vormen van deelverzamelingen (clusters of groepen) die elk hun eigen gedeelde kenmerken bevatten.
De clusters en liefst ook het aantal clusters zijn vooraf niet bekend. Het
streven is zoveel mogelijk gelijkenis binnen een groep en zoveel
mogelijk verschil tussen de groepen te krijgen. Is de clusteranalyse
uitgevoerd dan kan de collectie van deelverzamelingen worden gebruikt om
een nieuwe meting te classificeren.
Bij classificatie liggen de eigenschappen van een groep dus al vast, dit dus in tegenstelling tot de clusteranalyse.
Voor we één algoritme ($K$-means-clustering) meer in detail uitwerken en jullie laten kennismaken met alternatieven geven we eerst een aantal voorbeelden van terreinen waarin clusteranalyse wordt toegepast. Meer voorbeelden zijn onder andere hier en hier te vinden.
Nepnieuws is geen nieuw fenomeen, maar het treedt meer en meer op de voorgrond vooral binnen sociale media. Zelfs president Trump schaamde zich niet om zijn campagne met nepnieuws te voeren of ander onwelgevallige berichten tot nepnieuws te bombarderen.
In een artikel gepubliceerd door twee informaticastudenten (Seyedmehdi Hosseinimotlagh en Evangelos E. Papalexakis, University of California, Riverside) wordt een clusteralgoritme gebruikt om nepnieuws te identificeren. Het algoritme krijgt (nep)nieuwsartikelen aangeboden. Uit deze artikelen worden de belangrijkste en meest sensatierijke woorden gevist. Op deze woorden wordt dan geclusterd. Omdat sensatie beluste woorden de aandacht van mensen trekt komen deze woorden vaker voor in nepnieuwsartikelen. de clusters bevatten dus combinaties van dit soort woorden waarmee nieuwe berichten geclassificeerd kunnen worden op mate van nepnieuws.
We gaan straks $K$-means-clustering als algoritme presenteren. Daartoe moeten er eerst wat begrippen worden geïntroduceerd die in dit algoritme worden gebruikt. Deze begrippen spelen ook in andere clustermethoden een rol.
In clustering speelt afstand tussen gegevens een grote rol. Een computer heeft daar meestal getallen voor nodig. Vaak moet er eerst een bewerking van gegevens plaatsvinden om deze om te zetten in getallen. Combinatie van verschillende eigenschappen leveren dan datapunten op in een assenstelsel (iedere eigenschap zijn eigen as, b.v. leeftijd, sociale klasse, salaris ).
Hebben we datapunten dan kunnen we wiskundig de afstand tussen punten uitrekenen. De stelling van Pythagoras (Figuur 2) zal je vast bekend voorkomen als een manier om de afstand van de schuine zijde in een tweedimensionale rechthoekige driehoek te berekenen. In een assenstelsel vormen de verplaatsingen langs de assen de rechthoekzijden en de schuine zijde de afstand tussen de punten. Deze afstand noemt men de Euclidische astand. In drie dimensies en hoger wordt op een zelfde manier de afstand tussen twee punten berekend.
Naast de Euclidische afstand is er een andere maat die vaak gebruikt wordt, de Manhattan of City-block afstand. In figuur 3 zie je een stukje van de kaart van Manhattan. Je kunt alleen van hoek naar hoek komen als je door de straten gaat. In een rooster dus alleen evenwijdig aan de assen.
Object $A$ | 10 | 12 | 15 | 13 | 9 |
Object $B$ | 18 | 23 | 13 | 15 | 17 |
De Manhattan of City-block afstand is: $d(A,B)= |10−18|+|12−23|+|15−13|+|13−15|+|9−17|=31$
De Euclidische afstand is: $d(A,B)=\sqrt{(10−18)^{2}+(12−23)^{2}+(15−13)^{2}+(13−15)^{2}+(9−17)^{2}} =16,16$
Een matrix van afstanden is een matrix waarvan de elementen de afstanden tussen de punten aangeven.
Twee dimensionale Euclidische afstand $d(A,B)=\sqrt{(a_{1}-b_{1})^{2}+ (a_{2}-b_{2})^{2}}$
Voorbeeld B
x | y | |
---|---|---|
A | 2 | 1 |
B | 4 | 2 |
C | 6 | 1 |
D | 7 | 2 |
A | B | C | D | |
---|---|---|---|---|
A | 0 | 2.24 | 4 | 5.1 |
B | 2.24 | 0 | 2.24 | 3 |
C | 4 | 2.24 | 0 | 1.41 |
D | 5.1 | 3 | 1.41 | 0 |
Als je de afstand tussen elk paar van objecten weet, wat is dan de
afstand tussen twee clusters $C_{1}$ en $C_{2}$?
We nemen hier de kleinste afstand tussen twee objecten waarvan er één
in $C_{1}$ aanwezig is en de andere in $C_{2}$. Deze afstand noemt men
Single Linkage.
Single Linkage: $d(C_{1},C_{2})=\min\{d(A,B)|A \in C_{1}\,\,en\,\, B \in C_{2} \}$
Voorbeeld C
x | y | |
---|---|---|
$A_{1}$ | 1 | 3 |
$A_{2}$ | 1 | 4 |
$A_{3}$ | 2 | 2 |
$B_{1}$ | 5 | 1 |
$B_{2}$ | 5 | 2 |
$B_{3}$ | 7 | 2 |
$B_{1}$ | $B_{2}$ | $B_{3}$ | |
---|---|---|---|
$A_{1}$ | 4.47 | 4.12 | 6.03 |
$A_{2}$ | 5 | 4.47 | 6.32 |
$A_{3}$ | 3.16 | 3 | 5 |
Het centrum $M(m_{1},m_{2}, \dots, m_{n})$ van een cluster wordt bepaald als het gemiddelde van de coördinaten van de punten in de cluster. Wiskundig gezien is het het zwaartepunt van de veelhoek die door de punten wordt gevormd.
Centrum $M$ van een cluster:
$M(m_{1},m_{2}, \dots, m_{n})= \left( \frac{\sum^{1}_{n} a_{1i}}{n},\frac{\sum^{1}_{n} a_{2i}}{n}, \dots, \frac{\sum^{1}_{n} a_{ni}}{n}\right)$.
Voorbeeld D
x | y | |
---|---|---|
$A_{1}$ | 0 | 0 |
$A_{2}$ | 7 | 8 |
$A_{3}$ | 4 | 8 |
$A_{4}$ | 3 | 0 |
Zoals eerder vermeld zijn er verschillende methoden die binnen kunstmatige intelligentie gebruikt worden om tot clusters te komen. We beginnen hier met de $K$-means-clustering de meest eenvoudige methode. Het onderliggende algoritme geeft inzicht in hoe dergelijke methoden van de data leren om later input te kunnen classificeren. Ook is gekozen voor deze methode omdat je met pen en papier eenvoudig het algoritme na kan spelen.
Het oudste en meest bekende clusteralgoritme is de $K$-means methode. Later zijn er veel varianten ontwikkeld die gebaseerd zijn op deze methode. $K$-means is een eenvoudige en relatief snelle iteratieve manier van clusteren. Vooraf wordt bepaald hoeveel clusters je wilt hebben. In de figuur 4 hiernaast zie je een animatie van een clustering waarin de data stap voor stap in drie groepen wordt verdeeld. De kruisjes die je ziet bewegen zijn de centra van de clusters. In figuur 5 staat de flowchart van het algoritme dat we hieronder in meer detail beschouwen.
Om de optimale clustering te vinden ga je als volgt te werk:
Start: Kies de centra van de clusters de eerste keer willekeurig en bepaal het maximaal aantal stappen dat je toestaat.
Voorbeeld E
x | y | |
---|---|---|
$A_{1}$ | 2 | 2 |
$A_{2}$ | 4 | 2 |
$A_{3}$ | 6 | 1 |
$A_{4}$ | 8 | 2 |
$M_{1}$ | $M_{2}$ | toewijzing | |
---|---|---|---|
$A_{1}$ | 2.83 | 4 | $C_{1}$ |
$A_{2}$ | 2 | 2 | $C_{1}$ |
$A_{3}$ | 3.61 | 1 | $C_{2}$ |
$A_{4}$ | 4.47 | 2 | $C_{2}$ |
$C_{1}$ | $\{A_{1},A_{2}\}$ |
---|---|
$C_{2}$ | $\{A_{3},A_{4}\}$ |
$M_{1}'$ | $M_{2}'$ | toewijzing | |
---|---|---|---|
$A_{1}$ | 1 | 5.02 | $C_{1}$ |
$A_{2}$ | 1 | 3.04 | $C_{1}$ |
$A_{3}$ | 3.16 | 1.12 | $C_{2}$ |
$A_{4}$ | 5 | 1.12 | $C_{2}$ |
$C_{1}$ | $\{A_{1},A_{2}\}$ |
---|---|
$C_{2}$ | $\{A_{3},A_{4}\}$ |
Voorbeeld F
x | y | |
---|---|---|
$A_{1}$ | 0 | 1 |
$A_{2}$ | 3 | 1 |
$A_{3}$ | 3 | 2 |
$A_{4}$ | 0 | 3 |
$A_{5}$ | 4 | 1 |
$M_{1}$ | $M_{2}$ | toewijzing | |
---|---|---|---|
$A_{1}$ | 2.24 | 3.16 | $C_{1}$ |
$A_{2}$ | 1.41 | 1 | $C_{2}$ |
$A_{3}$ | 1 | 2 | $C_{1}$ |
$A_{4}$ | 2.24 | 4.24 | $C_{1}$ |
$A_{5}$ | 2.24 | 1.41 | $C_{2}$ |
$C_{1}$ | $\{A_{1},A_{3},A_{4}\}$ |
---|---|
$C_{2}$ | $\{A_{2},A_{5}\}$ |
$M_{1}'$ | $M_{2}'$ | toewijzing | |
---|---|---|---|
$A_{1}$ | 1.41 | 3.5 | $C_{1}$ |
$A_{2}$ | 2.24 | 0.5 | $C_{2}$ |
$A_{3}$ | 2 | 1.12 | $C_{2}$ |
$A_{4}$ | 1.41 | 4.03 | $C_{1}$ |
$A_{5}$ | 3.16 | 0.5 | $C_{2}$ |
$C_{1}$ | $\{A_{1},A_{4}\}$ |
---|---|
$C_{2}$ | $\{A_{2},A_{3},A_{5}\}$ |
$C_{1}$ | $\{A_{1},A_{4}\}$ |
---|---|
$C_{2}$ | $\{A_{2},A_{3},A_{5}\}$ |
Geef aantal clusters | |
Geef objecten lijst in javascript format | |
Geef lijst begin centra |
$x_{1}$ | $x_{2}$ | $x_{3}$ | $x_{4}$ | |
---|---|---|---|---|
$A_{1}$ | 6 | 3 | 4 | 5 |
$A_{2}$ | 2 | 3 | 5 | 4 |
$A_{3}$ | 5 | 4 | 6 | 3 |
$A_{4}$ | 9 | 1 | 1 | 8 |
$A_{5}$ | 8 | 2 | 0 | 9 |
$A_{6}$ | 8 | 0 | 1 | 8 |
$A_{4}$ | $A_{5}$ | $A_{6}$ | |
---|---|---|---|
$A_{1}$ | 5.57 | 6.08 | 5.57 |
$A_{2}$ | 9.22 | 9.33 | 8.77 |
$A_{3}$ | 8.66 | 9.22 | 8.66 |
$A_{4}$ | $A_{5}$ | $A_{6}$ | |
---|---|---|---|
$A_{1}$ | |||
$A_{2}$ | |||
$A_{3}$ |
$x_{1}$ | $x_{2}$ | |
---|---|---|
$O_{1}$ | 2 | 2 |
$O_{2}$ | 8 | 6 |
$O_{3}$ | 6 | 8 |
$O_{4}$ | 2 | 4 |
$O_{2}$ | $O_{4}$ | |
---|---|---|
$O_{1}$ | ||
$O_{3}$ |
$O_{2}$ | $O_{4}$ | |
---|---|---|
$O_{1}$ | 7.21 | 2 |
$O_{3}$ | 2.83 | 5.7 |
$M_{1}$ | $M_{2}$ | toewijzing | |
---|---|---|---|
$O_{1}$ | |||
$O_{2}$ | |||
$O_{3}$ | |||
$O_{4}$ |
$M_{1}$ | $M_{2}$ | toewijzing | |
---|---|---|---|
$O_{1}$ | 3.6 | 4.2 | $C_{1}$ |
$O_{2}$ | 3.6 | 3.2 | $C_{2}$ |
$O_{3}$ | 4.1 | 3.2 | $C_{2}$ |
$O_{4}$ | 2.2 | 3.2 | $C_{1}$ |
$M_{1}'$ | $M_{2}'$ | toewijzing | |
---|---|---|---|
$O_{1}$ | 1 | 7.1 | $C_{1}$ |
$O_{2}$ | 6.7 | 1.4 | $C_{2}$ |
$O_{3}$ | 6.4 | 1.4 | $C_{2}$ |
$O_{4}$ | 1 | 5.8 | $C_{1}$ |
$x_{1}$ | $x_{2}$ | |
---|---|---|
$D_{1}$ | 6 | 3 |
$D_{2}$ | 2 | 3 |
$D_{3}$ | 5 | 4 |
$D_{4}$ | 9 | 1 |
$D_{5}$ | 8 | 2 |
$D_{6}$ | 8 | 0 |
$M_{1}$ | $M_{2}$ | $M_{3}$ | toewijzing | |
---|---|---|---|---|
$D_{1}$ | ||||
$D_{2}$ | ||||
$D_{3}$ | ||||
$D_{4}$ | ||||
$D_{5}$ | ||||
$D_{6}$ |
$M_{1}$ | $M_{2}$ | $M_{3}$ | toewijzing | |
---|---|---|---|---|
$D_{1}$ | 2 | 1.1 | 2.83 | $C_{2}$ |
$D_{2}$ | 2 | 5.0 | 6.3 | $C_{1}$ |
$D_{3}$ | 1.4 | 2.5 | 4.2 | $C_{1}$ |
$D_{4}$ | 5.4 | 2.5 | 1 | $C_{3}$ |
$D_{5}$ | 4.1 | 1.1 | 1 | $C_{3}$ |
$D_{6}$ | 5 | 2.7 | 1 | $C_{3}$ |
$M_{1}'$ | $M_{2}'$ | $M_{3}'$ | toewijzing | |
---|---|---|---|---|
$D_{1}$ | 2.5 | 0 | 3 | $C_{2}$ |
$D_{2}$ | 1.6 | 4 | 6.6 | $C_{1}$ |
$D_{3}$ | 1.6 | 1.4 | 4.5 | $C_{2}$ |
$D_{4}$ | 6 | 3.6 | 0.7 | $C_{3}$ |
$D_{5}$ | 4.77 | 2.27 | 1.1 | $C_{3}$ |
$D_{6}$ | 5.7 | 3.6 | 1.1 | $C_{3}$ |
$x_{1}$ | $x_{2}$ | |
---|---|---|
$A_{1}$ | 0 | 0 |
$A_{2}$ | 7 | 8 |
$A_{3}$ | 4 | 8 |
$A_{4}$ | 3 | 0 |
Clusters | Centra | |
---|---|---|
Start | $M_{1}=(0,6)$ $M_{2}=(7,2)$ |
|
Iteratie 1 | $C_{1}=$ $C_{2}=$ | $M_{1}=$ $M_{2}=$ |
Iteratie 2 | $C_{1}=$ $C_{2}=$ | $M_{1}=$ $M_{2}=$ |
... |
$M_{1}$ | $M_{2}$ | toewijzing | |
---|---|---|---|
$A_{1}$ | 6.00 | 7.28 | $C_{1}$ |
$A_{2}$ | 7.28 | 6.00 | $C_{2}$ |
$A_{3}$ | 4.47 | 6.71 | $C_{1}$ |
$A_{4}$ | 6.71 | 4.47 | $C_{2}$ |
Clusters | Centra | |
---|---|---|
Start | $M_{1}=(0,6)$ $M_{2}=(7,2)$ |
|
Iteratie 1 | $C_{1}=\{A_{1},A_{3}\}$ $C_{2}=\{A_{2},A_{4}\}$ | $M_{1}=(2,4)$ $M_{2}=(5,4)$ |
$M_{1}$ | $M_{2}$ | toewijzing | |
---|---|---|---|
$A_{1}$ | 4.47 | 6.40 | $C_{1}$ |
$A_{2}$ | 6.40 | 4.47 | $C_{2}$ |
$A_{3}$ | 4.47 | 4.12 | $C_{2}$ |
$A_{4}$ | 4.12 | 4.47 | $C_{1}$ |
Clusters | Centra | |
---|---|---|
Start | $M_{1}=(0,6)$ $M_{2}=(7,2)$ |
|
Iteratie 1 | $C_{1}=\{A_{1},A_{3}\}$ $C_{2}=\{A_{2},A_{4}\}$ | $M_{1}=(2,4)$ $M_{2}=(5,4)$ |
Iteratie 2 | $C_{1}=\{A_{1},A_{4}\}$ $C_{2}=\{A_{2},A_{3}\}$ | $M_{1}=(1.5,0)$ $M_{2}=(5.5,8)$ |
$M_{1}$ | $M_{2}$ | toewijzing | |
---|---|---|---|
$A_{1}$ | 1.50 | 9.71 | $C_{1}$ |
$A_{2}$ | 9.71 | 1.50 | $C_{2}$ |
$A_{3}$ | 8.38 | 1.50 | $C_{2}$ |
$A_{4}$ | 1.50 | 8.38 | $C_{1}$ |
Leeftijd | Duur vakantie | |
---|---|---|
$TO_{1}$ | 19 | 3 |
$TO_{2}$ | 25 | 8 |
$TO_{3}$ | 43 | 14 |
$TO_{4}$ | 61 | 14 |
$TO_{5}$ | 30 | 7 |
$TO_{6}$ | 22 | 10 |
Clusters | Centra | |
---|---|---|
Start | $M_{1}=(19,3)$ $M_{2}=(25,8)$ |
|
Iteratie 1 | $C_{1}=$ $C_{2}=$ | $M_{1}=$ $M_{2}=$ |
Iteratie 2 | $C_{1}=$ $C_{2}=$ | $M_{1}=$ $M_{2}=$ |
... |
$TO_{1}$ | 0.00 | 7.81 | $C_{1}$ |
---|---|---|---|
$TO_{2}$ | 7.81 | 0.00 | $C_{2}$ |
$TO_{3}$ | 26.40 | 18.97 | $C_{2}$ |
$TO_{4}$ | 43.42 | 36.50 | $C_{2}$ |
$TO_{5}$ | 11.70 | 5.10 | $C_{2}$ |
$TO_{6}$ | 7.62 | 3.61 | $C_{2}$ |
Clusters | Centra | |
---|---|---|
Start | $M_{1}=(19,3)$ $M_{2}=(25,8)$ |
|
Iteratie 1 | $C_{1}=\{TO_{1}\}$ $C_{2}=\{TO_{2},TO_{3},TO_{4},TO_{5},TO_{6}\}$ | $M_{1}=(19,3)$ $M_{2}=(36.2,10.6)$ |
$M_{1}$ | $M_{2}$ | toewijzing | |
---|---|---|---|
$TO_{1}$ | 0.00 | 18.80 | $C_{1}$ |
$TO_{2}$ | 7.81 | 11.50 | $C_{1}$ |
$TO_{3}$ | 26.40 | 7.60 | $C_{2}$ |
$TO_{4}$ | 43.42 | 25.03 | $C_{2}$ |
$TO_{5}$ | 11.70 | 7.17 | $C_{2}$ |
$TO_{6}$ | 7.62 | 14.21 | $C_{1}$ |
Clusters | Centra | |
---|---|---|
Start | $M_{1}=(0,6)$ $M_{2}=(7,2)$ |
|
Iteratie 1 | $C_{1}=\{TO_{1}\}$ $C_{2}=\{TO_{2},TO_{3},TO_{4},TO_{5},TO_{6}\}$ | $M_{1}=(19,3)$ $M_{2}=(36.2,10.6)$ |
Iteratie 2 | $C_{1}=\{TO_{1},TO_{2},TO_{6}\}$ $C_{2}=\{TO_{3},TO_{4},TO_{5}\}$ | $M_{1}=(22,7)$ $M_{2}=(44.7,11.7)$ |
$M_{1}$ | $M_{2}$ | toewijzing | |
---|---|---|---|
$TO_{1}$ | 5.00 | 27.09 | $C_{1}$ |
$TO_{2}$ | 3.16 | 20.01 | $C_{1}$ |
$TO_{3}$ | 22.14 | 2.87 | $C_{2}$ |
$TO_{4}$ | 39.62 | 16.50 | $C_{2}$ |
$TO_{5}$ | 8.00 | 15.39 | $C_{1}$ |
$TO_{6}$ | 3.00 | 22.73 | $C_{1}$ |
Clusters | Centra | |
---|---|---|
Start | $M_{1}=(0,6)$ $M_{2}=(7,2)$ |
|
Iteratie 1 | $C_{1}=\{TO_{1}\}$ $C_{2}=\{TO_{2},TO_{3},TO_{4},TO_{5},TO_{6}\}$ | $M_{1}=(19,3)$ $M_{2}=(36.2,10.6)$ |
Iteratie 2 | $C_{1}=\{TO_{1},TO_{2},TO_{6}\}$ $C_{2}=\{TO_{3},TO_{4},TO_{5}\}$ | $M_{1}=(22,7)$ $M_{2}=(44.7,11.7)$ |
Iteratie 3 | $C_{1}=\{TO_{1},TO_{2},TO_{5},TO_{6}\}$ $C_{2}=\{TO_{3},TO_{4}\}$ | $M_{1}=(24,7)$ $M_{2}=(52,14)$ |
$M_{1}$ | $M_{2}$ | toewijzing | |
---|---|---|---|
$TO_{1}$ | 6.40 | 34.79 | $C_{1}$ |
$TO_{2}$ | 1.41 | 27.66 | $C_{1}$ |
$TO_{3}$ | 20.25 | 9.00 | $C_{2}$ |
$TO_{4}$ | 37.66 | 9.00 | $C_{2}$ |
$TO_{5}$ | 6.00 | 23.09 | $C_{1}$ |
$TO_{6}$ | 3.61 | 30.27 | $C_{1}$ |
Clusters | Centra | |
---|---|---|
Start | $M_{1}=(0.6,1,0)$ $M_{2}=(7.2,1,0)$ |
|
Iteratie 1 | $C_{1}=$ $C_{2}=$ | $M_{1}=$ $M_{2}=$ |
Iteratie 2 | $C_{1}=$ $C_{2}=$ | $M_{1}=$ $M_{2}=$ |
... |
$M_{1}$ | $M_{2}$ | toewijzing | |
---|---|---|---|
$S_{1}$ | 1.54 | 7.34 | $C_{1}$ |
$S_{2}$ | 7.34 | 1.54 | $C_{2}$ |
$S_{3}$ | 4.43 | 2.79 | $C_{2}$ |
$S_{4}$ | 2.79 | 4.43 | $C_{1}$ |
Clusters | Centra | |
---|---|---|
Start | $M_{1}=(0.6,1,0)$ $M_{2}=(7.2,1,0)$ |
|
Iteratie 1 | $C_{1}=\{S_{1},S{4}\}$ $C_{2}=\{S_{2},S{3}\}$ | $M_{1}=(1.5,0,1)$ $M_{2}=((6.3,2,1)$ |
$M_{1}$ | $M_{2}$ | toewijzing | |
---|---|---|---|
$S_{1}$ | 1.50 | 6.61 | $C_{1}$ |
$S_{2}$ | 6.61 | 1.50 | $C_{2}$ |
$S_{3}$ | 3.86 | 1.50 | $C_{2}$ |
$S_{4}$ | 1.50 | 3.86 | $C_{1}$ |
Als het $K$-means algoritme zo eenvoudig en snel is, waarom zijn er dan, zoals eerder genoemd, andere clusteralgoritmen? Het antwoord hierop is dat er dataverzamelingen zijn die niet passen bij het $K$-means algoritme. Bekijk maar eens het volgende plaatje:
De eerste kolom hoort bij een $K$-means variant. Alleen de verdeling in de vijfde rij past daar echt goed bij. Welk algoritme denk jij dat bij de verschillende rijen het beste past? Er zijn een aantal algoritmen die bij meerdere verdelingen goed scoren, maar die hebben weer andere minpunten. Het is dus van belang om te controleren of je de juiste versie kiest. Heb je meer dan twee assen dan wordt een visuele inspectie zoals in de figuur al een stuk lastiger.
De clusteralgoritmen kunnen worden onderverdeeld in partitiemethoden en hiërarchische methoden. In de partitiemethoden staat clustering met een centrum centraal. Het $K$-means valt in deze groep. In de hiërarchische methoden zijn naaste buren belangrijker. Deze buren vormen dan een stamboom vergelijkbaar met een indeling in het dierenrijk. Iedere splitsing vormt op dat niveau een cluster. In figuur 6 is Agglomerative Clustering daarvan een voorbeeld.
Voor een eerste kennismaking met clustering is het voldoende te weten dat er verschillende methoden zijn en dat deze allen iteratief werken en op afstandsmaten zijn gebaseerd. Wil je je in deze cursus meer verdiepen in clustering dan zijn de verdiepingsopdrachten hieronder een startpunt.