Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

PCA staat voor Principal Components Analysis. PCA is net als lineaire regressie een primaire techniek voor patroonherkenning in de wereld van ML, maar in tegenstelling tot lineaire regressie, is de techniek niet gebaseerd op een model van de werkelijkheid (of de oorsprong van de data).

Het is een techniek die vaak gebruikt wordt om hoog-dimensionele feature vectoren samen te drukken in een kleinere vectorruimte met behoud van de belangrijkste proportie van de variantie in de originele ruimte. De essentie is echter dat deze techniek feature matrices, die potentieel gecorreleerd zijn, projecteert op een nieuwe set van ongecorreleerde variabelen, de principale componenten.

Belangrijkste toepassingen

  • Dimensionaliteitsreductie: Comprimeren van hoog-dimensionele data naar een lagere dimensie

  • Visualisatie: Projecteren van data naar 2D of 3D voor visualisatie

  • Ruisreductie: Behouden van enkel grootste bronnen van variatie in de data

  • Feature decorrelatie: Verwijderen van multicollineariteit

Basis intuïtie

We illustreren de basis met 500 gesimuleerde datapunten uit een 2D normaalverdeling met:

  • gemiddeldes μ=[15230]T\pmb{\mu} = \begin{bmatrix} 15 & 230 \end{bmatrix}^T,

  • varianties σ2=[10025]T\pmb{\sigma^2} = \begin{bmatrix} 100 & 25 \end{bmatrix}^T en

  • correlatie-coefficient r=0.6r=0.6.

De covariantie-matrix Σ\pmb{\Sigma} van deze verdeling N(μ,Σ)\mathcal{N}(\pmb{\mu}, \pmb{\Sigma}) heeft de volgende vorm:

Σ=[σ12σ1,2σ1,2σ22]=[σ12rσ1σ2rσ1σ2σ22]=[100303025]\begin{align} \pmb{\Sigma} &= \begin{bmatrix} \sigma_{1}^2 & \sigma_{1, 2} \cr \sigma_{1, 2} & \sigma_{2}^2 \cr \end{bmatrix} \cr &= \begin{bmatrix} \sigma_{1}^2 & r\sigma_1\sigma_2 \cr r\sigma_1\sigma_2 & \sigma_{2}^2 \cr \end{bmatrix} \cr &= \begin{bmatrix} 100 & 30 \cr 30 & 25 \cr \end{bmatrix} \end{align}
Source
<Figure size 700x600 with 1 Axes>

Als we kijken naar de assen die door de oorspronkelijke data gevormd worden (in het blauw), zien we dat die niet samen lopen met de “vorm” van de variatie in de sample. De assen in het rood daarentegen, liggen wel in de richting van de variatie.

Source
<Figure size 700x600 with 1 Axes>

De rode assen zijn de zogenaamde eigenvectoren van de covariantiematrix Σ\pmb{\Sigma} van de data. De eigenvectoren geven de natuurlijke richtingen van variatie in de data aan:

  • Eerste principale component (PC1): De richting waarin de data het meest varieert. Dit is de eigenvector met de grootste eigenwaarde. Als we de data op deze as projecteren, behouden we het maximale deel van de variantie.

  • Tweede principale component (PC2): De richting waarin de data het tweede meest varieert, orthogonaal (loodrecht) op PC1. Dit zorgt ervoor dat de principale componenten onderling ongecorreleerd zijn.

De lengte van de rode pijlen is proportioneel met de standaarddeviatie (wortel van de eigenwaarde) langs die richting. We zien duidelijk dat PC1 langer is dan PC2, wat betekent dat de data meer gespreid is in de richting van PC1.

In tegenstelling tot de originele blauwe assen (x1x_1 en x2x_2), die willekeurig gekozen zijn en niet aansluiten bij de structuur van de data, vangen de principale componenten de inherente geometrie van de data op.

Aan de hand van de hoek tussen het originele assenstelsel en het stelsel van de eigenvectoren, kunnen we de data projecteren in de ruimte van de principale componenten.

