Machine Learning-problemen hebben te maken met veel gegevens en zijn sterk afhankelijk van de algoritmen die worden gebruikt om het model te trainen. Er zijn verschillende benaderingen en algoritmen om een machine learning-model te trainen op basis van het huidige probleem. Begeleid en onbewaakt leren zijn de twee meest prominente van deze benaderingen. Een belangrijk real-life probleem bij het op de markt brengen van een product of dienst voor een specifieke doelgroep kan eenvoudig worden opgelost met behulp van een vorm van leren zonder toezicht die bekend staat als Clustering. In dit artikel worden clusteralgoritmen uitgelegd, samen met real-life problemen en voorbeelden. Laten we beginnen met te begrijpen wat clustering is.
Wat zijn clusters?
Het woord cluster is afgeleid van een oud Engels woord, ‘clyster’, wat een bos betekent. Een cluster is een groep van vergelijkbare dingen of mensen die dicht bij elkaar staan of voorkomen. Gewoonlijk tonen alle punten in een cluster vergelijkbare kenmerken; daarom kan machine learning worden gebruikt om eigenschappen te identificeren en deze clusters te scheiden. Dit vormt de basis van veel toepassingen van machine learning die gegevensproblemen in verschillende sectoren oplossen.
Wat is clusteren?
Zoals de naam al doet vermoeden, omvat clustering het verdelen van gegevenspunten in meerdere clusters van vergelijkbare waarden. Met andere woorden, het doel van clustering is om groepen met vergelijkbare eigenschappen te scheiden en ze samen te bundelen in verschillende clusters. Idealiter is het de implementatie van het menselijke cognitieve vermogen in machines, waardoor ze verschillende objecten kunnen herkennen en er onderscheid tussen kunnen maken op basis van hun natuurlijke eigenschappen. In tegenstelling tot mensen is het erg moeilijk voor een machine om een appel of een sinaasappel te identificeren, tenzij deze goed is getraind op een enorme relevante dataset. Unsupervised learning-algoritmen bereiken deze training, met name clustering.
De bij elkaar geclusterde datapunten kunnen bijvoorbeeld worden beschouwd als één groep of cluster. Daarom heeft het onderstaande diagram twee clusters (gedifferentieerd door kleur voor weergave).
Waarom clusteren?
Wanneer u met grote datasets werkt, is een efficiënte manier om deze te analyseren, de data eerst te verdelen in logische groepen, ook wel clusters genoemd. Op deze manier kunt u waarde halen uit een grote set ongestructureerde gegevens. Het helpt u door de gegevens te bladeren om enkele patronen of structuren te ontdekken voordat u dieper ingaat op het analyseren van de gegevens voor specifieke bevindingen.
Het organiseren van gegevens in clusters helpt bij het identificeren van de onderliggende structuur van de gegevens en het vinden van toepassingen in verschillende sectoren. Clustering kan bijvoorbeeld worden gebruikt om ziekten in de medische wetenschap te classificeren en kan ook worden gebruikt bij klantclassificatie in marketingonderzoek.
In sommige toepassingen is gegevenspartitionering het uiteindelijke doel. Aan de andere kant is clustering ook een voorwaarde om je voor te bereiden op andere problemen met kunstmatige intelligentie of machine learning. Het is een efficiënte techniek voor het ontdekken van kennis in gegevens in de vorm van terugkerende patronen, onderliggende regels en meer. Probeer meer te leren over clustering in deze gratis cursus: Klantsegmentatie met clustering
Soorten clustermethoden / algoritmen
Gezien de subjectieve aard van de clustertaken, zijn er verschillende algoritmen die geschikt zijn voor verschillende soorten clusterproblemen. Elk probleem heeft een andere set regels die de overeenkomst tussen twee gegevenspunten definiëren, vandaar dat er een algoritme nodig is dat het beste past bij het doel van clustering. Tegenwoordig zijn er meer dan honderd bekende machine learning-algoritmen voor clustering.
Een paar soorten clusteralgoritmen
Zoals de naam al aangeeft, hebben connectiviteitsmodellen de neiging om datapunten te classificeren op basis van hun nabijheid van datapunten. Het is gebaseerd op het idee dat de gegevenspunten die dichter bij elkaar liggen meer vergelijkbare kenmerken weergeven in vergelijking met de verder weg geplaatste gegevenspunten. Het algoritme ondersteunt een uitgebreide hiërarchie van clusters die op bepaalde punten met elkaar kunnen versmelten. Het is niet beperkt tot een enkele opdeling van de dataset.
De keuze van de afstandsfunctie is subjectief en kan per clustertoepassing verschillen. Er zijn ook twee verschillende benaderingen om een clusterprobleem met connectiviteitsmodellen aan te pakken. Ten eerste worden alle gegevenspunten geclassificeerd in afzonderlijke clusters en vervolgens samengevoegd naarmate de afstand kleiner wordt. Bij de tweede benadering wordt de hele dataset geclassificeerd als één cluster en vervolgens opgedeeld in meerdere clusters naarmate de afstand groter wordt. Hoewel het model gemakkelijk te interpreteren is, mist het de schaalbaarheid om grotere datasets te verwerken.
Verdelingsmodellen zijn gebaseerd op de waarschijnlijkheid dat alle gegevenspunten in een cluster tot dezelfde verdeling behoren, dwz normale verdeling of Gaussische verdeling. Het kleine nadeel is dat het model zeer vatbaar is voor overfitting. Een bekend voorbeeld van dit model is het verwachtingsmaximalisatie-algoritme.
Deze modellen zoeken in de dataruimte naar verschillende dichtheden van datapunten en isoleren de verschillende dichtheidsgebieden. Vervolgens wijst het de datapunten binnen dezelfde regio toe als clusters. DBSCAN en OPTICS zijn de twee meest voorkomende voorbeelden van dichtheidsmodellen.
Centroid-modellen zijn iteratieve clusteralgoritmen waarbij de gelijkenis tussen datapunten wordt afgeleid op basis van hun nabijheid tot het zwaartepunt van het cluster. Het zwaartepunt (midden van het cluster) is gevormd om ervoor te zorgen dat de afstand van de datapunten tot het midden minimaal is. De oplossing voor dergelijke clusteringproblemen wordt meestal benaderd over meerdere proeven. Een voorbeeld van zwaartepuntmodellen is het K-means-algoritme.
Algemene clusteralgoritmen
K-betekent clustering
K-Means is verreweg het meest populaire clusteringalgoritme, aangezien het heel gemakkelijk te begrijpen en toe te passen is op een breed scala aan problemen op het gebied van datawetenschap en machine learning. Hier leest u hoe u het K-Means-algoritme kunt toepassen op uw clusterprobleem.
De eerste stap is het willekeurig selecteren van een aantal clusters, die elk worden weergegeven door een variabele ‘k’. Vervolgens krijgt elk cluster een zwaartepunt toegewezen, dwz het centrum van dat specifieke cluster. Het is belangrijk om de zwaartepunten zo ver mogelijk van elkaar af te definiëren om variatie te verminderen. Nadat alle zwaartepunten zijn gedefinieerd, wordt elk gegevenspunt toegewezen aan het cluster waarvan het zwaartepunt het dichtst bij is.
Zodra alle datapunten zijn toegewezen aan respectievelijke clusters, wordt het zwaartepunt opnieuw toegewezen aan elk cluster. Nogmaals, alle datapunten worden herschikt in specifieke clusters op basis van hun afstand tot de nieuw gedefinieerde zwaartepunten. Dit proces wordt herhaald totdat de zwaartepunten stoppen met bewegen van hun posities.
Het K-Means-algoritme doet wonderen bij het groeperen van nieuwe gegevens. Enkele van de praktische toepassingen van dit algoritme zijn sensormetingen, audiodetectie en beeldsegmentatie.
Laten we eens kijken naar de R-implementatie van K Means Clustering.
Op dichtheid gebaseerde ruimtelijke clustering van toepassingen met ruis (DBSCAN)
DBSCAN is het meest gebruikte op dichtheid gebaseerde clusteringalgoritme en wordt veel gebruikt. Het algoritme kiest een willekeurig startpunt en de buurt van dit punt wordt geëxtraheerd met behulp van een afstandsepsilon ‘ε’. Alle punten binnen de afstand epsilon zijn de buurtpunten. Als deze punten voldoende in aantal zijn, begint het clusteringproces en krijgen we ons eerste cluster. Als er niet genoeg aangrenzende datapunten zijn, wordt het eerste punt ruis genoemd.
Voor elk punt in dit eerste cluster worden de naburige datapunten (degene die binnen de epsilon-afstand met het respectieve punt ligt) ook toegevoegd aan hetzelfde cluster. Het proces wordt herhaald voor elk punt in het cluster totdat er geen datapunten meer kunnen worden toegevoegd.
Als we klaar zijn met het huidige cluster, wordt een onbezocht punt genomen als het eerste datapunt van het volgende cluster en worden alle naburige punten geclassificeerd in dit cluster. Dit proces wordt herhaald totdat alle punten als ‘bezocht’ zijn gemarkeerd.
DBSCAN heeft enkele voordelen in vergelijking met andere clusteralgoritmen:
- Het vereist geen vooraf ingesteld aantal clusters
- Identificeert uitschieters als ruis
- Mogelijkheid om willekeurig gevormde en grote clusters gemakkelijk te vinden
Hiërarchische clustering
Hiërarchische clustering is onderverdeeld in verdeeldheid zaaiende en agglomeratieve clustering. Kortom, deze algoritmen hebben clusters die zijn gesorteerd in een volgorde op basis van de hiërarchie in observaties van gegevensovereenkomsten.
Divisive Clustering, of de top-downbenadering, groepeert alle datapunten in één cluster. Vervolgens verdeelt het het in twee clusters met de minste gelijkenis met elkaar. Het proces wordt herhaald en clusters worden verdeeld totdat er geen ruimte meer voor is.
Agglomeratieve clustering, of de bottom-upbenadering, wijst elk datapunt toe als een cluster en verzamelt de meest vergelijkbare clusters. Dit betekent in feite het samenbrengen van vergelijkbare gegevens in een cluster.
Van de twee benaderingen is Divisive Clustering nauwkeuriger. Maar dan hangt het weer af van het type probleem en de aard van de beschikbare dataset om te beslissen welke aanpak moet worden toegepast op een specifiek clusterprobleem in Machine Learning.
Toepassingen van Clustering
Clustering heeft verschillende toepassingen in verschillende sectoren en is een effectieve oplossing voor een overvloed aan machine learning-problemen.
- Het wordt gebruikt in marktonderzoek om relevante klantenbestanden en doelgroepen te karakteriseren en te ontdekken.
- Classificeren van verschillende soorten planten en dieren met behulp van beeldherkenningstechnieken
- Het helpt bij het afleiden van taxonomieën van planten en dieren en classificeert genen met vergelijkbare functionaliteiten om inzicht te krijgen in structuren die inherent zijn aan populaties.
- Het is toepasbaar in stadsplanning om groepen huizen en andere voorzieningen te identificeren op basis van hun type, waarde en geografische coördinaten.
- Het identificeert ook gebieden met vergelijkbaar landgebruik en classificeert ze als agrarisch, commercieel, industrieel, residentieel, enz.
- Classificeert documenten op internet voor het ontdekken van informatie
- Is ook van toepassing als dataminingfunctie om inzicht te krijgen in de gegevensdistributie en om kenmerken van verschillende clusters te observeren
- Identificeert krediet- en verzekeringsfraude bij gebruik in toepassingen voor het detecteren van uitschieters
- Nuttig bij het identificeren van risicovolle zones door door aardbevingen getroffen gebieden te bestuderen (ook van toepassing op andere natuurlijke gevaren)
- Een eenvoudige toepassing zou in bibliotheken kunnen zijn om boeken te clusteren op basis van onderwerpen, genre en andere kenmerken
- Een belangrijke toepassing is het identificeren van kankercellen door ze te classificeren tegen gezonde cellen
- Zoekmachines bieden zoekresultaten op basis van het dichtstbijzijnde vergelijkbare object voor een zoekopdracht met behulp van clustertechnieken
- Draadloze netwerken gebruiken verschillende clusteralgoritmen om het energieverbruik te verbeteren en de gegevensoverdracht te optimaliseren
- Hashtags op sociale media maken ook gebruik van clustertechnieken om alle posts met dezelfde hashtag onder één stream te plaatsen
In dit artikel hebben we verschillende clusteralgoritmen in Machine Learning besproken. Hoewel onbewaakt leren en machine learning als geheel zoveel meer inhoudt, vestigt dit artikel specifiek de aandacht op clusteralgoritmen in machine learning en hun toepassingen. Als je meer wilt weten over machine learning-concepten, ga dan naar onze blog. En als je een carrière in Machine Learning wilt nastreven, verbeter je vaardigheden dan met het PG-programma van Great Learning in Machine Learning.