syftet med detta inlägg är att ge en fullständig och förenklad förklaring av huvudkomponentanalys, och speciellt för att svara på hur det fungerar Steg för steg, så att alla kan förstå det och använda det, utan att nödvändigtvis ha en stark matematisk bakgrund.
PCA är faktiskt en allmänt täckt metod på webben, och det finns några bra artiklar om det, men bara några av dem går rakt på sak och förklara hur det fungerar utan att dyka för mycket i de tekniska och ”varför” av saker., Det är anledningen till att jag bestämde mig för att göra mitt eget inlägg för att presentera det på ett förenklat sätt.
innan du kommer till förklaringen ger det här inlägget logiska förklaringar av vad PCA gör i varje steg och förenklar de matematiska begreppen bakom det, som standardisering, kovarians, egenvektorer och egenvärden utan att fokusera på hur man beräknar dem.
Vad är huvudkomponentanalys?,
Principal Component Analysis, eller PCA, är en dimensionsreduceringsmetod som ofta används för att minska dimensionen av stora datamängder, genom att omvandla en stor uppsättning variabler till en mindre som fortfarande innehåller det mesta av informationen i den stora uppsättningen.
att minska antalet variabler i en datauppsättning kommer naturligt på bekostnad av noggrannhet, men tricket i dimensionsreducering är att handla lite noggrannhet för enkelhet., Eftersom mindre datamängder är lättare att utforska och visualisera och göra analysera data mycket enklare och snabbare för maskininlärningsalgoritmer utan främmande variabler att bearbeta.
för att sammanfatta är tanken på PCA enkel-minska antalet variabler i en datauppsättning, samtidigt som så mycket information som möjligt bevaras.
steg för steg förklaring av PCA
Steg 1: standardisering
syftet med detta steg är att standardisera intervallet för de kontinuerliga initiala variablerna så att var och en av dem bidrar lika till analysen.,
Mer specifikt är anledningen till att det är kritiskt att utföra standardisering före PCA, att den senare är ganska känslig angående varianterna av de ursprungliga variablerna. Det vill säga, om det finns stora skillnader mellan de inledande variablerna, kommer dessa variabler med större intervall att dominera över de med små intervall (till exempel kommer en variabel som varierar mellan 0 och 100 att dominera över en variabel som sträcker sig mellan 0 och 1), vilket leder till förspända resultat. Så, att omvandla data till jämförbara skalor kan förhindra detta problem.,
matematiskt kan detta göras genom att subtrahera medelvärdet och dividera med standardavvikelsen för varje värde för varje variabel.
När standardiseringen är klar kommer alla variabler att omvandlas till samma skala.
steg 2: Beräkning av Kovariansmatris
syftet med detta steg är att förstå hur variablerna i indatauppsättningen varierar från medelvärdet med avseende på varandra, eller med andra ord, för att se om det finns något samband mellan dem., Eftersom variabler ibland är mycket korrelerade på ett sådant sätt att de innehåller överflödig information. Så, för att identifiera dessa korrelationer, beräknar vi kovariansmatrisen.
kovariansmatrisen är en p × p symmetrisk matris (där p är antalet dimensioner) som har som poster kovarianserna associerade med alla möjliga par av de ursprungliga variablerna., Till exempel, för en 3-dimensionell datamängd med 3 variabler x, y och z, är kovariansmatrisen en 3×3-matris av detta från:
eftersom kovariansen av en variabel med sig själv är dess varians (cov(a, a)=var(A)), i huvuddiagonalen (övre vänstra till nedre högra) har vi faktiskt varianterna för varje initial variabel., Och eftersom kovariansen är kommutativ(Cov(a,b)=Cov (b,A)), är posterna i kovariansmatrisen symmetriska med avseende på huvuddiagonalen, vilket innebär att de övre och nedre triangulära delarna är lika.
vad berättar de kovarianser som vi har som poster i matrisen om korrelationen mellan variablerna?,
det är faktiskt tecknet på kovariansen som betyder något:
- Om positivt då : de två variablerna ökar eller minskar tillsammans (korrelerade)
- Om negativt då : en ökar när den andra minskar (omvänt korrelerade)
nu, att vi vet att kovariansmatrisen inte är mer än en tabell som sammanfattar korrelationen mellan alla möjliga par av variabler, låt oss gå vidare till nästa steg.,
steg 3: Beräkna egenvektorer och egenvärden i kovariansmatrisen för att identifiera huvudkomponenterna
egenvektorer och egenvärden är de linjära algebrakoncept som vi behöver beräkna från kovariansmatrisen för att bestämma huvudkomponenterna i data. Innan vi kommer till förklaringen av dessa begrepp, låt oss först förstå vad menar vi med huvudkomponenter.
huvudkomponenter är nya variabler som är konstruerade som linjära kombinationer eller blandningar av de ursprungliga variablerna., Dessa kombinationer görs på ett sådant sätt att de nya variablerna (dvs. huvudkomponenter) är okorrelerade och det mesta av informationen inom de ursprungliga variablerna pressas eller komprimeras till de första komponenterna. Så tanken är 10-dimensionell data ger dig 10 huvudkomponenter, men PCA försöker sätta maximal möjlig information i den första komponenten, sedan maximal återstående information i den andra och så vidare, tills du har något som visas i scree-tomten nedan.,
organisera information i huvudkomponenter på detta sätt, gör att du kan minska dimensionalitet utan att förlora mycket information, och detta genom att kassera komponenterna med låg information och överväga de återstående komponenterna som dina nya variabler.,
en viktig sak att inse här är att de viktigaste komponenterna är mindre tolkbara och inte har någon verklig betydelse eftersom de är konstruerade som linjära kombinationer av de ursprungliga variablerna.
geometriskt sett representerar huvudkomponenterna riktningarna för de data som förklarar en maximal varians, det vill säga de linjer som fångar mest information om data., Förhållandet mellan varians och information här är att ju större variansen som bärs av en linje desto större är spridningen av datapunkterna längs den och ju större spridningen längs en linje desto mer information Den har. För att uttrycka allt detta enkelt, tänk bara på huvudkomponenter som nya axlar som ger den bästa vinkeln att se och utvärdera data, så att skillnaderna mellan observationerna är bättre synliga.
registrera dig gratis för att få fler datavetenskapliga berättelser som detta.,
hur PCA konstruerar huvudkomponenterna
eftersom det finns så många huvudkomponenter som det finns variabler i data, konstrueras huvudkomponenterna på ett sådant sätt att den första huvudkomponenten står för största möjliga varians i datamängden. Låt oss till exempel anta att scatter-plottet i vår datauppsättning är som visas nedan, kan vi gissa den första huvudkomponenten ?, Ja, det är ungefär den linje som matchar de lila märkena eftersom det går igenom ursprunget och det är den linje där projiceringen av punkterna (röda prickar) är mest spridd ut. Eller matematiskt sett är det linjen som maximerar variansen (genomsnittet av de kvadrerade avstånden från de projicerade punkterna (röda prickar) till ursprunget).
den andra huvudkomponenten beräknas på samma sätt, med villkoret att den är okorrelerad med (dvs. vinkelrätt mot) den första huvudkomponenten och att den står för nästa högsta varians.,
detta fortsätter tills totalt p-huvudkomponenter har beräknats, vilket motsvarar det ursprungliga antalet variabler.
nu när vi förstod vad vi menar med huvudkomponenter, låt oss gå tillbaka till egenvektorer och egenvärden. Vad du först behöver veta om dem är att de alltid kommer i par, så att varje egenvektor har en egenvärde. Och deras antal är lika med antalet dimensioner av data. Till exempel, för en 3-dimensionell datauppsättning finns det 3 variabler, därför finns det 3 egenvektorer med 3 motsvarande egenvärden.,
utan ytterligare ado är det egenvektorer och egenvärden som ligger bakom all magi som förklaras ovan, eftersom egenvektorerna i Kovariansmatrisen faktiskt är riktningarna för axlarna där det finns mest varians(mest information) och att vi kallar huvudkomponenter. Och egenvärden är helt enkelt de koefficienter som är kopplade till egenvektorer, vilket ger den mängd varians som bärs i varje huvudkomponent.
genom att rangordna dina egenvektorer i ordning efter deras egenvärden, högst till lägsta, får du huvudkomponenterna i storleksordning av betydelse.,
exempel:
låt oss anta att vår datamängd är 2-dimensionell med 2 variabler x,y och att egenvektorerna och egenvärdena i kovariansmatrisen är följande:
om vi rangordnar egenvärdena i fallande ordning får vi λ1>λ2, vilket innebär att den totala datamängden är 2-dimensionell med 2 variabler x, y och att egenvektorerna och egenvärden i kovariansmatrisen är följande:
eigenvector som motsvarar den första huvudkomponenten (PC1) är V1 och den som motsvarar den andra komponenten (PC2) isv2.,
Efter att ha huvudkomponenterna, för att beräkna den procentuella variansen (information) som redovisas av varje komponent, delar vi egenvärdet för varje komponent med summan av egenvärden. Om vi tillämpar detta på exemplet ovan finner vi att PC1 och PC2 bär respektive 96% och 4% av variansen av data.
steg 4: Funktionsvektor
som vi såg i föregående steg, beräknar egenvektorerna och beställer dem genom sina egenvärden i fallande ordning, tillåter oss att hitta huvudkomponenterna i storleksordning av betydelse., I det här steget, vad vi gör är, att välja om att hålla alla dessa komponenter eller kassera de av mindre betydelse (av låga egenvärden) och bilda med de återstående en matris av vektorer som vi kallar Funktionsvektor.
så är funktionsvektorn helt enkelt en matris som har som kolumner eigenvektorerna för de komponenter som vi bestämmer oss för att behålla. Detta gör det till det första steget mot dimensionsreducering, för om vi väljer att bara behålla egenvektorer (komponenter) ur n, kommer den slutliga datamängden endast att ha p-dimensioner.,
exempel:
Om du fortsätter med exemplet från föregående steg kan vi antingen bilda en funktionsvektor med båda egenvektorerna v1 och v2:
eller kassera egenvektorn v2, som är den av mindre betydelse, och bilda en funktionsvektor med endast v1:
kassera eigenvector v2 kommer att minska dimensionaliteten med 1, och kommer följaktligen att orsaka förlust av information i den slutliga datamängden., Men med tanke på att v2 Bar endast 4% av informationen, kommer förlusten att vara därför inte viktigt och vi kommer fortfarande att ha 96% av den information som bärs av v1.
så, som vi såg i exemplet, är det upp till dig att välja om du vill behålla alla komponenter eller kassera de av mindre betydelse, beroende på vad du letar efter. För om du bara vill beskriva dina data i termer av nya variabler (huvudkomponenter) som är okorrelerade utan att försöka minska dimensionen, lämnar ut mindre signifikanta komponenter inte behövs.,
sista steget: omarbeta Data längs huvudaxlarna
i föregående steg, förutom standardisering, gör du inga ändringar i data, du väljer bara huvudkomponenterna och bildar funktionsvektorn, men inmatningsdatauppsättningen förblir alltid när det gäller de ursprungliga axlarna (dvs. när det gäller de ursprungliga variablerna).,
i detta steg, som är den sista, är syftet att använda funktionsvektorn som bildas med hjälp av egenvektorerna i kovariansmatrisen, för att omorientera data från de ursprungliga axlarna till de som representeras av huvudkomponenterna (därav namnet Principal Components Analysis). Detta kan göras genom att multiplicera transponeringen av den ursprungliga datauppsättningen med transponeringen av funktionsvektorn.
* * *
Zakaria Jaadi är en Dataforskare och maskininlärningsingenjör. Kolla in mer av hans innehåll om datavetenskap ämnen på Medium.
Leave a Reply