Tweet Share Share

Senast uppdaterad Augusti 9, 2019

Matrisnedbrytningar är ett användbart verktyg för att reducera en matris till sina beståndsdelar för att förenkla en rad mer komplexa operationer.

kanske är den mest använda typen av matrisnedbrytning egenkompositionen som sönderdelar en matris i egenvektorer och egenvärden. Denna nedbrytning spelar också en roll i metoder som används i maskininlärning, såsom i Huvudkomponentanalysmetoden eller PCA.

i denna handledning kommer du att upptäcka egenkomposition, egenvektorer och egenvärden i linjär algebra.

När du har slutfört denna handledning kommer du att veta:

  • vad en egenkomposition är och rollen som egenvektorer och egenvärden.
  • hur man beräknar en egenkomposition i Python med NumPy.
  • hur man bekräftar en vektor är en egenvektor och hur man rekonstruerar en matris från egenvektorer och egenvärden.

kickstarta ditt projekt med min nya bok linjär Algebra för maskininlärning, inklusive steg-för-steg-handledning och Python-källkodsfilerna för alla exempel.

Låt oss komma igång.

skonsam introduktion till Egenkomposition, egenvärden och egenvektorer för maskininlärning
foto av Mathias Appel, vissa rättigheter reserverade.

handledning Översikt

denna handledning är uppdelad i 5 delar; de är:

  1. Egenkomposition av en matris
  2. egenvektorer och egenvärden
  3. beräkning av Egenkomposition
  4. bekräfta en egenvektor och egenvärde
  5. rekonstruera Originalmatrisen

behöver du hjälp med linjär algebra för maskininlärning?

Ta min gratis 7-dagars e-postkraschkurs nu (med provkod).

Klicka för att registrera dig och få en gratis PDF-e-bokversion av kursen.

ladda ner din gratis Mini-kurs

Egenkomposition av en matris

Egenkomposition av en matris är en typ av sönderdelning som innebär att en kvadratmatris sönderdelas i en uppsättning egenvektorer och egenvärden.

en av de mest använda typerna av matrisnedbrytning kallas egendekomposition, där vi sönderdelar en matris i en uppsättning egenvektorer och egenvärden.

— sidan 42, djupt lärande, 2016.

A vector is an eigenvector of a matrix if it satisfies the following equation.

1
A . v = lambda . v

detta kallas egenvärdesekvationen, där A är den överordnade kvadratmatrisen som vi sönderdelar, v är matrisens egenvektor och lambda är små bokstäver och representerar egenvärdet skalär.

eller utan punktnotation.

1
Av = lambdav

A matrix could have one eigenvector and eigenvalue for each dimension of the parent matris. Inte alla fyrkantiga matriser kan sönderdelas i egenvektorer och egenvärden, och vissa kan bara sönderdelas på ett sätt som kräver komplexa tal. Modermatrisen kan visas vara en produkt av egenvektorerna och egenvärdena.

1
A = Q . diag(V) . Q^-1

Or, without the dot notation.

1
A = Qdiag(V)Q^-1

Where Q is a matrix comprised of the eigenvectors, diag(V) is a diagonal matrix består av egenvärdena längs diagonalen (ibland representerade med en huvudstad lambda), och Q^-1 är inversen av matrisen som består av egenvektorerna.

men vi vill ofta sönderdela matriser i deras egenvärden och egenvektorer. Att göra det kan hjälpa oss att analysera vissa egenskaper hos matrisen, mycket som att sönderdela ett heltal i dess främsta faktorer kan hjälpa oss att förstå beteendet hos det heltalet.

— sidan 43, djupt lärande, 2016.

Eigen är inte ett namn, t. ex. metoden är inte uppkallad efter ”Eigen”; eigen (uttalad eye-gan) är ett tyskt ord som betyder ”egen” eller ”medfödd”, som att tillhöra modermatrisen.

en sönderdelningsoperation resulterar inte i en komprimering av matrisen; istället bryter den ner i beståndsdelar för att göra vissa operationer på matrisen enklare att utföra. Liksom andra matrisnedbrytningsmetoder används Egenkomposition som ett element för att förenkla beräkningen av andra mer komplexa matrisoperationer.

nästan alla vektorer ändrar riktning när de multipliceras med A. Vissa exceptionella vektorer x är i samma riktning som Ax. Det är ”egenvektorerna”. Multiplicera en egenvektor med A, och vektoröxan är numret lambda gånger originalet x. egenvärdet lambda berättar om den speciella vektorn x sträcks eller krymps eller vänds eller lämnas oförändrad – när den multipliceras med A.

— sidan 289, introduktion till linjär Algebra, femte upplagan, 2016.

Egenkomposition kan också användas för att beräkna huvudkomponenterna i en matris i Huvudkomponentanalysmetoden eller PCA som kan användas för att minska dimensionen av data i maskininlärning.

egenvektorer och egenvärden

egenvektorer är enhetsvektorer, vilket innebär att deras längd eller storlek är lika med 1,0. De kallas ofta som högervektorer, vilket helt enkelt betyder en kolumnvektor (i motsats till en radvektor eller en vänstervektor). En högervektor är en vektor som vi förstår dem.

egenvärden är koefficienter som appliceras på egenvektorer som ger vektorerna deras längd eller storlek. Till exempel kan en negativ egenvärde vända egenvektorns riktning som en del av att skala den.

en matris som endast har positiva egenvärden kallas en positiv bestämd matris, medan om egenvärdena alla är negativa kallas den en negativ bestämd matris.

