De Support Vector Machine (SVM) is een krachtige techniek binnen machine learning die gebruikt wordt voor classificatie- en regressieproblemen. Het belangrijkste idee achter de SVM is om een hypervlak te vinden dat de data het beste scheidt, waarbij de marge tussen de dichtstbijzijnde datapunten (de support vectors) zo groot mogelijk wordt gemaakt. Dit lijkt eenvoudig voor lineair separabele data, maar in de praktijk is de situatie vaak complexer. SVM kan echter ook worden toegepast op niet-lineaire classificatieproblemen, waarbij de data niet eenvoudig in twee klassen gescheiden kan worden door een rechte lijn of vlak. Hier komt de zogenaamde kerneltruc om de hoek kijken, waarmee de SVM ook in gevallen van niet-lineaire scheiding effectief kan worden toegepast.

Het duale probleem van de SVM wordt vaak geformuleerd als een kwadratisch optimalisatieprobleem, waarbij we proberen de waarden van de Lagrangemultiplicatoren αi\alpha_i te optimaliseren. Dit probleem kan worden uitgedrukt als een functie van de Gram-matrix GG, die de inwendige producten van de data bevat. Door deze optimalisatie kunnen we de gewichten van het model bepalen, die vervolgens gebruikt worden voor classificatie. De SVM is bijzonder krachtig omdat het niet alleen het optimale hypervlak zoekt, maar ook de steunvectoren identificeert die het belangrijkst zijn voor het model.

De moeilijkheid ontstaat echter wanneer de data niet lineair separabel is. In zulke gevallen kan het probleem worden opgelost door de data naar een hogere-dimensionale ruimte te transformeren, waar het probleem mogelijk wel lineair separabel wordt. Dit idee is de kern van de kerneltruc. In plaats van de werkelijke transformatie expliciet uit te voeren, gebruiken we een kernelfunctie die de inwendige producten tussen getransformeerde data direct berekent, zonder dat we de transformatie zelf hoeven uit te voeren.

Een van de meest gebruikte kernelfuncties is de Radial Basis Function (RBF)-kernel. Deze kernel berekent de gelijkenis tussen twee datapunten op basis van hun Euclidische afstand. De RBF-kernel is bijzonder effectief voor een breed scala aan niet-lineaire classificatieproblemen, omdat het in staat is om complexere scheidingsgrenzen te modelleren dan lineaire modellen. De parameter γ\gamma, die de breedte van de RBF-kernel controleert, speelt een cruciale rol in de prestaties van het model. Een te grote waarde van γ\gamma kan leiden tot overfitting, terwijl een te kleine waarde kan resulteren in onderfitting.

Naast de RBF-kernel zijn er ook andere soorten kernels die gebruikt kunnen worden, zoals polynomiale kernels en sigmoid kernels. Deze kernels kunnen variëren afhankelijk van de specifieke aard van het probleem en de gewenste mate van flexibiliteit. De keuze van de juiste kernelfunctie is een belangrijke stap in het optimalisatieproces van de SVM, en het kan de prestaties van het model sterk beïnvloeden.

De kerneltruc maakt het mogelijk om de voordelen van hogere-dimensionale representaties te benutten zonder de bijbehorende computationele kosten. Dit is cruciaal, omdat het anders onpraktisch zou zijn om expliciet met hoge-dimensionale data te werken. Door gebruik te maken van kernelmethoden kunnen we de kracht van lineaire modellen combineren met de flexibiliteit die nodig is voor niet-lineaire classificatie.

Daarnaast moet men zich bewust zijn van de zogenaamde overfitting die kan optreden wanneer de modelcomplexiteit te groot is in verhouding tot de hoeveelheid beschikbare data. Het kiezen van een juiste kernel en het afstemmen van de hyperparameters, zoals de waarde van γ\gamma en de regularisatieparameter CC, zijn van essentieel belang voor het vermijden van overfitting en het bereiken van een goed generaliserend model.

