Bewerkingen op matrices vormen de kern van berekeningen in machine learning, statistische analyse en wetenschappelijk rekenen. Zo vereisen veel statistische operaties matrixinversie, diagonalizatie en exponentiatie. Dergelijke bewerkingen zijn rekenintensief, maar er zijn methoden om een matrix op te splitsen in een kleinere set matrices en zo de rekenefficiëntie te verhogen. Deze bewerkingen staan in het algemeen bekend als matrixfactorisatie en hebben, afhankelijk van de aard van de verkregen kleinere matrices, specifieke namen.
Eigendecompositie is een methode van matrixfactorisatie waarbij eigenwaarden en eigenvectoren de elementen van die matrices vormen. Inzicht in eigendecompositie geeft machine learning- en data science-engineers een wiskundige basis om methoden als dimensiereductie en matrixbenadering te begrijpen. Nadat je dit artikel hebt gelezen, volg de cursus Linear Algebra for Data Science in R om de centrale wiskundige onderwerpen te leren die aan data science ten grondslag liggen.
Wat is eigendecompositie?
Eigendecompositie is een methode van matrixfactorisatie waarbij een vierkante matrix wordt ontbonden (gedecomponeerd) in drie multiplicatieve matrices. Zo’n factorisatie heet eigendecompositie omdat de elementen van de matrices eigenwaarden en eigenvectoren van de oorspronkelijke vierkante matrix zijn. Wiskundig kan een vierkante matrix A worden ontbonden in drie matrices zodanig dat:
waarbij P de matrix is van de eigenvectoren van A,D een diagonale matrix is waarvan de niet-nul elementen de geordende eigenwaarden van de matrix zijn, en P-1 de inverse is van de matrix P.
De wiskunde achter eigendecompositie
Ik laat aan de hand van een voorbeeld de wiskundige stappen zien om de eigendecompositie van een vierkante matrix analytisch af te leiden. Onze voorbeeldmatrix is de 2x2 vierkante matrix A. Als je vastloopt bij de technieken voor het combineren van matrices, volg dan vooral onze cursusLinear Algebra for Data Science in Rzodat je je prettig voelt bij hoe matrixvermenigvuldiging werkt.
Om eigendecompositie uit te voeren op matrix A, moeten we de eigenwaarden en de bijbehorende eigenvectoren van deze vierkante matrix afleiden. We kunnen het karakteristieke polynoom van de matrix gebruiken om de eigenwaarden en eigenvectoren van deze matrix te berekenen. Als je met dit onderdeel niet vertrouwd bent, lees dan eerst Characteristic Equation: Everything You Need to Know for Data Science.
Volgens de definitie van een karakteristiek polynoom geldt nu:
Het karakteristieke polynoom voor onze matrix A is dan pA(λ) = λ2 - 18λ + 56. We kunnen de wortels van dit polynoom vinden door het gelijk te stellen aan nul om de eigenwaarden af te leiden:
De eigenwaarden zijn dus λ1 = 14 en λ1 = 4. Uit de eigenwaarden kunnen we de eigenvectoren van een matrix verkrijgen met (A - λI)X = 0 voor elke unieke eigenwaarde:
Voor λ1 = 14 vullen we 14 in en lossen we het homogene stelsel vergelijkingen op:
Dit levert een eendimensionale (d.w.z. één basisvector) eigenruimte op. We voeren hetzelfde proces uit voor λ1 = 4 en krijgen:
Nu we de eigenwaarden en de eigenvectoren van de matrix A hebben, kunnen we de eigendecompositie van A als volgt opschrijven:
Waarin we P hebben geconstrueerd door de twee eigenvectoren te bundelen (naast elkaar te plaatsen) en we de eigenwaarden (in aflopende volgorde) op de diagonaal van de matrix D hebben geplaatst.
Natuurlijk kunnen we eigendecompositie uitvoeren met een computersysteem en een programmeertaal zoals Python of R. Denk eraan dat Python en R genormaliseerde (op een 0-1-schaal) eigenvectoren kunnen produceren (d.w.z. orthonormale basis). Dit is belangrijk om te onthouden wanneer je probeert de matrix A te reconstrueren uit PDP-1 voor verificatiedoeleinden.
Toepassingen van eigendecompositie in data science
Eigendecompositie speelt een belangrijke rol in machine learning en statistiek. In machine learning wordt eigendecompositie gebruikt voor dimensiereductiemethoden, zoals PCA. Bij PCA zoeken we naar nieuwe dimensies (richtingen) voor de oorspronkelijke hoogdimensionale coördinaten die maximale informatie behouden. De eigendecompositie van de matrix levert de eigenwaarden op, en de eigenvectoren met de hoogste eigenwaarden behouden meer informatie en worden daarom aangewezen als de hoofdcomponenten van de data.
Eigendecompositie uitvoeren in Python en R
Nu we hebben geleerd hoe je eigendecompositie met pen en papier uitvoert, kunnen we dit nu met een computer en een programmeertaal zoals Python en R in een paar regels doen. Onthoud dat de eigenvectoren die in Python en R worden berekend, genormaliseerd zijn (in vergelijking met symbolische programmeertalen of pakketten, zoals SymPy in Python).
Eigendecompositie in Python
Om eigendecompositie in Python uit te voeren, moet de module NumPy geïnstalleerd en in de omgeving geïmporteerd zijn. De volgende code laat zien hoe je eigendecompositie uitvoert in Python voor de vierkante niet-symmetrische matrix A:
import numpy as np
A = np.array([[6,8],[2,12]])
eigVals, eigVecs = np.linalg.eig(A)print(eigVals)print(eigVecs)Mogelijk gemaakt door
# Reconstruct the original matrix A
D = np.diag(eigVals)
A_reconstructed = eigVecs @ D @ np.linalg.inv(eigVecs)print(A_reconstructed)Mogelijk gemaakt door
Eigendecompositie in R kan worden uitgevoerd met de ingebouwde functie eigen() en er is dus geen pakket nodig om de eigendecompositie van kleine matrices uit te voeren. De volgende code in R voert eigendecompositie uit op matrix A (R sorteert de eigenwaarden in aflopende volgorde, dus de volgorde van eigenvectoren wijkt af van die van de Python NumPy-output):
A <- matrix(c(6,8,2,12),2,2, byrow =TRUE)
print(A)
eDecomp <- eigen(A)
eigValues <- eDecomp$values
eigVectors <- eDecomp$vectors
print(eigValues)
print(eigVectors)Mogelijk gemaakt door
Eigendecompositie vs. singular value decomposition (SVD)
Eigendecompositie en singular value decomposition (SVD) zijn twee belangrijke methoden van matrixfactorisatie die worden gebruikt in machine learning en wetenschappelijk rekenen. Hoewel beide methoden een matrix ontbinden in drie matrices, zijn er enkele verschillen:
Eigendecompositie is alleen van toepassing op vierkante matrices, terwijl SVD kan worden toegepast op zowel vierkante als rechthoekige matrices.
Bij SVD bevatten de resulterende matrices singuliere waarden, terwijl die bij eigendecompositie eigenwaarden bevatten.
Omdat SVD niet-vierkante matrices aankan, heeft het bredere toepassingsmogelijkheden dan eigendecompositie.
Conclusie
In dit korte artikel over lineaire algebra hebben we geleerd wat eigendecompositie is, hoe je het met pen en papier uitvoert en hoe je het berekent met Python en R. We hebben gezien hoe eigendecompositie wordt gebruikt in machine learning-algoritmen zoals PCA.
Als je sterk geïnteresseerd bent om data-analist of data scientist te worden, raad ik je sterk aan om onze cursus Linear Algebra for Data Science in R te volgen, zodat je een stevige basis hebt in toegepaste wiskunde en programmeren. Schrijf je ook in voor onze volledige Machine Learning Scientist in Python carrièretrack om supervised, unsupervised en deep learning te verkennen.
Mijn opleiding is in wiskunde en statistiek. Ik heb uitgebreide ervaring met statistische modellering en toepassingen van machine learning. Daarnaast doe ik onderzoek naar de wiskunde achter ML.
Eigendecompositie: veelgestelde vragen
Wat is eigendecompositie?⌄
Eigendecompositie is het proces waarbij een vierkante matrix wordt ontbonden in zijn eigenwaarden en eigenvectoren.
Wanneer is eigendecompositie mogelijk?⌄
Eigendecompositie is alleen mogelijk voor vierkante matrices. Niet alle vierkante matrices kunnen echter op deze manier worden ontbonden. Een matrix moet diagonaliseerbaar zijn, wat doorgaans betekent dat er een volledige set lineair onafhankelijke eigenvectoren nodig is. Voor matrices die niet aan dit criterium voldoen (zoals niet-diagonaliseerbare of defecte matrices) is eigendecompositie in de gebruikelijke zin niet mogelijk.
Bewerkingen op matrices vormen de kern van berekeningen in machine learning, statistische analyse en wetenschappelijk rekenen. Zo vereisen veel statistische operaties matrixinversie, diagonalizatie en exponentiatie. Dergelijke bewerkingen zijn rekenintensief, maar er zijn methoden om een matrix op te splitsen in een kleinere set matrices en zo de rekenefficiëntie te verhogen. Deze bewerkingen staan in het algemeen bekend als matrixfactorisatie en hebben, afhankelijk van de aard van de verkregen kleinere matrices, specifieke namen.
Eigendecompositie is een methode van matrixfactorisatie waarbij eigenwaarden en eigenvectoren de elementen van die matrices vormen. Inzicht in eigendecompositie geeft machine learning- en data science-engineers een wiskundige basis om methoden als dimensiereductie en matrixbenadering te begrijpen. Nadat je dit artikel hebt gelezen, volg de cursus Linear Algebra for Data Science in R om de centrale wiskundige onderwerpen te leren die aan data science ten grondslag liggen.
Wat is eigendecompositie?
Eigendecompositie is een methode van matrixfactorisatie waarbij een vierkante matrix wordt ontbonden (gedecomponeerd) in drie multiplicatieve matrices. Zo’n factorisatie heet eigendecompositie omdat de elementen van de matrices eigenwaarden en eigenvectoren van de oorspronkelijke vierkante matrix zijn. Wiskundig kan een vierkante matrix A worden ontbonden in drie matrices zodanig dat:
waarbij P de matrix is van de eigenvectoren van A, D een diagonale matrix is waarvan de niet-nul elementen de geordende eigenwaarden van de matrix zijn, en P-1 de inverse is van de matrix P.
De wiskunde achter eigendecompositie
Ik laat aan de hand van een voorbeeld de wiskundige stappen zien om de eigendecompositie van een vierkante matrix analytisch af te leiden. Onze voorbeeldmatrix is de 2x2 vierkante matrix A. Als je vastloopt bij de technieken voor het combineren van matrices, volg dan vooral onze cursus Linear Algebra for Data Science in R zodat je je prettig voelt bij hoe matrixvermenigvuldiging werkt.
Om eigendecompositie uit te voeren op matrix A, moeten we de eigenwaarden en de bijbehorende eigenvectoren van deze vierkante matrix afleiden. We kunnen het karakteristieke polynoom van de matrix gebruiken om de eigenwaarden en eigenvectoren van deze matrix te berekenen. Als je met dit onderdeel niet vertrouwd bent, lees dan eerst Characteristic Equation: Everything You Need to Know for Data Science.
Volgens de definitie van een karakteristiek polynoom geldt nu:
Het karakteristieke polynoom voor onze matrix A is dan pA(λ) = λ2 - 18λ + 56. We kunnen de wortels van dit polynoom vinden door het gelijk te stellen aan nul om de eigenwaarden af te leiden:
De eigenwaarden zijn dus λ1 = 14 en λ1 = 4. Uit de eigenwaarden kunnen we de eigenvectoren van een matrix verkrijgen met (A - λI)X = 0 voor elke unieke eigenwaarde:
Voor λ1 = 14 vullen we 14 in en lossen we het homogene stelsel vergelijkingen op:
Dit levert een eendimensionale (d.w.z. één basisvector) eigenruimte op. We voeren hetzelfde proces uit voor λ1 = 4 en krijgen:
Nu we de eigenwaarden en de eigenvectoren van de matrix A hebben, kunnen we de eigendecompositie van A als volgt opschrijven:
Waarin we P hebben geconstrueerd door de twee eigenvectoren te bundelen (naast elkaar te plaatsen) en we de eigenwaarden (in aflopende volgorde) op de diagonaal van de matrix D hebben geplaatst.
Natuurlijk kunnen we eigendecompositie uitvoeren met een computersysteem en een programmeertaal zoals Python of R. Denk eraan dat Python en R genormaliseerde (op een 0-1-schaal) eigenvectoren kunnen produceren (d.w.z. orthonormale basis). Dit is belangrijk om te onthouden wanneer je probeert de matrix A te reconstrueren uit PDP-1 voor verificatiedoeleinden.
Toepassingen van eigendecompositie in data science
Eigendecompositie speelt een belangrijke rol in machine learning en statistiek. In machine learning wordt eigendecompositie gebruikt voor dimensiereductiemethoden, zoals PCA. Bij PCA zoeken we naar nieuwe dimensies (richtingen) voor de oorspronkelijke hoogdimensionale coördinaten die maximale informatie behouden. De eigendecompositie van de matrix levert de eigenwaarden op, en de eigenvectoren met de hoogste eigenwaarden behouden meer informatie en worden daarom aangewezen als de hoofdcomponenten van de data.
Eigendecompositie uitvoeren in Python en R
Nu we hebben geleerd hoe je eigendecompositie met pen en papier uitvoert, kunnen we dit nu met een computer en een programmeertaal zoals Python en R in een paar regels doen. Onthoud dat de eigenvectoren die in Python en R worden berekend, genormaliseerd zijn (in vergelijking met symbolische programmeertalen of pakketten, zoals SymPy in Python).
Eigendecompositie in Python
Om eigendecompositie in Python uit te voeren, moet de module NumPy geïnstalleerd en in de omgeving geïmporteerd zijn. De volgende code laat zien hoe je eigendecompositie uitvoert in Python voor de vierkante niet-symmetrische matrix A:
Eigendecompositie in R
Eigendecompositie in R kan worden uitgevoerd met de ingebouwde functie
eigen()en er is dus geen pakket nodig om de eigendecompositie van kleine matrices uit te voeren. De volgende code in R voert eigendecompositie uit op matrix A (R sorteert de eigenwaarden in aflopende volgorde, dus de volgorde van eigenvectoren wijkt af van die van de Python NumPy-output):Eigendecompositie vs. singular value decomposition (SVD)
Eigendecompositie en singular value decomposition (SVD) zijn twee belangrijke methoden van matrixfactorisatie die worden gebruikt in machine learning en wetenschappelijk rekenen. Hoewel beide methoden een matrix ontbinden in drie matrices, zijn er enkele verschillen:
Conclusie
In dit korte artikel over lineaire algebra hebben we geleerd wat eigendecompositie is, hoe je het met pen en papier uitvoert en hoe je het berekent met Python en R. We hebben gezien hoe eigendecompositie wordt gebruikt in machine learning-algoritmen zoals PCA.
Als je sterk geïnteresseerd bent om data-analist of data scientist te worden, raad ik je sterk aan om onze cursus Linear Algebra for Data Science in R te volgen, zodat je een stevige basis hebt in toegepaste wiskunde en programmeren. Schrijf je ook in voor onze volledige Machine Learning Scientist in Python carrièretrack om supervised, unsupervised en deep learning te verkennen.