Source
<Figure size 700x600 with 1 Axes>

Eigenwaardedecompositie

De principale componenten worden verkregen via eigenwaardedecompositie van de covariantie-matrix Σ\pmb{\Sigma}. De covariantie-matrix is altijd een vierkante matrix. Een eigenvector v\pmb{v} van een vierkante matrix A\pmb{A} is een vector v≠0\pmb{v} \neq \pmb{0} die na transformatie door A\pmb{A} alleen van lengte verandert, maar niet van richting:

Av=λv\pmb{A}\pmb{v} = \lambda \pmb{v}

waarbij λ\lambda de bijbehorende eigenwaarde is die aangeeft met welke factor de eigenvector wordt geschaald.

Voor PCA passen we dit toe op de covariantiematrix Σ\pmb{\Sigma}. Omdat Σ\pmb{\Sigma} een d×dd \times d matrix is (waarbij dd het aantal features is), heeft deze matrix dd eigenvectoren en bijbehorende eigenwaarden. We duiden deze aan met subscript ii voor i=1,…,di=1, \ldots, d:

Σvi=λivivoor i=1,…,d\pmb{\Sigma}\pmb{v}_i = \lambda_i \pmb{v}_i \quad \text{voor } i=1, \ldots, d

Als we alle dd eigenvector-vergelijkingen samenvoegen, kunnen we dit in matrixnotatie schrijven. We stapelen alle eigenvectoren als kolommen in een matrix V\pmb{V}:

V=[v1v2⋯vd]\pmb{V} = \begin{bmatrix} \pmb{v}_1 & \pmb{v}_2 & \cdots & \pmb{v}_d \end{bmatrix}

en alle eigenwaarden op de diagonaal van matrix Λ\pmb{\Lambda}:

Λ=[λ10⋯00λ2⋯0⋮⋮⋱⋮00⋯λd]\pmb{\Lambda} = \begin{bmatrix} \lambda_1 & 0 & \cdots & 0 \\ 0 & \lambda_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \lambda_d \end{bmatrix}

Dan kunnen we alle vergelijkingen Σvi=λivi\pmb{\Sigma}\pmb{v}_i = \lambda_i \pmb{v}_i tegelijk schrijven als:

ΣV=VΛ\pmb{\Sigma}\pmb{V} = \pmb{V}\pmb{\Lambda}

Omdat de eigenvectoren orthonormaal zijn (loodrecht op elkaar en lengte 1), geldt VTV=I\pmb{V}^T\pmb{V} = \pmb{I}, en dus VT=V−1\pmb{V}^T = \pmb{V}^{-1}. Dit geeft de eigenwaarde-decompositie:

Σ=VΛVT\pmb{\Sigma} = \pmb{V}\pmb{\Lambda}\pmb{V}^T

Praktische toepassing

In dit voorbeeld passen we PCA toe op moderne tekstembeddings om te illustreren hoe de techniek gebruikt wordt bij hoog-dimensionele data. We gebruiken BERT (Bidirectional Encoder Representations from Transformers), een state-of-the-art taalmodel dat zinnen omzet naar semantisch rijke vectorrepresentaties.

We gebruiken de AG News dataset met 4 nieuwscategorieën:

  • World (wereldnieuws)

  • Sports (sport)

  • Business (zakelijk)

  • Sci/Tech (wetenschap & technologie)

Elk nieuwsartikel wordt door BERT gerepresenteerd als een 768-dimensionale vector die de semantische betekenis van de tekst vastlegt.

PCA helpt ons om:

  1. De dimensionaliteit drastisch te reduceren (van 768 naar 2 dimensies)

  2. De semantische structuur te behouden (documenten over hetzelfde onderwerp blijven dicht bij elkaar)

  3. De data te visualiseren in 2D om patronen te ontdekken

Source
Output
Source
<Figure size 1200x900 with 1 Axes>