Het trainen van een SVM vereist ook de oplossing van het duale probleem, wat vaak gebeurt via het Sequential Minimal Optimization (SMO)-algoritme. SMO is een efficient algoritme dat iteratief de Lagrangemultiplicatoren αi\alpha_i bijwerkt. Bij iedere iteratie worden twee van de αi\alpha_i-waarden simultaan aangepast, waarbij het algoritme probeert de objectieve functie te maximaliseren onder de gegeven beperkingen. Dit proces zorgt ervoor dat de oplossing altijd binnen de toegestane grenzen blijft en het optimalisatieprobleem oplost zonder de noodzaak van zware matrixberekeningen.

Een belangrijk aspect van het trainen van een SVM is het berekenen van de Gram-matrix, die de kern van de kerntruc vormt. De Gram-matrix is een symmetrische matrix die de inwendige producten van de trainingsdata bevat, en het efficiënt berekenen van deze matrix is essentieel voor het succes van de SVM. De kwaliteit van de kernel, evenals de methoden voor het oplossen van het duale probleem, bepalen uiteindelijk de prestaties van het model.

In conclusie, de SVM is een uiterst krachtig model voor zowel lineaire als niet-lineaire classificatieproblemen, maar het vereist zorgvuldige afstemming van de parameters en de juiste keuze van kernel om optimaal te presteren. Door het gebruik van kernelmethoden kunnen we de SVM toepassen op complexe datasets die anders moeilijk te classificeren zouden zijn. De kerneltruc is een essentieel hulpmiddel in dit proces, en het stelt de SVM in staat om effectief te werken in hoge-dimensionale ruimtes zonder de hoge rekenkosten die normaal gepaard zouden gaan met dergelijke berekeningen.

Wat is de Singular Value Decompositie en hoe wordt deze geïnterpreteerd en berekend?

De Singular Value Decompositie (SVD) van een matrix speelt een cruciale rol in veel gebieden van data-analyse, lineaire algebra en machine learning. Het biedt een manier om een matrix A te ontleden in drie andere matrices: A=UΣVTA = U \Sigma V^T, waarbij UU en VV orthogonale matrices zijn, en Σ\Sigma een diagonaalmatrix is met de zogenaamde singuliere waarden van de matrix. Deze decompositie maakt het mogelijk om zowel geometrische als algebraïsche inzichten te verkrijgen in de structuur van de data die de matrix representeert.

Algebraïsche interpretatie van de SVD

Stel dat we een matrix AA hebben van rang rr. De SVD van AA is dus:

A=UΣVTA = U \Sigma V^T

waarbij UU de matrix van linker-singuliere vectoren bevat, Σ\Sigma de diagonaalmatrix van singuliere waarden σ1,σ2,,σn\sigma_1, \sigma_2, \ldots, \sigma_n bevat, en VV de matrix van rechter-singuliere vectoren bevat. Deze decompositie geeft ons de mogelijkheid om de matrix AA te herleiden tot een product van drie matrices die de structuur van de data in AA blootleggen.

Als we de matrix AA vermenigvuldigen met VV, krijgen we:

AV=UΣAV = U \Sigma

waarbij de matrix AA wordt "afgetapt" door de singuliere waarden en de bijbehorende vectoren. De rechter-singuliere vectoren v1,v2,,vnv_1, v_2, \ldots, v_n vormen een basis voor de ruimte van de data, terwijl de linker-singuliere vectoren u1,u2,,uru_1, u_2, \ldots, u_r een orthogonale basis vormen voor de rijen van AA.

Geometrische interpretatie van de SVD

Geometrisch gezien kan de SVD worden gezien als een manier om de ruimte van de data in te kaart te brengen. De matrix AA transformeert een orthonormale basis B1={v1,v2,,vn}B_1 = \{v_1, v_2, \ldots, v_n\} van Rn\mathbb{R}^n naar een nieuwe "geschaalde" orthogonale basis B2={σ1u1,σ2u2,,σrur}B_2 = \{\sigma_1 u_1, \sigma_2 u_2, \ldots, \sigma_r u_r\} van een deelruimte van Rm\mathbb{R}^m. Deze transformatie kan worden beschouwd als een rotatie, gevolgd door een schaling en vervolgens weer een rotatie.

Dit kan worden gevisualiseerd door te kijken naar de eenheidsbol Sn1S^{n-1} in Rn\mathbb{R}^n, waarbij elke vector xx op deze bol door de matrix AA wordt getransformeerd naar een nieuwe vector AxAx, die in de ruimte Rm\mathbb{R}^m een ellipsoïde vormt:

Ax=σ1x1u1+σ2x2u2++σrxrurAx = \sigma_1 x_1 u_1 + \sigma_2 x_2 u_2 + \cdots + \sigma_r x_r u_r

Hier wordt elke component van xx geschaald door de overeenkomstige singuliere waarde σj\sigma_j, wat leidt tot een verandering van de geometrische vorm van de eenheidsbol naar een ellipsoïde.

Belangrijke eigenschappen van de SVD

Er zijn verschillende eigenschappen van de SVD die nuttig zijn in zowel theoretische als praktische toepassingen. De belangrijkste eigenschappen zijn:

  • Rang van de matrix: De rang van AA komt overeen met het aantal niet-nul singuliere waarden, rr. Dit betekent dat de rang van de matrix wordt bepaald door het aantal niet-nul waarden in Σ\Sigma.

  • Nullruimte en kolomruimte: De nullruimte van AA wordt gekarakteriseerd door de rechter-singuliere vectoren die overeenkomen met de nul singuliere waarden. De kolomruimte van AA wordt gekarakteriseerd door de linker-singuliere vectoren die overeenkomen met de niet-nul singuliere waarden.

  • Optimalisatie: De SVD biedt ook een manier om een matrix AA te benaderen met behulp van een lagere rang. Dit is vooral nuttig voor dimensiereductie en compressie. De rang- kk-benadering van AA, gegeven door de eerste kk singuliere waarden en vectoren, is de beste benadering in de zin van de Frobenius-norm en de 2-norm.

Toepassingen van de SVD

De SVD heeft talloze toepassingen in de wiskunde en informatica. Een van de bekendste toepassingen is in de Principal Component Analysis (PCA), waar de SVD wordt gebruikt om de belangrijkste componenten van een dataset te vinden, wat nuttig is voor dimensiereductie. Een andere veelgebruikte toepassing is in latent semantic analysis (LSA) voor tekstanalyse, waarbij de SVD wordt gebruikt om de relatie tussen woorden en documenten te extraheren.

De SVD wordt ook toegepast in signal processing, beeldcompressie, machine learning, en numerieke stabiliteit van lineaire systemen. In al deze gevallen helpt de SVD bij het begrijpen van de onderliggende structuur van data en het verbeteren van de prestaties van algoritmen.

Berekening van de SVD

De berekening van de SVD kan worden uitgevoerd door eerst de covariance matrix ATAA^T A te berekenen. Vervolgens wordt de eigen-decompositie van deze matrix uitgevoerd. De eigenwaarden van ATAA^T A geven de kwadraten van de singuliere waarden van AA, en de eigenvectoren geven de rechter-singuliere vectoren. Na het berekenen van de singuliere waarden, kunnen de linker-singuliere vectoren worden verkregen door AA te vermenigvuldigen met de rechter-singuliere vectoren, genormaliseerd door de singuliere waarden.

Een belangrijk aspect van de SVD is dat deze computationeel intensief kan zijn, vooral voor grote matrices. Er zijn verschillende algoritmen die efficiënt de SVD kunnen berekenen, zoals de Golub-Reinsch-algoritme, dat stabiel is en goed presteert voor grote matrices.

Wat verder belangrijk is om te begrijpen

Hoewel de SVD krachtige wiskundige inzichten biedt, is het belangrijk te begrijpen dat de keuze van het aantal singuliere waarden die behouden blijven bij het maken van een benadering van de matrix invloed heeft op de kwaliteit van de resultaten. In veel toepassingen, zoals gegevenscompressie of ruisonderdrukking, is het essentieel om te begrijpen hoe de singuliere waarden de gegevens representeren en hoe het behoud van bepaalde waarden invloed heeft op de nauwkeurigheid van het model. Het negeren van te veel kleine singuliere waarden kan leiden tot verlies van belangrijke informatie, terwijl het behouden van te veel kan leiden tot overfitting of inefficiënte berekeningen.

