Principal Component Analysis (PCA) is een onbewerkte lineaire transformatietechniek die in veel verschillende domeinen wordt toegepast, maar vooral prominent is in machine learning, waar het veel wordt gebruikt voor feature extractie en dimensionale reductie. PCA is krachtig omdat het in staat is om de belangrijkste patronen in data te identificeren door de onderlinge correlatie tussen kenmerken te analyseren. Dit maakt het bijzonder geschikt voor datasets met vele variabelen, waarbij het doel is om de belangrijkste informatie te behouden en tegelijkertijd de complexiteit van de data te verminderen.
Bij het gebruik van PCA is het belangrijk om te begrijpen dat de richting van de componenten zeer gevoelig is voor de schaal van de gegevens. Dit betekent dat het essentieel is om de data te standaardiseren voordat PCA wordt toegepast. Anders kunnen de resultaten sterk worden beïnvloed door de variabiliteit van de verschillende kenmerken.
PCA is een onbewerkte techniek omdat het geen gebruik maakt van labelinformatie of andere externe context. Het identificeert alleen de richtingen in de data die de grootste variatie bevatten. Dit proces is volledig gebaseerd op de gegevens zelf, zonder enige vorm van supervisie. De belangrijkste wiskundige benadering van PCA is het vinden van een orthogonale gewichtsmatrix die de variatie in de data maximaliseert en de reconstructiefout minimaliseert.
Het berekenen van de hoofdcomponenten
Het begint met een gegevensmatrix van dimensie , waarbij elke rij een data-object vertegenwoordigt en elke kolom een specifiek kenmerk. Na het standaardiseren van de data, is het doel om een gewichtsmatrix te vinden, zodat de nieuwe matrix de grootste variantie bevat. Dit komt neer op het maximaliseren van de kwadratische norm van de nieuwe data, wat kan worden geoptimaliseerd door de eigenvectoren van de matrix te berekenen.
De eerste hoofdcomponent is de richting die de maximale variantie in de data beschrijft, en de bijbehorende gewichtvector is de eigenvector die de grootste eigenwaarde van de matrix representeert. Dit proces kan herhaald worden voor de overige componenten door de bijdrage van de al gevonden componenten uit de data te verwijderen, waardoor nieuwe richtingen worden gevonden die de overgebleven variatie maximaliseren.
Dimensionaliteitsreductie
Na het verkrijgen van de hoofdcomponenten kan PCA worden gebruikt voor dimensionaliteitsreductie. Door slechts de eerste hoofdcomponenten te behouden, kan de data worden getransformeerd naar een lager-dimensionale ruimte. Dit kan bijvoorbeeld nuttig zijn in situaties waar het aantal kenmerken te groot is om efficiënt te verwerken, zoals in beeldverwerking of genoomanalyse. De keuze van het aantal componenten is cruciaal, omdat het bepaalt hoeveel informatie behouden blijft in de getransformeerde dataset. Dit wordt vaak gedaan door te kijken naar de cumulatieve verklaarde variantie van de hoofdcomponenten. Wanneer het aandeel van de verklaarde variantie een drempelwaarde bereikt, kan de reductie als voldoende worden beschouwd.
Verklaarde variantie
Een belangrijk aspect van PCA is de verklaarde variantie van elke hoofdcomponent. De eigenwaarden van de matrix bepalen de grootte van de bijbehorende eigenvectoren (hoofdcomponenten), en de verklaarde variantie geeft aan hoeveel van de totale variantie in de data door elke hoofdcomponent wordt verklaard. Door de hoofdcomponenten te rangschikken op basis van de grootte van hun eigenwaarden, kunnen we bepalen welke componenten het meeste van de data-informatie bevatten. Dit is een sleutelconcept in PCA, omdat we vaak alleen geïnteresseerd zijn in de eerste paar componenten die de meeste informatie bevatten, terwijl de andere componenten relatief weinig bijdragen.
De Singular Value Decomposition (SVD)
Hoewel de eigenwaarde-decompositie van een gebruikelijke manier is om PCA uit te voeren, is een alternatieve methode de Singular Value Decomposition (SVD) van de originele data matrix . De SVD decompositie van een matrix geeft ons drie matrices: , , en , die respectievelijk de linker-singuliere vectoren, de singuliere waarden en de rechter-singuliere vectoren van vertegenwoordigen. De rechter-singuliere vectoren komen overeen met de eigenvectoren van , en de singuliere waarden zijn de vierkanten van de bijbehorende eigenwaarden. Dit biedt een andere manier om de hoofdcomponenten van de data te berekenen en wordt in de praktijk vaak gebruikt voor zijn numerieke stabiliteit en efficiëntie.
De SVD heeft bovendien het voordeel dat het direct de scorematrix geeft, die de projectie van de originele data op de hoofdcomponenten bevat. De SVD kan ook worden gebruikt voor het verkrijgen van de getransformeerde gegevens bij dimensionale reductie, waarbij alleen de grootste singuliere waarden en bijbehorende singuliere vectoren worden behouden om de dimensie te verminderen.
Keuze van het aantal componenten
Bij het gebruik van PCA voor dimensionaliteitsreductie is het kiezen van het juiste aantal componenten cruciaal. Het doel is om een balans te vinden tussen het behouden van voldoende informatie en het verminderen van de complexiteit van de data. Dit kan worden gedaan door naar de verklaarde variantie van de hoofdcomponenten te kijken. De eerste paar componenten zullen doorgaans het grootste deel van de variantie verklaren, terwijl de latere componenten steeds minder bijdragen. Het kiezen van het juiste aantal componenten is een iteratief proces waarbij de gebruiker het cumulatieve percentage van de verklaarde variantie vergelijkt met een vooraf bepaalde drempel.
Samenvattend
PCA is een krachtig hulpmiddel voor het analyseren en reduceren van de dimensie van complexe datasets. Door de gegevens in een ruimte van hoofdcomponenten te projecteren, kunnen we de belangrijkste patronen in de data ontdekken en de complexiteit verminderen zonder veel informatie te verliezen. Het is van belang dat de gegevens goed gestandaardiseerd zijn voordat PCA wordt toegepast, en dat het aantal componenten zorgvuldig wordt gekozen om een optimale balans te vinden tussen eenvoud en informatief vermogen. Door gebruik te maken van technieken zoals SVD kan PCA efficiënt worden uitgevoerd, zelfs bij zeer grote datasets.
Hoe Fisher's LDA de optimale projectie bepaalt voor meerdere klassen
In veel gevallen is het wenselijk om gegevens van meerdere klassen te projecteren in een lagere dimensie, zodat onderscheid gemakkelijker kan worden gemaakt. Fisher’s Lineaire Discriminant Analyse (LDA) is een krachtige techniek die dit mogelijk maakt door een optimale projectierichting te zoeken, die de tussen-klassen variantie maximaliseert en de binnen-klassen variantie minimaliseert. Dit proces wordt vaak toegepast in situaties waarbij we te maken hebben met datasets die meerdere klassen bevatten.
Wanneer we LDA toepassen op meerdere klassen, zoeken we een set van (c−1) projectierichtingen, waarbij c het aantal klassen is. Elke projectie wordt bereikt door een vector , waarbij de oorspronkelijke dimensie van de gegevens is. De verzameling van deze projectievectors wordt uitgedrukt als een matrix , waarbij elke kolom een eigen projectierichting voorstelt.
Het proces van het vinden van de optimale projectie bestaat uit het oplossen van een optimalisatieprobleem dat de verhouding van de tussen-klassen spreiding en de binnen-klassen spreiding maximaliseert. Deze verhouding wordt weergegeven door de zogenaamde Fisher’s criterium . Het doel is om de waarde van deze verhouding te maximaliseren, zodat de gegevens zo goed mogelijk gescheiden worden in de geprojecteerde ruimte.
De optimalisatie van deze functie leidt tot het oplossen van een gegeneraliseerd eigenwaardeprobleem. Dit betekent dat de projectievectors de eigenvectoren zijn die corresponderen met de grootste eigenwaarden van de matrix . De eigenvectoren worden verkregen door de vergelijking op te lossen, waarbij een diagonaal matrix is met de eigenwaarden. De bijbehorende eigenvectoren vormen de projectiematrices die de gegevens naar de optimale dimensie transformeren.
In het geval van twee klassen wordt de tussen-klassen spreiding berekend als , waarbij en de gemiddelden van de respectieve klassen zijn. Voor meerdere klassen wordt de tussen-klassen spreiding als volgt generaliseerd:
waarbij het globale gemiddelde van alle klassen is, en het aantal monsters in de -de klasse. De binnen-klassen spreiding wordt berekend door de som van de covariantiematrices van de verschillende klassen, , waarbij de covariantiematrix van de -de klasse is.
De optimalisatie wordt opgelost door het eigenwaardeprobleem , waarbij de matrix is van de optimale projectievectors. Het resultaat is een matrix van projecties die de gegevens naar een lagere dimensie transformeert, waarbij de klassen zo goed mogelijk van elkaar worden gescheiden.
In de praktijk kan LDA voor meerdere klassen nuttig zijn in veel verschillende contexten, van beeldverwerking tot bio-informatica en marktanalyse. De methode helpt bij het vinden van een eenvoudige representatie van complexe datasets, wat cruciaal is voor zowel visuele inspectie als voor verdere machine learning-toepassingen.
Wanneer men LDA voor meerdere klassen toepast, is het belangrijk om te begrijpen dat de gekozen projectierichtingen niet altijd een duidelijke scheiding tussen alle klassen zullen opleveren, vooral als de data niet goed gescheiden zijn. Het succes van LDA is afhankelijk van de eigenschappen van de data, zoals de spreiding binnen en tussen de klassen. Het is ook belangrijk om te bedenken dat LDA een lineaire techniek is en dus beperkingen heeft wanneer de klassen niet lineair gescheiden kunnen worden. In dat geval kunnen andere technieken zoals Kernel LDA of meer geavanceerde niet-lineaire methoden effectiever zijn.
Wat is K-Means en K-Medoids Clustering en hoe werkt het?
In clusteringanalyse wordt geprobeerd objecten op basis van hun eigenschappen in groepen te verdelen, genaamd clusters. Het doel van clustering is om de variabiliteit binnen een cluster te minimaliseren en de variabiliteit tussen clusters te maximaliseren. Twee van de meest gebruikte technieken voor partitiële clustering zijn K-Means en K-Medoids. Beide methoden hebben als doel een dataset in K clusters te verdelen, waarbij K een vooraf bepaald aantal is. Hoewel ze in veel opzichten vergelijkbaar zijn, is er een belangrijk verschil in de manier waarop ze de centra van de clusters bepalen.
K-Means is een populaire partitiële clusteringstechniek waarbij elk cluster wordt gekarakteriseerd door het gemiddelde van de punten in dat cluster, oftewel het centroid. Het proces begint met een willekeurige keuze van K centroids, waarna de data punten worden toegewezen aan het dichtstbijzijnde centroid. Vervolgens worden de centroids herberekend als het gemiddelde van de punten die aan hen zijn toegewezen, en dit proces wordt herhaald totdat de centroids niet meer veranderen of totdat het aantal toegewezen punten tussen iteraties weinig verschilt.
Het K-Means-algoritme heeft enkele beperkingen, met name bij het kiezen van de initiële centroids. Aangezien de initiële keuze vaak willekeurig is, kunnen de resulterende clusters sterk variëren tussen meerdere runs van het algoritme. Het kiezen van meer dan K willekeurige centroids en het selecteren van de meest gescheiden punten kan helpen om betere initialisaties te verkrijgen. Desondanks blijft het algoritme gevoelig voor lokale minima, wat betekent dat het soms vast kan komen te zitten in een suboptimaal clusteringresultaat.
Om de resultaten van K-Means te evalueren, wordt vaak de som van de kwadraten van de fouten (SSE) gebruikt. Dit geeft de totaliteit van de afwijkingen van de punten tot hun respectieve centroid aan. Als de SSE te hoog is, kan het zijn dat het gekozen aantal clusters K niet ideaal is. Een manier om de SSE te verlagen, is door het aantal clusters K te verhogen, maar dit kan soms leiden tot overfitting. De K-Means methode is gericht op het minimaliseren van deze fout.
De beperking van K-Means is dat het minder goed werkt met clusters die sterk van grootte of dichtheid variëren, of wanneer de clusters een niet-sferische vorm hebben. Ook kunnen uitbijters (outliers) de clustering sterk beïnvloeden, aangezien de centroids worden berekend op basis van de gemiddelde waarde van de punten in een cluster, wat gevoelig is voor afwijkende waarden. Om dit probleem te omzeilen, kan men in plaats van het gemiddelde de medoid gebruiken, het punt dat het dichtst bij het centrum van het cluster ligt.
Het K-Medoids-algoritme is een variant van K-Means die in plaats van een gemiddelde, representatieve objecten (medoïden) kiest om als clustercentra te fungeren. Dit maakt K-Medoids minder gevoelig voor uitbijters en biedt meer flexibiliteit bij het gebruik van verschillende afstandsmaten, zoals de L1-norm. Het PAM (Partitioning Around Medoids) algoritme is een veelgebruikte implementatie van K-Medoids, en het werkt door iteratief een van de huidige medoids te vervangen door een ander object uit de cluster, als dat leidt tot een verbetering van de totale afstand binnen het cluster.
De K-Medoids techniek is echter minder schaalbaar dan K-Means, vooral voor grotere datasets. Er bestaan varianten van K-Medoids, zoals CLARA (Clustering Large Applications), die met behulp van steekproeven werkt om de rekenkosten te verlagen, en CLARANS, die een geavanceerdere zoekstrategie gebruikt.
K-Medoids biedt dus aanzienlijke voordelen ten opzichte van K-Means, vooral in gevallen waar uitbijters of onregelmatige clusterstructuren aanwezig zijn. Hoewel K-Means vaak sneller is, vanwege de eenvoud van de berekeningen, blijft K-Medoids de voorkeur hebben in situaties waarbij nauwkeurigheid in de clustering essentieel is.
Het kiezen van het juiste aantal clusters, K, is altijd een uitdaging bij deze methoden. Er bestaan verschillende technieken om dit te bepalen, zoals de silhouette score, de elbow-methode en de Davies-Bouldin index. Toch blijft dit aspect van clustering vaak een heuristische benadering, waarbij de beste keuze voor K afhankelijk is van de specifieke eigenschappen van de dataset.
Hoewel K-Means en K-Medoids krachtige technieken zijn, moeten gebruikers zich bewust zijn van de beperkingen en uitdagingen die met deze methoden gepaard gaan. Zo kunnen bijvoorbeeld sterk gespreide of niet-convexe clusters moeilijk te identificeren zijn zonder het gebruik van meer geavanceerde clusteringtechnieken zoals DBSCAN of spectrale clustering. In dergelijke gevallen kunnen K-Means en K-Medoids niet de beste resultaten opleveren, en zou men kunnen overwegen alternatieve methoden te gebruiken.
Daarnaast speelt het voorbehandelen van de data een cruciale rol in het succes van deze clusteringalgoritmes. Normalisatie van de data, het verwijderen van uitbijters, en het correct omgaan met ontbrekende waarden kunnen de prestaties van de clustering verbeteren. Ook kan het nuttig zijn om voor- en na-verwerkingsstappen uit te voeren, zoals het splitsen van losjes gedefinieerde clusters of het samenvoegen van dicht bij elkaar gelegen clusters. Het gebruik van een hybride aanpak die zowel K-Means als hierarchische clusteringtechnieken combineert, kan eveneens de nauwkeurigheid verbeteren.
Hoe vermijd je oscillaties in versterkers en schakelingen?
Hoe politieke extremisme en haat in de Amerikaanse geschiedenis elkaar versterkten: Van de anti-Masons tot de Republikeinen
Wat is de rol van elektrodialyse en membranen in waterzuivering en biotechnologie?
Hoe droeg Benoît de Boigne bij aan de hervorming van Noord-India onder Sindhia?

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский