Ik ben onlangs begonnen met een educatieve nieuwsbrief gericht op boeken. Book Dives is een tweewekelijkse nieuwsbrief waar we voor elk nieuw nummer duiken in een non-fictie boek. Je leert over de kernlessen van het boek en hoe je ze in het echte leven kunt toepassen. U kunt zich hier voor inschrijven.
Clustering is een Machine Learning techniek waarbij datapunten worden gegroepeerd. Gegeven een set van datapunten, kunnen we een clustering algoritme gebruiken om elk datapunt in een specifieke groep te classificeren., In theorie zouden datapunten die in dezelfde groep zitten vergelijkbare eigenschappen en/of eigenschappen moeten hebben, terwijl datapunten in verschillende groepen zeer ongelijke eigenschappen en/of eigenschappen zouden moeten hebben. Clustering is een methode om zonder toezicht te leren en is een gemeenschappelijke techniek voor statistische gegevensanalyse die op vele gebieden wordt gebruikt.
In Data Science kunnen we clustering analyse gebruiken om waardevolle inzichten uit onze data te verkrijgen door te zien in welke groepen de datapunten vallen wanneer we een clustering algoritme toepassen., Vandaag gaan we kijken naar 5 populaire clustering algoritmes die data wetenschappers moeten weten en hun voor-en nadelen!
K-Means Clustering
K-Means is waarschijnlijk het meest bekende clustering algoritme. Het wordt onderwezen in een heleboel inleidende data science en machine learning klassen. Het is gemakkelijk te begrijpen en te implementeren in code! Bekijk de afbeelding hieronder voor een illustratie.,
om te beginnen, selecteren we eerst een aantal klassen/groepen om te gebruiken en initialiseren willekeurig hun respectievelijke middenpunten. Om erachter te komen het aantal klassen te gebruiken, is het goed om een snelle blik op de gegevens te nemen en proberen om verschillende groeperingen te identificeren. De centrumpunten zijn vectoren van dezelfde lengte als elke datapuntvector en zijn de ” X ‘ s ” in de afbeelding hierboven.,
elk gegevenspunt wordt geclassificeerd door de afstand tussen dat punt en elk groepscentrum te berekenen, en vervolgens het punt te classificeren in de groep waarvan het centrum het dichtst bij het is.
op basis van deze geclassificeerde punten herberekenen we het groepscentrum door het gemiddelde van alle vectoren in de groep te nemen.
herhaal deze stappen voor een bepaald aantal herhalingen of totdat de groepscentra niet veel veranderen tussen herhalingen. U kunt er ook voor kiezen om de groepscentra een paar keer willekeurig te initialiseren en vervolgens de run te selecteren die eruit ziet alsof het de beste resultaten heeft opgeleverd.,
K-Means heeft het voordeel dat het vrij snel is, omdat we eigenlijk alleen de afstanden tussen punten en groepscentra berekenen; zeer weinig berekeningen! Het heeft dus een lineaire complexiteit O (n).
aan de andere kant heeft K-Means een paar nadelen. Ten eerste moet je selecteren hoeveel groepen/klassen er zijn. Dit is niet altijd triviaal en idealiter met een clustering algoritme zouden we willen dat het erachter te komen die voor ons omdat het doel van het is om wat inzicht te krijgen uit de gegevens., K-middelen begint ook met een willekeurige keuze van clustercentra en daarom kan het verschillende clustering resultaten op verschillende runs van het algoritme opleveren. Zo kunnen de resultaten niet herhaalbaar en gebrek aan consistentie. Andere clustermethoden zijn consistenter.
K-Medians is een ander clustering algoritme gerelateerd aan K-Means, behalve in plaats van de groepscentrumpunten te herberekenen met behulp van het gemiddelde gebruiken we de mediaan vector van de groep., Deze methode is minder gevoelig voor uitschieters (vanwege het gebruik van de mediaan) maar is veel langzamer voor grotere datasets omdat sortering vereist is bij elke iteratie bij het berekenen van de Mediaanvector.
Mean-Shift Clustering
Mean-Shift clustering is een algoritme gebaseerd op schuifvensters dat dichte gebieden van datapunten probeert te vinden. Het is een centroid-gebaseerd algoritme wat betekent dat het doel is om de centrumpunten van elke groep/klasse te lokaliseren, die werkt door kandidaten voor centrumpunten bij te werken om het gemiddelde van de punten binnen het schuifvenster te zijn., Deze kandidaat-vensters worden dan gefilterd in een post-processing fase om bijna-duplicaten te elimineren, die de definitieve reeks van centrumpunten en hun overeenkomstige groepen vormen. Bekijk de afbeelding hieronder voor een illustratie.
het leggen van de gemiddelde verschuiving wij beschouwen een reeks van punten in de twee-dimensionale ruimte, zoals op de illustratie hierboven., We beginnen met een cirkelvormig schuifraam gecentreerd op een punt C (willekeurig geselecteerd) en met radius r als kernel. Mean shift is een hill-climbing algoritme dat inhoudt dat deze kernel iteratief wordt verplaatst naar een hogere dichtheid regio op elke stap tot convergentie.
bij elke iteratie wordt het schuifvenster verschoven naar gebieden met een hogere dichtheid door het middelpunt te verschuiven naar het gemiddelde van de punten binnen het venster (vandaar de naam). De dichtheid binnen het schuifraam is evenredig met het aantal punten erin., Natuurlijk, door te verschuiven naar het gemiddelde van de punten in het venster zal het geleidelijk bewegen naar gebieden met een hogere puntdichtheid.
We gaan door met het verschuiven van het schuifvenster volgens het gemiddelde totdat er geen richting is waarin een shift meer punten in de kernel kan plaatsen. Bekijk de afbeelding hierboven; we blijven de cirkel bewegen totdat we de dichtheid niet meer verhogen (dat wil zeggen het aantal punten in het venster).
dit proces van stappen 1 tot en met 3 wordt gedaan met veel schuifvensters totdat alle punten binnen een venster liggen., Wanneer meerdere schuifvensters elkaar overlappen, wordt het raam met de meeste punten bewaard. De datapunten worden vervolgens geclusterd volgens het schuifraam waarin ze zich bevinden.
een illustratie van het gehele proces van end-to-end met alle schuifvensters wordt hieronder getoond. Elke zwarte stip vertegenwoordigt het middelpunt van een schuifraam en elke grijze stip is een gegevenspunt.,