Hoe beïnvloedt de Singular Value Decomposition (SVD) de numerieke rang en beeldcompressie?

De Singular Value Decomposition (SVD) is een krachtig wiskundig hulpmiddel dat in verschillende domeinen wordt gebruikt, van numerieke lineaire algebra tot machine learning en beeldverwerking. De toepassing van de SVD kan echter complex zijn, vooral wanneer we rekening houden met numerieke fouten, die de bepaling van de rang van een matrix kunnen compliceren. De rang van een matrix speelt een cruciale rol in zowel de wiskundige analyse van gegevens als in de compressie van grote datasets, zoals afbeeldingen. Dit hoofdstuk behandelt de fundamenten van de SVD, de impact van numerieke fouten op de rang, en de toepassing van SVD in beeldcompressie.

De SVD van een matrix AA kan worden uitgedrukt als de factorisatie:

A=UΣVTA = U \Sigma V^T

waarbij UU en VV orthogonale matrices zijn, en Σ\Sigma een diagonaalmatrix bevat die de singuliere waarden van AA bevat. Deze singuliere waarden, aangeduid met σi\sigma_i, geven de sterkte van de corresponderende componenten in de data weer. De rang van de matrix kan dan worden bepaald door het aantal niet-nul singuliere waarden. In de ideale situatie, zonder ronden of meetfouten, zou de rang van de matrix eenvoudig kunnen worden vastgesteld door het aantal niet-nul singuliere waarden te tellen.

Numerieke rang en de invloed van fouten

Echter, in de praktijk kunnen numerieke fouten de bepaling van de rang bemoeilijken. Dit komt vooral voor bij grote matrices of wanneer de matrix wordt beïnvloed door kleine afwijkingen door afronding van getallen in computersystemen. Om dit probleem te verhelpen, wordt de conceptie van de numerieke rang geïntroduceerd. In plaats van te vertrouwen op de exacte waarden van de singuliere waarden, stellen we een drempelwaarde TT in. De matrix wordt dan als een numerieke rang rr beschouwd als er precies rr singuliere waarden groter zijn dan deze drempel TT.

De drempel TT wordt vaak gedefinieerd als:

T=2max(m,n)ϵA2T = 2 \cdot \max(m, n) \cdot \epsilon \|A\|_2

waarbij ϵ\epsilon de eenheidsafhandelingsfout is, en A2\|A\|_2 de 2-norm van de matrix AA is. De keuze van deze drempel is van belang voor het bepalen van de rang in een praktische context, aangezien kleine singuliere waarden die in de buurt van nul liggen vaak worden genegeerd. In MATLAB wordt bijvoorbeeld de ingebouwde functie rank gebruikt om de numerieke rang te berekenen, waarbij de drempel automatisch wordt ingesteld op de eerder genoemde waarde.

In het geval van de matrix AA in de tekst, met een derde singuliere waarde die van orde 101710^{ -17} is, zou de rang van de matrix als 2 worden beschouwd, aangezien de derde singuliere waarde de drempel niet overschrijdt.

SVD in beeldcompressie

Naast het gebruik van SVD voor het analyseren van de rang, heeft deze techniek ook belangrijke toepassingen in beeldcompressie. In beeldcompressie is het doel om een afbeelding op een efficiënte manier op te slaan, zonder al te veel visuele informatie te verliezen. Dit kan worden bereikt door gebruik te maken van een dyadische decompositie van de afbeelding.

De afbeelding kan worden voorgesteld als de som van rang-1 matrices, zoals volgt:

A=UΣVTA = U \Sigma V^T

waarbij UU en VV de matrices zijn die respectievelijk de kolom- en rijvectoren van de afbeelding bevatten, en Σ\Sigma de diagonaalmatrix van singuliere waarden is. Het idee is om een benadering van de afbeelding te maken door alleen de grootste kk singuliere waarden en bijbehorende vectoren te behouden. Deze benadering is het dichtst bij de oorspronkelijke afbeelding en kan worden gereconstrueerd door de volgende expressie:

Ak=UkΣkVkTA_k = U_k \Sigma_k V_k^T

waarbij kk het aantal singuliere waarden is dat we behouden voor de compressie.

Dit proces van beeldcompressie kan verder worden geïllustreerd met behulp van MATLAB-code. Bijvoorbeeld, voor de afbeelding 'Peppers.png', kunnen we de afbeelding inleiden met de volgende code:

matlab
img = imread('Peppers.png');
[m, n, d] = size(img); [U, S, V] = svd(reshape(im2double(img), m, [])); k = 20; img_k = U(:,1:k) * S(1:k,1:k) * V(:,1:k)'; img_k = reshape(img_k, m, n, d); imshow(img_k);

In dit voorbeeld wordt de afbeelding gecomprimeerd door de eerste 20 singuliere waarden te behouden. De grootte van de opslagruimte wordt aanzienlijk verminderd, terwijl de visuele kwaliteit van de afbeelding relatief behouden blijft. Als de waarde van kk kleiner wordt gekozen, zoals k=1k = 1, zal de afbeelding sterk gecomprimeerd zijn, maar met een groter verlies van kwaliteit.

Bijvoorbeeld, voor k=50k = 50 vereist de opslag slechts (m+n)k=54,000(m+n) \cdot k = 54,000 woorden in plaats van de volledige opslagruimte van 270×270×3=218,700270 \times 270 \times 3 = 218,700 woorden. Dit toont aan hoe de SVD kan worden toegepast om afbeeldingen aanzienlijk te comprimeren zonder dat er teveel visuele informatie verloren gaat.

Samenvatting

De Singular Value Decomposition biedt een krachtig middel om zowel de rang van een matrix te begrijpen als om gegevens, zoals afbeeldingen, effectief te comprimeren. De aanwezigheid van numerieke fouten kan echter de nauwkeurigheid van de rangbepaling beïnvloeden, waardoor het noodzakelijk is om een drempelwaarde in te stellen. In beeldcompressie maakt de SVD het mogelijk om een afbeelding op te slaan met een aanzienlijke vermindering van de opslagvereisten, terwijl het grootste deel van de visuele informatie behouden blijft. De toepassing van SVD in beeldverwerking is een essentieel gereedschap voor efficiënte datacompressie.

Hoe Lineaire Discriminante Analyse (LDA) en Dimensiereductie Werken

In de context van lineaire discriminante analyse (LDA) is het doel om de dataset te reduceren tot een lagere dimensie terwijl de klassen in de gegevens optimaal gescheiden blijven. Dit gebeurt door een projectie te vinden die de klassen het beste onderscheidt, wat essentieel is voor veel toepassingen in machine learning, zoals patroonherkenning en classificatie.

LDA begint met het standaardiseren van de data. Dit houdt in dat elke dimensie van de dataset wordt geschaald zodat de gemiddelde waarde nul is en de standaarddeviatie gelijk is aan één. Dit is een cruciale stap, omdat LDA afhankelijk is van het verschil tussen de klassen en de spreiding binnen de klassen. Wanneer de data niet gestandaardiseerd is, kan dit de resultaten verstoren.

Het proces begint bij het berekenen van de gemiddelde vector voor elke klasse. Vervolgens worden twee belangrijke matrices geconstrueerd: de within-class scatter matrix (Sw) en de between-class scatter matrix (Sb). De eerste matrix meet de variabiliteit binnen de klassen, terwijl de tweede de variabiliteit tussen de klassen meet. Het idee is om een projectie te vinden die de tussen-klassenvariatie maximaliseert en de binnen-klassenvariatie minimaliseert.

Nadat deze matrices zijn geconstrueerd, wordt het eigenwaardeprobleem opgelost door de eigenvectoren en de bijbehorende eigenwaarden van de matrix Sw1SbS_w^{ -1} S_b te berekenen. De eigenvectoren vormen de projectierichtingen, en de eigenwaarden geven de betekenis van die richtingen in termen van hun discriminatieve kracht. De eigenvectoren worden gesorteerd op basis van de eigenwaarden, en de eerste k eigenvectoren worden gekozen om de nieuwe projectiematrix te vormen.