sönderdelning av en matris i termer av dess egenvärden och dess egenvektorer ger värdefulla insikter i matrisens egenskaper. Vissa matrisberäkningar, som att beräkna matrisens kraft, blir mycket enklare när vi använder matrisens egenkomposition.

— sida 262, ingen Bullshit Guide till linjär Algebra, 2017

beräkning av Egenkomposition

en egenkomposition beräknas på en kvadratmatris med en effektiv iterativ algoritm, av vilken vi inte kommer att gå in i detaljerna.

ofta hittas en egenvärde först, sedan hittas en egenvektor för att lösa ekvationen som en uppsättning koefficienter.

eigendekompositionen kan beräknas i NumPy med funktionen eig ().

exemplet nedan definierar först en 3-kvadratmatris av 3-kvadrat. Egendekompositionen beräknas på matrisen som returnerar egenvärdena och egenvektorerna.

att köra exemplet skriver först ut den definierade matrisen, följt av egenvärdena och egenvektorerna. Mer specifikt är egenvektorerna höger sida egenvektorer och normaliseras till enhetslängd.

bekräfta en egenvektor och egenvärde

Vi kan bekräfta att en vektor verkligen är en egenvektor av en matris.

vi gör detta genom att multiplicera kandidat egenvektorn med egenvektorn och jämföra resultatet med egenvärdet.

först definierar vi en matris och beräknar sedan egenvärdena och egenvektorerna. Vi kommer sedan att testa om den första vektorn och värdet faktiskt är en egenvärde och egenvektor för matrisen. Vi vet att de är det, men det är en bra övning.

egenvektorerna returneras som en matris med samma dimensioner som modermatrisen, där varje kolumn är en egenvektor, t.ex. den första egenvektorn är vektorer. Egenvärden returneras som en lista, där värdeindex i den returnerade matrisen paras ihop med egenvektorer efter kolumnindex, t.ex. den första egenvärdet vid värden paras ihop med den första egenvektorn vid vektorer.

exemplet multiplicerar den ursprungliga matrisen med den första egenvektorn och jämför den med den första egenvektorn multiplicerad med den första egenvärdet.

kör exemplet skriver ut resultaten av dessa två multiplikationer som visar samma resulterande vektor, som vi förväntar oss.

1
2
3

Reconstruct Original Matrix

We kan vända processen och rekonstruera den ursprungliga matrisen ges endast egenvektorer och egenvärden.

först måste listan över egenvektorer konverteras till en matris, där varje vektor blir en rad. Egenvärdena måste ordnas i en diagonal matris. Funktionen NumPy diag () kan användas för detta.

Därefter måste vi beräkna inversen av egenvektormatrisen, som vi kan uppnå med inv() NumPy-funktionen. Slutligen måste dessa element multipliceras tillsammans med dot () – funktionen.

exemplet beräknar egenvärdena och egenvektorerna igen och använder dem för att rekonstruera den ursprungliga matrisen.

att köra exemplet skriver först ut originalmatrisen, sedan matrisen rekonstruerad från egenvärden och egenvektorer som matchar originalmatrisen.

1
2
3
4
5
6
7
]
]

Extensions

det här avsnittet innehåller några tips för att utöka handledningen som du kanske vill utforska.

  • Skapa 5 exempel med varje operation med dina egna data.
  • implementera varje matrisoperation manuellt för matriser definierade som listor med listor.
  • sök maskininlärningspapper och hitta 1 exempel på varje operation som används.

om du utforskar någon av dessa tillägg, skulle jag gärna veta.

Vidare läsning

det här avsnittet ger mer resurser om ämnet om du vill gå djupare.

böcker

  • Avsnitt 6.1 egenvärden och egenvektorer. Ingen Bullshit Guide Till Linjär Algebra, 2017.
  • Kapitel 6 egenvärden och egenvektorer, introduktion till linjär Algebra, femte upplagan, 2016.
  • avsnitt 2.7 Egenkomposition, djupt lärande, 2016.
  • Kapitel 5 egenvärden, egenvektorer och invarianta delrum, linjär Algebra gjort rätt, tredje upplagan, 2015.
  • föreläsning 24, Egenvärdesproblem, numerisk linjär Algebra, 1997.

API

  • numpy.linalg.EIG () API
  • numpy.diag () API
  • numpy.punkt () API
  • numpy.linalg.inv() API

artiklar

  • egenvärde på Wiktionary
  • egenvärden och egenvektorer
  • egenvärde av en matris
  • egenvärdealgoritm
  • matrisnedbrytning

sammanfattning

i den här handledningen upptäckte du egenkompositionen, egenvektorer och egenvärden i linjär algebra.

specifikt lärde du dig:

  • vad en egenkomposition är och rollen som egenvektorer och egenvärden.
  • hur man beräknar en egenkomposition i Python med NumPy.
  • hur man bekräftar en vektor är en egenvektor och hur man rekonstruerar en matris från egenvektorer och egenvärden.

har du några frågor?
Ställ dina frågor i kommentarerna nedan och jag kommer att göra mitt bästa för att svara.

få grepp om linjär Algebra för maskininlärning!

utveckla en fungerande förstå linjär algebra

…genom att skriva rader kod i python

Upptäck hur i min nya Ebook:
linjär Algebra för maskininlärning

det ger självstudiehandledning om ämnen som:
Vektornormer, matrismultiplikation, tensorer, Egenkomposition, SVD, PCA och mycket mer…

slutligen förstå matematiken i Data

hoppa över akademikerna. Bara Resultat.

se vad som finns inuti

Tweet Dela Dela

Lämna ett svar

Din e-postadress kommer inte publiceras.