Het doel van dit artikel is een volledige en vereenvoudigde uitleg van de Hoofdcomponentanalyse te geven, en in het bijzonder om stap voor stap te beantwoorden hoe het werkt, zodat iedereen het kan begrijpen en er gebruik van kan maken, zonder noodzakelijkerwijs een sterke wiskundige achtergrond te hebben.
PCA is eigenlijk een wijdverbreide methode op het web, en er zijn een aantal geweldige artikelen over, maar slechts enkele van hen gaan direct naar het punt en leggen uit hoe het werkt zonder te duiken te veel in de technische details en het ‘waarom’ van dingen., Dat is de reden waarom ik besloot om mijn eigen post te maken om het te presenteren op een vereenvoudigde manier.
voordat u bij de uitleg komt, geeft dit bericht logische verklaringen van wat PCA doet in elke stap en vereenvoudigt het de wiskundige concepten erachter, zoals standaardisatie, covariantie, eigenvectoren en eigenwaarden zonder zich te concentreren op hoe ze te berekenen.
Wat Is analyse van hoofdcomponenten?,
Principal Component Analysis, of PCA, is een dimensionaliteitsreductiemethode die vaak wordt gebruikt om de dimensionaliteit van grote datasets te verminderen, door een grote verzameling variabelen om te zetten in een kleinere die nog steeds de meeste informatie in de grote verzameling bevat.
Het verminderen van het aantal variabelen van een gegevensverzameling gaat natuurlijk ten koste van de nauwkeurigheid, maar de truc bij dimensionaliteitsreductie is om een beetje nauwkeurigheid te ruilen voor eenvoud., Omdat kleinere datasets gemakkelijker te verkennen en visualiseren zijn en het analyseren van gegevens veel gemakkelijker en sneller maken voor machine learning-algoritmen zonder externe variabelen te verwerken.
kortom, het idee van PCA is eenvoudig-verminder het aantal variabelen van een gegevensverzameling, met behoud van zoveel mogelijk informatie.
stap voor stap uitleg van PCA
Stap 1: standaardisatie
Het doel van deze stap is het bereik van de continue initiële variabelen te standaardiseren, zodat elk van hen in gelijke mate bijdraagt aan de analyse.,
meer in het bijzonder, de reden waarom het essentieel is om standaardisatie uit te voeren voorafgaand aan PCA, is dat deze laatste vrij gevoelig is wat betreft de varianties van de initiële variabelen. Dat wil zeggen, als er grote verschillen zijn tussen de bereiken van initiële variabelen, zullen die variabelen met grotere bereiken domineren over die met kleine bereiken (bijvoorbeeld, een variabele die varieert tussen 0 en 100 zal domineren over een variabele die varieert tussen 0 en 1), Wat zal leiden tot bevooroordeelde resultaten. Het omzetten van de gegevens naar vergelijkbare schalen kan dit probleem voorkomen.,
wiskundig kan dit worden gedaan door het gemiddelde af te trekken en te delen door de standaardafwijking voor elke waarde van elke variabele.
zodra de standaardisatie is voltooid, zullen alle variabelen op dezelfde schaal worden getransformeerd.
Stap 2: covariantiematrixberekening
Het doel van deze stap is om te begrijpen hoe de variabelen van de inputgegevensreeks verschillen van het gemiddelde ten opzichte van elkaar, of met andere woorden, om te zien of er een relatie tussen hen is., Omdat variabelen soms zo sterk gecorreleerd zijn dat ze overbodige informatie bevatten. Dus, om deze correlaties te identificeren, berekenen we de covariantie matrix.
de covariantiematrix is een p × p symmetrische matrix (waarbij p het aantal dimensies is) die de covarianties heeft die geassocieerd zijn met alle mogelijke paren van de initiële variabelen., Bijvoorbeeld, voor een 3-dimensionale gegevensverzameling met 3 variabelen x, y en z, is de covariantiematrix een 3×3 matrix hiervan uit:
sinds de covariantie van een variabele met zichzelf is zijn variantie (COV(a, a)=var(A)), in de hoofddiagonaal (linksboven naar rechtsonder) hebben we eigenlijk de varianties van elke initiële variabele., En omdat de covariantie commutatief is(Cov (A, b)=Cov(b,a)), zijn de vermeldingen van de covariantiematrix symmetrisch ten opzichte van de hoofddiagonaal, wat betekent dat de bovenste en de onderste driehoekige delen gelijk zijn.
wat vertellen de covarianties die we hebben als ingangen van de matrix ons over de correlaties tussen de variabelen?,
Het is eigenlijk het teken van de covariantie dat telt :
- indien positief dan : de twee variabelen stijgen of dalen samen (gecorreleerd)
- indien negatief dan : de ene neemt toe wanneer de andere afneemt (omgekeerd gecorreleerd)
nu, dat we weten dat de covariantiematrix niet meer is dan een tabel die de correlaties tussen alle mogelijke paren van variabelen samenvat, laten we naar de volgende stap gaan.,
Stap 3: Bereken de eigenvectoren en eigenwaarden van de covariantiematrix om de belangrijkste componenten te identificeren
eigenvectoren en eigenwaarden zijn de lineaire algebraconcepten die we uit de covariantiematrix moeten berekenen om de belangrijkste componenten van de gegevens te bepalen. Voordat we tot de uitleg van deze concepten komen, laten we eerst begrijpen wat we bedoelen met hoofdcomponenten.
hoofdbestanddelen zijn nieuwe variabelen die geconstrueerd worden als lineaire combinaties of mengsels van de initiële variabelen., Deze combinaties worden zodanig uitgevoerd dat de nieuwe variabelen (d.w.z. hoofdcomponenten) niet gecorreleerd zijn en de meeste informatie binnen de initiële variabelen in de eerste componenten wordt geperst of gecomprimeerd. Dus, het idee is dat 10-dimensionale gegevens je 10 hoofdcomponenten geven, maar PCA probeert maximaal mogelijke informatie in de eerste component te plaatsen, dan maximaal resterende informatie in de tweede enzovoort, totdat er iets is zoals getoond in de scree plot hieronder.,
het organiseren van informatie in hoofdcomponenten op deze manier kunt u dimensionaliteit verminderen zonder veel informatie te verliezen, en dit door de componenten met weinig informatie weg te gooien en de resterende componenten te overwegen als je nieuwe variabelen.,
een belangrijk ding om te beseffen is dat de belangrijkste componenten minder interpreteerbaar zijn en geen echte betekenis hebben omdat ze geconstrueerd zijn als lineaire combinaties van de initiële variabelen.
Geometrisch gesproken vertegenwoordigen de belangrijkste componenten de richtingen van de gegevens die een maximale variantie verklaren, dat wil zeggen de lijnen die de meeste informatie van de gegevens vastleggen., De relatie tussen variantie en informatie hier, is dat, hoe groter de variantie gedragen door een lijn, hoe groter de verspreiding van de data punten langs het, en hoe groter de verspreiding langs een lijn, hoe meer informatie het heeft. Om dit alles simpel te zeggen, denk gewoon aan de belangrijkste componenten als nieuwe assen die de beste hoek bieden om de gegevens te zien en te evalueren, zodat de verschillen tussen de waarnemingen beter zichtbaar zijn.
Meld u gratis aan om meer data science verhalen zoals deze te krijgen.,
hoe PCA de hoofdcomponenten construeert
aangezien er evenveel hoofdcomponenten zijn als er variabelen in de gegevens zijn, worden de hoofdcomponenten zo geconstrueerd dat de eerste hoofdcomponent de grootst mogelijke variantie in de gegevensverzameling voor zijn rekening neemt. Bijvoorbeeld, laten we aannemen dat de scatter plot van onze dataset is zoals hieronder getoond, kunnen we raden de eerste hoofdcomponent ?, Ja, Het is ongeveer de lijn die overeenkomt met de paarse tekens omdat het door de oorsprong gaat en het is de lijn waarin de projectie van de punten (rode stippen) het meest verspreid is. Of wiskundig gezien is het de lijn die de variantie maximaliseert (het gemiddelde van de kwadraatafstanden van de geprojecteerde punten (rode stippen) tot de oorsprong).
de tweede hoofdcomponent wordt op dezelfde manier berekend, onder de voorwaarde dat het niet gecorreleerd is met (d.w.z. loodrecht op) de eerste hoofdcomponent en dat het de op een na hoogste variantie vertegenwoordigt.,
Dit gaat door totdat een totaal van P belangrijkste componenten is berekend, gelijk aan het oorspronkelijke aantal variabelen.
nu we begrepen wat we bedoelen met hoofdcomponenten, gaan we terug naar eigenvectoren en eigenwaarden. Wat je eerst moet weten over hen is dat ze altijd in paren komen, zodat elke eigenvector een eigenwaarde heeft. En hun aantal is gelijk aan het aantal dimensies van de gegevens. Bijvoorbeeld, voor een 3-dimensionale dataset zijn er 3 variabelen, dus zijn er 3 eigenvectoren met 3 overeenkomstige eigenwaarden.,
zonder verder oponthoud zijn het eigenvectoren en eigenwaarden die achter alle hierboven beschreven magie zitten, omdat de eigenvectoren van de covariantiematrix eigenlijk de richtingen zijn van de assen waar de meeste variantie(de meeste informatie) is en die we hoofdcomponenten noemen. En eigenwaarden zijn gewoon de coëfficiënten verbonden aan eigenvectoren, die de hoeveelheid variantie in elke hoofdcomponent geven.
door uw eigenvectors te rangschikken in volgorde van hun eigenwaarden, van hoog naar laag, krijgt u de belangrijkste componenten in volgorde van betekenis.,
voorbeeld:
stel dat onze gegevensverzameling 2-dimensionaal is met 2 variabelen x,y en dat de eigenvectoren en eigenwaarden van de covariantiematrix als volgt zijn:
als we de eigenwaarden in aflopende volgorde rangschikken, krijgen we λ1>λ2, wat betekent dat de eigenvector die overeenkomt met de eerste hoofdcomponent (PC1) is v1 en degene die correspondeert met de tweede component (pc2) isv2.,
om het variantiepercentage (informatie) van elke component te berekenen, delen we de eigenwaarde van elke component door de som van eigenwaarden. Als we dit op het bovenstaande voorbeeld toepassen, vinden we dat PC1 en PC2 respectievelijk 96% en 4% van de variantie van de gegevens bevatten.
Stap 4: Feature Vector
zoals we in de vorige stap zagen, kunnen we de eigenvectoren berekenen en ordenen op basis van hun eigenwaarden in aflopende volgorde, zodat we de belangrijkste componenten kunnen vinden in volgorde van betekenis., In deze stap, wat we doen is, om te kiezen of al deze componenten te behouden of te verwerpen die van mindere betekenis (van lage eigenwaarden), en vormen met de resterende een matrix van vectoren die we kenmerk vector noemen.
dus, de feature vector is gewoon een matrix die als kolommen de eigenvectoren heeft van de componenten die we besluiten te behouden. Dit maakt het de eerste stap naar dimensionaliteitsreductie, want als we ervoor kiezen om alleen p eigenvectoren (componenten) uit n te houden, zal de uiteindelijke dataset alleen p dimensies hebben.,
voorbeeld:
doorgaan met het voorbeeld uit de vorige stap, kunnen we ofwel een feature vector vormen met zowel de eigenvectoren v1 als v2:
of de eigenvector v2 verwerpen, die de enige is van mindere betekenis, en een feature vector vormen met alleen v1:
het weggooien van de eigenvector V2 zal de dimensionaliteit verminderen met 1, en zal bijgevolg leiden tot verlies van informatie in de uiteindelijke dataset., Maar gezien het feit dat v2 slechts 4% van de informatie droeg, zal het verlies daarom niet belangrijk zijn en zullen we nog steeds 96% van de informatie hebben die door v1 wordt gedragen.
dus, zoals we in het voorbeeld zagen, is het aan u om te kiezen of u alle componenten wilt behouden of de componenten van mindere betekenis wilt weggooien, afhankelijk van wat u zoekt. Want als je alleen maar je gegevens wilt beschrijven in termen van nieuwe variabelen (hoofdcomponenten) die niet gecorreleerd zijn zonder te proberen dimensionaliteit te verminderen, is het niet nodig om kleinere significante componenten weg te laten.,
laatste stap: herschik de gegevens langs de belangrijkste componenten Assen
in de vorige stappen, behalve standaardisatie, brengt u geen wijzigingen aan op de gegevens, u selecteert alleen de belangrijkste componenten en vormt de feature vector, maar de invoergegevensreeks blijft altijd in termen van de oorspronkelijke Assen (d.w.z. in termen van de initiële variabelen).,
in deze stap, die de laatste is, is het doel om de featurevector te gebruiken die is gevormd met behulp van de eigenvectoren van de covariantiematrix, om de gegevens van de oorspronkelijke Assen te heroriënteren naar die vertegenwoordigd door de belangrijkste componenten (vandaar de naam Principal Components Analysis). Dit kan worden gedaan door de transponering van de oorspronkelijke gegevensset te vermenigvuldigen met de transponering van de feature vector.
* * *
Zakaria Jaadi is een data scientist en Machine learning engineer. Bekijk meer van zijn content over Data Science onderwerpen op Medium.
Leave a Reply