De datapunten worden vervolgens geprojecteerd op deze nieuwe ruimte door het matrixproduct van de data en de projectiematrix. Dit resulteert in een lagere-dimensionale representatie van de gegevens, waarbij de belangrijkste informatie behouden blijft, maar met minder dimensies.

In de praktijk is het aantal projecties (dimensies) dat kan worden gegenereerd met LDA beperkt. Het kan maximaal c1c-1 zijn, waarbij cc het aantal klassen in de dataset is. Dit komt doordat de LDA gericht is op het maximaliseren van de spreiding tussen de klassen. Indien meer dimensies nodig zijn voor betere scheiding, moeten andere technieken, zoals niet-lineaire benaderingen, worden overwogen.

LDA is een parametrische techniek die ervan uitgaat dat de klassen normaal verdeeld zijn en gelijke covariantiematrices hebben. Wanneer deze aannames niet opgaan, kan de LDA minder effectief zijn, aangezien de methode geen complexe structuren in de gegevens kan behouden. Dit kan een beperking zijn, vooral wanneer de data sterk non-Gaussiaans is. Bovendien, als de discriminatoire informatie niet in de gemiddelde waarden maar in de variantie van de data ligt, zal LDA niet in staat zijn om deze informatie correct vast te leggen.

Het is belangrijk om te realiseren dat LDA minder geschikt is voor datasets waarin de klassen overlappen of niet-lineair van aard zijn. In dergelijke gevallen biedt de Principal Component Analysis (PCA) een nuttig alternatief, hoewel dit een niet-supervisie methode is die de classificatie niet direct ondersteunt. Het verschil tussen PCA en LDA komt naar voren wanneer de classificatie afhankelijk is van het maximaliseren van de scheiding tussen de klassen, wat LDA beter maakt in vergelijking met PCA. LDA wordt dan ook vaak gezien als effectiever in de context van gesuperviseerde classificatieproblemen, zolang de aannames van de methode geldig blijven.

Er moet echter altijd rekening worden gehouden met de beperkingen van LDA, vooral bij het werken met niet-lineaire datasets of wanneer de klassen meerdere overlappen vertonen. In dergelijke gevallen kunnen technieken zoals Kernel Principal Component Analysis (Kernel PCA) of Support Vector Machines (SVM) nuttig zijn, omdat ze in staat zijn om meer complexe structuren in de data te identificeren.

Hoe werkt de Multi-Class Least-Error-Square Sum (mCLESS) algoritme?

In het mCLESS-algoritme worden gegevenspunten uit verschillende klassen gerepresenteerd door een vector x(c)x(c) waarin het superscript cc de klasse aanduidt waartoe het punt behoort. Voor een dataset met twee variabelen x1x_1 en x2x_2, kan een punt in de cc-de klasse worden uitgedrukt als x(c)=[x1,x2,c]x(c) = [x_1, x_2, c], waarbij c{0,1,2}c \in \{0, 1, 2\}. Dit betekent dat elk punt wordt gekoppeld aan een specifieke klasse, en de taak van de machine learning-algoritme is om de juiste klasse te voorspellen voor nieuwe, ongeziene punten.

Wiskundige Basis van mCLESS

Het mCLESS-algoritme maakt gebruik van een kunstmatig neuraal netwerk zonder verborgen lagen en met een identiteit activatiefunctie, wat de wiskunde eenvoudiger maakt. Bij deze opzet kunnen de gewichten die aan de punten worden toegewezen, zo getraind worden dat de punten die tot dezelfde klasse behoren, worden benadrukt door een specifieke set van gewichten.

Om deze gewichten te vinden, wordt het minst-kwadratenprobleem gebruikt. De gewichten worden zo aangepast dat de fouten tussen de voorspelde en werkelijke klassen geminimaliseerd worden. Dit gebeurt door de volgende wiskundige formulering:

W=argminAWB2W = \arg \min ||A W - B||^2

waarbij AA de informatiematrix is en BB de bronmatrix die de werkelijke klasse-informatie van elk punt bevat. Het doel is om de gewichten WW te berekenen die de afwijkingen tussen de voorspellingen en de werkelijke klassen minimaliseren. Deze benadering kan worden opgelost via de normale vergelijkingen:

(ATA)W=ATB(A^T A) W = A^T B

Training en Voorspelling

De training van het mCLESS-model gebeurt door de dataset in een matrixvorm te presenteren en de gewichten te berekenen die de beste voorspellingen voor elke klasse opleveren. Wanneer de training is voltooid, kan een nieuwe punt worden voorspeld door eenvoudigweg de gewichten toe te passen op de input van dat punt en de bijbehorende klasse te bepalen door de grootste waarde in de vector van voorspellingen te selecteren.

De voorspelling kan worden uitgevoerd met de volgende eenvoudige stappen:

  1. Voor een nieuw punt [x1,x2][x_1, x_2], bereken de vector [1,x1,x2]W[1, x_1, x_2] W.

  2. De uitkomst is een vector [p0,p1,p2][p_0, p_1, p_2], waarbij idealiter de waarde pjp_j voor de juiste klasse jj dicht bij 1 ligt, terwijl de andere waarden dicht bij 0 liggen.

  3. De voorspelde klasse cc wordt bepaald als de index van de grootste waarde in de vector [p0,p1,p2][p_0, p_1, p_2].

Dit resulteert in de beslissing voor de klasse cc, waarbij de index van de grootste waarde in de vector aangeeft bij welke klasse het punt hoort.

Toepassing en Prestaties

Bij een experiment met een synthetische dataset, waarin de dataset werd geschaald en willekeurig werd gesplitst in een training- en testset, bleek het mCLESS-algoritme zeer nauwkeurig te zijn. Na 100 experimenten, waarbij 70% van de data werd gebruikt voor training en 30% voor testdoeleinden, bereikte het model een gemiddelde nauwkeurigheid van 97,87% met een verwerkingstijd van slechts 0,00171 seconden.

Tijdens het trainen worden de gewichten zo geoptimaliseerd dat de lineaire grenzen tussen de klassen kunnen worden getekend. Dit maakt het mCLESS-model interpreteerbaar, omdat de gewichten de grenzen bepalen die de verschillende klassen scheiden. De lijnen die door de gewichten worden vertegenwoordigd, kunnen worden weergegeven in een grafiek, waarin de grenzen van de klassen zichtbaar zijn.

Non-lineaire Uitbreidingen van mCLESS

Hoewel het mCLESS-algoritme oorspronkelijk een lineair classificatiemodel is, kunnen niet-lineaire uitbreidingen worden geïmplementeerd door gebruik te maken van feature-expansie. Bij feature-expansie worden de gegevens getransformeerd naar een hogere dimensie, zodat niet-lineaire scheidingslijnen mogelijk worden. Dit kan worden bereikt door een geschikte functie toe te passen op de originele gegevenspunten, zoals de Euclidische afstand tot een specifiek punt pp.

In de niet-lineaire versie van mCLESS wordt de transformatie van de gegevenspunten uitgevoerd zonder een kernel-truc, zoals bij Support Vector Machines (SVM), wat resulteert in een uitgebreidere gewichtsruimte. De gewichten worden vervolgens opnieuw berekend, maar deze keer met een hogere dimensionale representatie van de gegevens.

Wat Is Belangrijk Voor De Lezer?

Bij het werken met mCLESS moet de lezer begrijpen dat het succes van het model sterk afhankelijk is van de juiste keuze van de trainingsdata en de wijze waarop de gewichten worden geoptimaliseerd. Daarnaast is het belangrijk te realiseren dat mCLESS in zijn basisvorm een lineair model is, wat betekent dat het mogelijk niet goed presteert bij complexere datasets die niet-lineair van aard zijn. In dergelijke gevallen biedt feature-expansie een krachtige oplossing, maar dit komt wel met een verhoogde rekentijd en complexiteit. Ten slotte moet men zich bewust zijn van de potentiële uitdagingen bij het werken met kleine datasets, waarbij het normaalmatrix mogelijk singulier kan zijn, en het gebruik van technieken zoals Singuliere Waarde Decompositie (SVD) noodzakelijk kan zijn.