Vraag:
Begrijpen van hoofdcomponentanalyse, eigenvectoren en eigenwaarden
claws
2010-09-16 01:05:56 UTC
view on stackexchange narkive permalink

In de patroonherkenningsles van vandaag had mijn professor het over PCA, eigenvectoren en eigenwaarden.

Ik begreep de wiskunde ervan. Als mij wordt gevraagd om eigenwaarden enz. Te vinden, zal ik het correct doen als een machine. Maar ik heb het niet begrepen . Ik snapte het doel er niet van. Ik snapte het niet.

Ik geloof sterk in het volgende citaat:

Je begrijpt iets pas echt als je het aan je grootmoeder kunt uitleggen. - Albert Einstein

Nou, ik kan deze concepten niet uitleggen aan een leek of oma.

  1. Waarom PCA, eigenvectoren & eigenwaarden? Wat was de behoefte voor deze concepten?
  2. Hoe zou je deze aan een leek uitleggen?
Goede vraag. Ik ben het ook eens met de offerte. Ik geloof dat er veel mensen in de statistiek en wiskunde zijn die zeer intelligent zijn en heel diep in hun werk kunnen doordringen, maar niet goed begrijpen waar ze aan werken. Of ze doen het, maar zijn niet in staat het aan anderen uit te leggen. Ik doe mijn uiterste best om hier antwoorden in gewoon Engels te geven en vragen te stellen die plan-Engelse antwoorden eisen.
Dit werd in juli op de Mathematics-site gevraagd, maar niet zo goed en het kreeg niet veel antwoorden (niet verwonderlijk, gezien de verschillende focus daar). http://math.stackexchange.com/questions/1146/intuitive-way-to-understand-principal-component-analysis
Hier is de link naar "Analyzing ecological data" door Alain F. Zuur, Elena N. Ieno, Graham M. Smith, waar het voorbeeld met de overheadprojector en de hand wordt gegeven: http://books.google.de/ books? id = mmPvf-l7xFEC & lpg = PA15 & ots = b_5iizOr3p & dq = Zuur% 20et% 20al% 20in% 20 Analyseren% 20ecologische% 20data & hl = en & pg = PA194 # v = onepage & q & f = false
Een artikel van twee pagina's waarin PCA voor biologen wordt uitgelegd: Ringnér. [Wat is principal component analyse?] (Http://www.nature.com/nbt/journal/v26/n3/full/nbt0308-303.html). Nature Biotechnology 26, 303-304 (2008)
Ik had me een lange demo met een heleboel grafieken en uitleg voorgesteld toen ik [dit] tegenkwam (http://www.youtube.com/watch?v=BfTMmoDFXyE).
Vergelijkbaar met uitleg door Zuur et al in Analyse van ecologische gegevens, waar ze praten over het projecteren van je hand op een overheadprojector. Je blijft je hand draaien zodat de projectie op de muur er ongeveer hetzelfde uitziet als hoe je denkt dat een hand eruit zou moeten zien.
Deze vraag leidde me naar een goed artikel, en hoewel ik denk dat dat een geweldig citaat is, is het niet van Einstein. Dit is een veel voorkomende misattributie, en de meest waarschijnlijke originele quote is waarschijnlijk deze van Ernest Rutherford die zei: "Als je je fysica niet aan een barmeisje kunt uitleggen, is het waarschijnlijk niet erg goede fysica." Allemaal hetzelfde bedankt voor het starten van deze thread.
Alice Calaprice, _De ultieme citaat Einstein_, Princeton U.P. 2011 markeert het citaat hier als een van de vele "Waarschijnlijk niet door Einstein". Zie p.482.
Een [link] (http://stats.stackexchange.com/a/65817/3277) naar een geometrische beschrijving van PCA versus regressie versus canonieke correlatie.
Hier is nog een intuïtieve uitleg voor PCA: [Een inleiding voor een leek tot de analyse van hoofdcomponenten (in 100 seconden)] (http://www.youtube.com/watch?v=BfTMmoDFXyE)
Uitleg waarom pc's variantie maximaliseren en waarom ze orthogonaal zijn: http://stats.stackexchange.com/a/110546/3277.En wat is "variantie" in PCA: http://stats.stackexchange.com/a/22571/3277.
Bekijk deze link: - http://georgemdallas.wordpress.com/2013/10/30/principal-component-analysis-4-dummies-eigenvectors-eigenvalues-and-dimension-reduction/ Geweldige uitleg voor de PCA!
Ik kan mijn grootmoeder niets uitleggen, want ze is dood.Betekent dit dat ik niets begrijp ?!Het is misschien toch leuker om dingen uit te leggen aan een barmeisje ...
Deze korte video geeft een abstract idee over PCA https://www.youtube.com/watch?v=BfTMmoDFXyE
Interessant citaat, gezien het feit dat de moeder van Einstein hem verschillende keren aanspoorde om haar algemene relativiteitstheorie uit te leggen op een manier die zij kon begrijpen (en hij probeerde het een aantal keren, zonder succes).
Ik denk dat PCA een hype is.U kunt de betekenis in gegevens niet vinden, tenzij u de afmetingen van de gegevens al kent voordat u begint.Je raakt waarschijnlijk verwikkeld in de enorme hype van de industriële internetsector met betrekking tot AI en het houdt gewoon geen steek.
28 antwoorden:
#1
+1486
amoeba
2015-03-06 06:30:07 UTC
view on stackexchange narkive permalink

Stel je een groot familiediner voor, waarbij iedereen je naar PCA begint te vragen. Eerst leg je het uit aan je overgrootmoeder; dan naar je grootmoeder; dan naar je moeder; dan naar uw echtgenoot; tot slot, aan uw dochter (die een wiskundige is). Elke keer is de volgende persoon minder een leek. Hier is hoe het gesprek zou kunnen verlopen.

Overgrootmoeder: ik heb gehoord dat je "Pee-See-Ay" studeert. Ik vraag me af wat dat is ...

Jij: Ah, het is gewoon een methode om enkele gegevens samen te vatten. Kijk, we hebben hier wat wijnflessen op tafel staan. We kunnen elke wijn omschrijven aan de hand van zijn kleur, hoe sterk hij is, hoe oud hij is, enzovoort (zie deze zeer mooie visualisatie van wijneigenschappen die hier vandaan ). We kunnen een hele lijst met verschillende kenmerken van elke wijn in onze kelder samenstellen. Maar veel van hen zullen gerelateerde eigenschappen meten en dus overbodig zijn. Dan zouden we elke wijn met minder kenmerken moeten kunnen samenvatten! Dit is wat PCA doet.

Grootmoeder: dit is interessant! Dus dit PCA-ding controleert welke kenmerken overbodig zijn en verwijdert ze?

Jij: Uitstekende vraag, oma! Nee, PCA selecteert sommige kenmerken niet en negeert de andere. In plaats daarvan construeert het enkele nieuwe kenmerken die onze wijnlijst goed blijken samen te vatten. Uiteraard zijn deze nieuwe kenmerken geconstrueerd met behulp van de oude; een nieuw kenmerk kan bijvoorbeeld worden berekend als de leeftijd van de wijn min de zuurgraad van de wijn of een andere combinatie zoals die (we noemen ze lineaire combinaties ).

In feite vindt PCA de best mogelijke kenmerken, degene die de wijnlijst zo goed mogelijk samenvatten (uit alle denkbare lineaire combinaties). Daarom is het zo handig.

Moeder: Hmmm, dit klinkt zeker goed, maar ik weet niet zeker of ik het begrijp. Wat bedoel je eigenlijk als je zegt dat deze nieuwe PCA-kenmerken de lijst met wijnen "samenvatten"?

Jij: ik denk dat ik twee verschillende antwoorden kan geven op deze vraag. Het eerste antwoord is dat u op zoek bent naar enkele wijneigenschappen (kenmerken) die sterk verschillen tussen wijnen. Stel je voor dat je een eigenschap bedenkt die voor de meeste wijnen hetzelfde is. Dit zou niet erg handig zijn, toch? Wijnen zijn heel verschillend, maar door je nieuwe huis zien ze er allemaal hetzelfde uit! Dit zou zeker een slechte samenvatting zijn. In plaats daarvan zoekt PCA naar eigenschappen die zoveel mogelijk variatie tussen wijnen laten zien.

Het tweede antwoord is dat je zoekt naar de eigenschappen waarmee je de oorspronkelijke wijnkenmerken kunt voorspellen of "reconstrueren". Nogmaals, stel je voor dat je een eigenschap bedenkt die geen verband houdt met de oorspronkelijke kenmerken; als u alleen deze nieuwe woning gebruikt, kunt u de oorspronkelijke eigendommen op geen enkele manier reconstrueren! Dit zou, nogmaals, een slechte samenvatting zijn. PCA zoekt dus naar eigenschappen die het mogelijk maken om de oorspronkelijke kenmerken zo goed mogelijk te reconstrueren.

Verrassend genoeg blijkt dat deze twee doelen gelijkwaardig zijn en dus kan PCA twee vliegen in één klap slaan.

Echtgenoot: Maar lieverd, deze twee "doelen" van PCA klinken zo verschillend! Waarom zouden ze gelijkwaardig zijn?

Jij: Hmmm. Misschien moet ik een kleine tekening maken (neemt een servet en begint te krabbelen) . Laten we twee wijnkenmerken kiezen, misschien wijnduisternis en alcoholgehalte - ik weet niet of ze met elkaar in verband staan, maar laten we ons voorstellen dat ze dat wel zijn. Hier is hoe een scatterplot van verschillende wijnen eruit zou kunnen zien:

PCA exemplary data

Elke stip in deze "wijnwolk" toont een bepaalde wijn. U ziet dat de twee eigenschappen ( $ x $ en $ y $ in deze afbeelding) met elkaar in verband staan. Een nieuwe eigenschap kan worden geconstrueerd door een lijn door het midden van deze wijnwolk te trekken en alle punten op deze lijn te projecteren. Deze nieuwe eigenschap wordt gegeven door een lineaire combinatie $ w_1 x + w_2 y $ , waarbij elke regel overeenkomt met enkele specifieke waarden van $ w_1 $ en $ w_2 $ .

Kijk hier nu heel zorgvuldig - hier is hoe deze projecties eruit zien voor verschillende lijnen (rode stippen zijn projecties van de blauwe stippen):

PCA animation: variance and reconstruction error

Zoals ik al eerder zei, zal PCA de "beste" lijn vinden volgens twee verschillende criteria van wat is het beste". Ten eerste moet de variatie van waarden langs deze lijn maximaal zijn. Let op hoe de "spreiding" (we noemen het "variantie") van de rode stippen verandert terwijl de lijn draait; kun je zien wanneer het maximum bereikt? Ten tweede, als we de oorspronkelijke twee kenmerken (positie van een blauwe stip) reconstrueren van de nieuwe (positie van een rode stip), wordt de reconstructiefout gegeven door de lengte van de verbindende rode lijn. Kijk hoe de lengte van deze rode lijnen verandert terwijl de lijn roteert; kun je zien wanneer de totale lengte het minimum bereikt?

Als je enige tijd naar deze animatie staart, zul je merken dat "de maximale variantie" en "de minimale fout" tegelijkertijd worden bereikt, namelijk wanneer de lijn naar de magenta vinkjes wijst die ik aan beide zijden van de wijnwolk heb gemarkeerd. Deze regel komt overeen met de nieuwe wijneigenschap die door PCA zal worden gebouwd.

Overigens staat PCA voor "hoofdcomponentanalyse" en deze nieuwe eigenschap wordt "eerste hoofdcomponent" genoemd. En in plaats van "eigenschap" of "kenmerk" te zeggen, zeggen we meestal "kenmerk" of "variabele".

Dochter: Heel leuk, papa! Ik denk dat ik begrijp waarom de twee doelen hetzelfde resultaat opleveren: het komt in wezen door de stelling van Pythagoras, nietwaar? Hoe dan ook, ik heb gehoord dat PCA op de een of andere manier gerelateerd is aan eigenvectoren en eigenwaarden; waar zijn ze op deze foto?

Jij: Briljante observatie. Wiskundig gezien wordt de spreiding van de rode stippen gemeten als de gemiddelde vierkante afstand van het midden van de wijnwolk tot elke rode stip; zoals u weet, wordt het de variantie genoemd. Aan de andere kant wordt de totale reconstructiefout gemeten als de gemiddelde vierkante lengte van de corresponderende rode lijnen. Maar aangezien de hoek tussen rode lijnen en de zwarte lijn altijd $ 90 ^ \ circ $ is, is de som van deze twee grootheden gelijk aan de gemiddelde kwadraatafstand tussen het midden van de wijnwolk en elke blauwe stip; dit is precies de stelling van Pythagoras. Deze gemiddelde afstand is natuurlijk niet afhankelijk van de oriëntatie van de zwarte lijn, dus hoe hoger de variantie, hoe kleiner de fout (omdat hun som constant is). Dit hand-golvende argument kan nauwkeurig worden gemaakt ( zie hier).

Je kunt je trouwens voorstellen dat de zwarte lijn een stevige staaf is en elke rode lijn een veer . De energie van de veer is evenredig met de lengte in het kwadraat (dit staat in de natuurkunde bekend als de wet van Hooke), dus de staaf zal zichzelf oriënteren om de som van deze vierkante afstanden te minimaliseren. Ik heb een simulatie gemaakt van hoe het eruit zal zien, in aanwezigheid van enige stroperige wrijving:

PCA animation: pendulum

Met betrekking tot eigenvectoren en eigenwaarden. Je weet wat een covariantiematrix is; in mijn voorbeeld is het een $ 2 \ times 2 $ matrix die wordt gegeven door $$ \ begin {pmatrix} 1.07 &0. 63 \\ 0.63 & 0.64 \ end {pmatrix}. $$ Dit betekent dat de variantie van de $ x $ variabele $ 1,07 $ , de variantie van de $ y $ variabele is $ 0,64 $ span>, en de covariantie tussen hen is $ 0,63 $ . Omdat het een vierkante symmetrische matrix is, kan hij diagonaal worden gemaakt door een nieuw orthogonaal coördinatensysteem te kiezen, gegeven door zijn eigenvectoren (dit wordt overigens spectraalstelling genoemd); overeenkomstige eigenwaarden zullen dan op de diagonaal worden geplaatst. In dit nieuwe coördinatensysteem is de covariantiematrix diagonaal en ziet hij er zo uit: $$ \ begin {pmatrix} 1.52 &0 \\ 0 & 0.19 \ end {pmatrix}, $$ span> wat betekent dat de correlatie tussen punten nu nul is. Het wordt duidelijk dat de variantie van elke projectie zal worden gegeven door een gewogen gemiddelde van de eigenwaarden (ik schets hier alleen de intuïtie). Bijgevolg wordt de maximaal mogelijke variantie ( $ 1,52 $ ) bereikt als we simpelweg de projectie op de eerste coördinatenas nemen. Hieruit volgt dat de richting van de eerste hoofdcomponent wordt gegeven door de eerste eigenvector van de covariantiematrix. ( Meer details hier.)

Dit zie je ook op de draaiende figuur: daar is een grijze lijn orthogonaal op de zwarte; samen vormen ze een roterend coördinatenframe. Probeer op te merken wanneer de blauwe stippen niet gecorreleerd raken in dit roterende frame. Het antwoord is nogmaals dat het precies gebeurt wanneer de zwarte lijn naar de magenta vinkjes wijst. Nu kan ik je vertellen hoe ik ze heb gevonden: ze markeren de richting van de eerste eigenvector van de covariantiematrix, die in dit geval gelijk is aan $ (0,81, 0,58) $ span >.


Op populair verzoek heb ik de Matlab-code gedeeld om de bovenstaande animaties te produceren.

+1 Leuk verhaal en illustraties.'... dan naar je moeder;dan naar je vrouw;tot slot, aan je dochter (die een wiskundige is) ... 'Ik zou doorgaan: en na het diner - voor jezelf.En hier kwam je ineens vast te zitten ...
Ik ben helemaal weg van de illustraties die je voor deze antwoorden maakt.
@amoeba - Dit is geweldig!Weet je, ik denk dat het probleem bij het internaliseren van PCA verder gaat dan het begrijpen van de geometrie, de eigenvectoren, de covariantie ... Het gaat erom dat de originele variabelen namen hebben (alcoholgehalte, wijnkleur), maar de transformatie van de gegevens viaPCA resulteert in componenten die naamloos zijn ... Wat doe je met dingen zonder naam ... Zegt u dat de wijnen in uw gegevens bedwelmend rood zijn?Verzin je kwaliteiten ... zo ja, dan mogen we ze niet 'PC1' noemen ... wijnen vragen om een meer poëtische benadering ...
Normaal blader ik gewoon door Cross Validated om dingen te lezen, maar ik heb nooit reden gehad om een account aan te maken ... vooral omdat het soort vragen hier buiten mijn expertise ligt en ik er niet echt een kan beantwoorden.Ik ben meestal alleen op StackOverflow en ik ben nu ongeveer een jaar op het StackExchange-netwerk.Ik heb echter alleen besloten om vandaag een account aan te maken, voornamelijk om uw bericht te verbeteren.Dit is waarschijnlijk de beste uiteenzetting van PCA die ik ooit heb gelezen, en ik heb er veel gelezen.Bedankt voor dit geweldige bericht - de uitstekende verhalen, de graphics en het is zo gemakkelijk te lezen!+1
Briljant, bedankt voor het plaatsen van dit.Mag ik vragen welk programma deze grafieken heeft geproduceerd?
@JohnK, de plots en animaties zijn gedaan in Matlab.Ik ben blij dat je ze leuk vond, bedankt.
Opmerking voor mezelf: mijn antwoord heeft momenteel 100 upvotes, die van JDLong 220 upvotes;als we aannemen dat er een constante groei is, heeft de mijne 100 upvotes / jaar en de zijne 40 upvotes / jaar.Of liever gezegd: 55 / jaar als berekend sinds de 100 upvotes [kreeg een gouden badge] in januari 2014. Dit betekent dat ik de inhaalslag over 2,5 - 3 jaar zal inhalen, tegen het einde van 2018. Even kijken :-)
Opmerking voor mezelf vervolg: Ik moet mijn schatting bijwerken.Een maand later kreeg dit antwoord 18 upvotes versus 5 voor JDLong's.Dit geeft aan dat ik over minder dan een jaar een inhaalslag kan maken.Interessant is dat 5 / maand heel dicht bij mijn bovenstaande schatting van 55 / jaar ligt, maar 18 / maand is meer dan twee keer boven 100 / jaar.Omdat mijn antwoord niet veranderde, lijkt het erop dat het bereiken van de tweede plaats de upvoting heeft versneld (waarschijnlijk vanwege de verhoogde zichtbaarheid).
@amoeba Fantastisch antwoord!Ik heb echter een kleine twijfel;in de laatste regel zei je dat de eigenvector `(0.81,0.58)` is.Wat betekenen deze cijfers?Hoe heb je de magenta teken hieruit gehaald?Met andere woorden, wat betekent het geometrisch?
@amoeba Een kleine suggestie;de tekst na de laatste visualisatie is vrij moeilijk te begrijpen.Het zou geweldig zijn als je dat wat meer zou kunnen uitwerken.
@AnmolSinghJaggi De eerste eigenvector is (0,81, 0,58), dit zijn slechts vectorcoördinaten: de vector gaat van punt (0,0) naar punt (0,81, 0,58).Als je deze vector tekent en ermee doorgaat in dezelfde richting, gaat hij door het magenta vinkje;zoals ik al schreef, markeren de vinkjes "de richting van de eerste eigenvector".Ik kan zien dat het laatste deel moeilijk te begrijpen kan zijn, maar ik dacht dat dit niet de plek is om eigenvectoren en eigenwaarden in meer detail uit te leggen ... Ik zou echter iets kunnen toevoegen.Dank je.
@amoeba: Briljant antwoord!Hartelijk bedankt.Ik vraag me af waarom dit niet het beste antwoord is!
@amoeba Hey man, je bent geweldig!ik heb ongeveer een week met PCA geworsteld, ik begrijp de zin die zegt "En de variantie van deze variabele is het maximum van alle mogelijke keuzes van de eerste as" niet met je grafieken, ik heb het eindelijk!Ik denk dat God van me hield omdat ik naar beneden scrolde en je antwoord zag!en nogmaals, je bent geweldig!
@claws: Eerlijk gezegd, ik had niet verwacht dat je ooit een antwoord in deze thread zou accepteren!Ik ben gevleid.Het wijnfiguur is ook een goede toevoeging, proost.
Ondanks dat ik de eerste in de rij was om het antwoord toe te juichen, kan ik geen goedkeuring vinden voor de specifieke laatste toevoeging van de kaart met wijnglazen (of zijn dit de blaasomstandigheden, waarbij de bovenste rij hematurisch is?) - kan dat gewoon 'Ik zie niet hoe het elke nuchtere intuïtie over PCA verder kan verfijnen.Ik zou aanraden om het familiefeest te sluiten, eindelijk voor bed.Of het antwoord kan verslechteren.
@ttnphns Bedankt voor de feedback.Ik was het niet die de figuur van het wijnglas heeft toegevoegd.Het werd (eerder vandaag) toegevoegd door de OP-klauwen, die dit antwoord tegelijkertijd hebben geaccepteerd.Ik aarzelde of ik deze foto moest laten of verwijderen ... Misschien heb je gelijk en is het beter om hem toch te verwijderen.Het neemt veel ruimte in beslag.Misschien zal ik de afbeelding vervangen door een link ernaar.
-1
@ttnphns: Aangezien stackexchange een wereldwijde site is, dacht ik dat het ook andere mensen zoals ik zou helpen.Voel je vrij om het te verwijderen als je anders denkt.Bovendien heb ik het gevoel dat als de titel van de vraag op de juiste manier wordt gewijzigd in iets als "Wat is Pricnicple-componentenanalyse in lekentermen?"(of zoiets) de leken die op deze pagina terechtkomen via Google Zoeken, zouden deze afbeelding alleen maar gastvrijer en meegaander vinden in tegenstelling tot grafieken die intimiderend zijn.
Heb je * nog nooit van je leven een glas wijn gezien *, @claws ?!Als dit letterlijk waar is, ben ik verbaasd en verbijsterd.Ik ken veel mensen die nooit wijn of alcohol drinken, en waarschijnlijk ken ik enkele volwassenen (maar heel weinig) die * nog nooit * een glas wijn hebben geprobeerd.Maar nooit een glas wijn * gezien * hebben - hoe is het mogelijk?Ik kan me niet voorstellen in welk "deel van de wereld" je dan moet leven.Mijn beste gok zou een religieuze gemeenschap in India zijn ... Ik denk dat je je locatie echter niet wilt onthullen.
@amoeba: haha!van waar ik sta, verbaast het me ook dat iemand verbaasd zou zijn of denkt dat het bijna onmogelijk is om geen glas wijn te hebben gezien.Hoe is dat mogelijk?Ik heb honderden vrienden die er geen hebben gezien.Ik kan gerust zeggen dat * ongeacht religie * in mijn land, aantal mensen meer dan de bevolking van de VS of heel Europa * nog nooit een glas wijn heeft gezien *.Ik ken weinig mensen (hoewel heel erg weinig) die het hebben geproefd.
@ttnphns Ik heb de afbeelding verwijderd maar de link ernaar in de tekst ingevoegd.
@amoeba je bent echt een genie.
@amoeba verreweg een van de beste (zo niet 'de beste') antwoorden die ik ooit heb gelezen.RESPECT!
Opmerking voor mezelf, update 2: dit antwoord is vandaag het meest geapprecieerd in deze thread (264 upvotes)!Eerder dan de verwachte schatting van december, waarschijnlijk omdat het in augustus als geaccepteerd werd gemarkeerd (dit kan het upvote-percentage verhogen).Het nieuwe doel is om bij alle cv-antwoorden op de eerste plaats te komen;dat zijn drie antwoorden om in te halen.De bovenste heeft momenteel 326 upvotes, dat wil zeggen 60 voorsprong.
@amoeba geweldig antwoord.Welke software heb je gebruikt voor de roterende plot?Is er een kans om de code te posten?Nogmaals bedankt.
@amoeba Dit staat in de top 3 van beste antwoorden die ik ooit heb gelezen over het hele stackexchange-netwerk.Chapeau, ik hoop dat je een leraar bent of dat je er een wordt!
Dit antwoord is het meest geapprecieerde antwoord (363) op CrossValidated vanaf vandaag :-) Voor de goede orde: er zijn veel veel betere antwoorden op CrossValidated, dus deze "prestatie" weerspiegelt voornamelijk de populariteit van het PCA-onderwerp.
Goed antwoord!Als ik mijn favoriete quote op cv zou moeten kiezen, zou het waarschijnlijk "Uitstekende vraag, oma!" Zijn.:-)
Dit is een verbazingwekkend mooi antwoord!
Je verloor me bijna bij overgrootmoeder.Ik heb nog veel te leren.+1
Ik heb zoveel goede berichten doorlopen om de beste te bereiken.
Ik probeer dit te reproduceren, maar de afstand tussen mijn "rode stippen" op de lijn en de oorspronkelijke coördinaten is niet de kortste loodrechte afstand.`T = (X * V (:, 1)) * V (:, 1) ';` Dus, zou T equivalent moeten zijn aan je rode stippen (aangezien V (:, 1) de eerste eigenvector is en Xis gemeen gecentreerd)?
Kun je alsjeblieft alles leren?
Dit is een geweldige verklaring - de afleiding naar eigenvectoren is uitstekend.
Welke aannames doet PCA over gegevens?
Kun je helpen met het beantwoorden van een gerelateerde vraag die ik stelde op [stats.stackexchange] (https://stats.stackexchange.com/questions/374248/what-to-conclude-for-the-data-set-when-the-variance-voor-hoofdcomponenten-is)
Je hebt een echt geschenk.Dit is geweldig!
Ik kan aan de animatie zien dat wanneer het uitgelijnd is met de magenta lijnen, de fout wordt geminimaliseerd, maar ik begrijp niet hoe dat ook de variantie maximaliseert.Variantie (althans in de definitie die in statistieken wordt gebruikt) moet worden gemaximaliseerd door zoveel mogelijk punten zo ver mogelijk van het gemiddelde te verwijderen - ten eerste is het onduidelijk waarom dat wordt beïnvloed door een lijn die we trekken, aangezien dat een eigenschap zou moeten zijn van de originele gegevens- Ten tweede, als ik het zou nemen om in plaats daarvan "de meeste diversiteit in afstanden tussen punten en de lijn" aan te duiden, zou het zijn wanneer de lijn verticaal is.Helpen?
@JosephGarvin Het is de variantie van de rode punten (projecties) op de zwarte lijn.
Totdat de wijn prima is, maar op het moment dat je zegt "Maar velen van hen zullen gerelateerde eigenschappen meten en dus overbodig zijn. Als dat zo is, moeten we ......", zou mijn oma verloren zijn.
Van dit antwoord moet een geanimeerde video worden gemaakt.
@amoeba Bedankt voor zo'n briljant antwoord.
@amoeba Waar zouden de ladingen in de grafiek zijn?
Waarom zeg je "gemiddelde" kwadraatlengte voor de variantie of reconstructiefout?Ik weet niet zeker waarom dit de gemiddelde lengte in het kwadraat is.Is het niet gewoon de lengte?Waar komt het gemiddelde vandaan?
#2
+395
JD Long
2010-09-16 02:42:36 UTC
view on stackexchange narkive permalink

Het manuscript "A tutorial on Principal Components Analysis" door Lindsay I Smith heeft me echt geholpen PCA te groken. Ik denk dat het nog steeds te ingewikkeld is om het aan je grootmoeder uit te leggen, maar het is niet erg. Je moet de eerste paar bits overslaan bij het berekenen van eigens, enz. Spring naar het voorbeeld in hoofdstuk 3 en bekijk de grafieken.

Ik heb enkele voorbeelden waarin ik enkele speelgoedvoorbeelden heb doorgenomen, zodat ik lineaire regressie tussen PCA en OLS kon begrijpen. Ik zal proberen die op te graven en ze ook te posten.

bewerken: je hebt niet echt gevraagd naar het verschil tussen Ordinary Least Squares (OLS) en PCA, maar sinds ik mijn aantekeningen heb opgegraven, heb ik een blogpost over het. De zeer korte versie is OLS van y ~ x minimaliseert de fout loodrecht op de onafhankelijke as als volgt (gele lijnen zijn voorbeelden van twee fouten):

alt text

Als je zou regressie x ~ y (in tegenstelling tot y ~ x in het eerste voorbeeld) het zou de fout als volgt minimaliseren:

alt text

en PCA minimaliseert effectief de fout orthogonaal aan het model zelf , zoals zo:

alt text

Wat nog belangrijker is, zoals anderen al hebben gezegd, in een situatie waarin je een HELE BUNCH onafhankelijke variabelen hebt, helpt PCA je erachter te komen welke lineaire combinaties van deze variabelen zijn het belangrijkst. De bovenstaande voorbeelden helpen alleen om te visualiseren hoe de eerste hoofdcomponent eruitziet in een heel eenvoudig geval.

In mijn blogpost heb ik de R-code voor het maken van de bovenstaande grafieken en voor het berekenen van de eerste hoofdcomponent. Het is misschien de moeite waard om mee te spelen om je intuïtie rond PCA op te bouwen. Ik heb de neiging om niet echt iets bezit te hebben totdat ik code schrijf die het reproduceert.

De tutorial was echt geweldig. Kun je als vervolgstudie nog meer tutorials voorstellen?
Goed gedaan met het Lindsay I Smith-manuscript - lees het vandaag gewoon; erg behulpzaam.
Dus is PCA gelijk aan Total Least Squares als het orthogonale afstanden van punten tot de fitlijn optimaliseert?
@Marcin - dit is correct. U kunt PCA anders formuleren als het vinden van de beste $ m $ schatting ($ 1 \ leq m \ leq p $) van de oorspronkelijke $ p $ variabelen ($ \ hat {x} _ {ij} \; \; \; \ ; i = 1, \ dots, n \; \; \; j = 1, \ dots, p $), met een objectieve functie van $ \ sum_ {i = 1} ^ {n} \ sum_ {j = 1} ^ {p} (x_ {ij} - \ hat {x} _ {ij}) ^ {2} $. Het aantal pc's kiezen is gelijk aan het kiezen van de rangorde van de voorspellingen.
Kleine wiskundige fout in Smith: "alle eigenvectoren van een matrix staan ​​loodrecht ... ongeacht hoeveel dimensies je hebt" is alleen van toepassing op symmetrische matrices, [hier is er een met hen 45 graden uit elkaar] (http: //www.wolframalpha. com / input /? i = eigenvectoren% 7B% 7B1% 2C1% 7D% 2C% 7B0% 2C2% 7D% 7D). Smith merkt eerder de symmetrie van covariantiematrices op, maar niet de implicatie - symmetrie zorgt voor 'n' loodrechte eigenvectoren. In feite hebben niet alle echte `nxn` matrices zelfs echte eigenwaarden (bijvoorbeeld {{0,1}, {- 1,0}}) en van degenen die dat wel doen, hebben niet alle` n` onafhankelijke eigenvectoren (bijvoorbeeld {{1 , 1}, {0,1}})! Symmetrie is belangrijk!
Alle positieve semidefiniete symmetrische matrices hebben niet-negatieve eigenwaarden en orthogonale eigenvectoren. Dit omvat alle covariantiematrices. Eigenvectoren zijn echter niet per se uniek.
De fout minimaliseren of de som van de kwadraten van de fouten minimaliseren?
Lijkt op "alleen link beantwoorden" - de tekst eromheen beantwoordt de vraag helemaal niet echt.
Ik denk dat we het er allemaal over eens zijn dat de foto's nuttig zijn. Nauwelijks een "link only answer". 126 stemmen omhoog is nogal atypisch voor een antwoord in dit statistiekenforum, niet?
Als wiskundige die eigenvectoren doceert, moet ik ineenkrimpen bij het lezen van dit Lindsay Smith-manuscript."... resulterende vector is een geheel veelvoud van het origineel ..." - wat heeft het voor zin om ** geheel getal ** te noemen?Een eigenvector van matrix A is een willekeurige vector X zodat AX een veelvoud is van X. ** Geen geheel veelvoud, alleen een veelvoud! ** Een niet-geheel veelvoud is ook ok!Jeez waarom onnodige verwarring creëren waar is er geen?
"Het hele onderwerp van statistiek is gebaseerd op het idee dat je over deze grote set gegevens beschikt, en je wilt die set analyseren in termen van de relaties tussen de afzonderlijke punten in die dataset" Ik kon die zin niet begrijpenvan Lindsay.Wat probeert hij / zij hiermee in vredesnaam te zeggen?
Bedankt voor het wijzen op dit manuscript.Nooit geweten dat statistieken zo eenvoudig konden worden uitgelegd.
het gekoppelde manuscript is niet beschikbaar server retourneert 453 HTTP-code, heeft iemand het?zo ja, kan er een alternatieve url worden geplaatst?alvast bedankt
@partizanos bedankt voor de opmerking dat de link is verbroken!Ik heb het gemaakt.Proost.
@JDLong Na het bedenken van de belangrijkste componenten die een voldoende deel van de variabiliteit verklaren (ik heb gelezen dat 90% de vuistregel is), worden deze hoofdcomponenten dan over het algemeen gebruikt als voorspellende variabelen bij regressie of is PCA helemaal niet gerelateerd aan voorspellende modellen?
@Remy wordt doorgaans niet direct gebruikt voor voorspelling.kijk of dit helpt: https://www.quora.com/When-and-where-do-we-use-PCA
Als de helling van de regressielijn k is, hoe bepaal je dan de coëfficiënten van de twee variabelen in de overeenkomstige hoofdcomponent?
#3
+147
whuber
2010-09-16 02:33:12 UTC
view on stackexchange narkive permalink

Laten we eerst (2) doen. PCA past een ellipsoïde aan de gegevens aan. Een ellipsoïde is een multidimensionale generalisatie van vervormde bolvormige vormen zoals sigaren, pannenkoeken en eieren. Deze worden allemaal netjes beschreven door de richtingen en lengtes van hun belangrijkste (halve) assen, zoals de as van de sigaar of het ei of het vlak van de pannenkoek. Ongeacht hoe de ellipsoïde wordt gedraaid, de eigenvectoren wijzen in die hoofdrichtingen en de eigenwaarden geven je de lengtes. De kleinste eigenwaarden komen overeen met de dunste richtingen met de minste variatie, dus als je ze negeert (waardoor ze plat vallen), verlies je relatief weinig informatie: dat is PCA.

(1) Afgezien van vereenvoudiging (hierboven), hebben we behoeften voor een pittige beschrijving, visualisatie en inzicht. Dimensies kunnen verkleinen is goed : het maakt het gemakkelijker om de gegevens te beschrijven en, als we het geluk hebben ze terug te brengen tot drie of minder, kunnen we een tekening maken. Soms kunnen we zelfs nuttige manieren vinden om de combinaties van gegevens die worden weergegeven door de coördinaten in de afbeelding te interpreteren, wat inzicht kan geven in het gezamenlijke gedrag van de variabelen.


De figuur toont enkele wolken van $ 200 $ punten elk, samen met ellipsoïden die 50% van elke wolk bevatten en assen uitgelijnd met de hoofdrichtingen. In de eerste rij hebben de wolken in wezen één hoofdcomponent, die 95% van alle variantie omvat: dit zijn de sigaarvormen. In de tweede rij hebben de wolken in wezen twee hoofdcomponenten, de ene ongeveer twee keer zo groot als de andere, die samen 95% van alle variantie omvatten: dit zijn de pannenkoekvormen. In de derde rij zijn alle drie de belangrijkste componenten aanzienlijk: dit zijn de eivormen.

Figures

Elke 3D-puntenwolk die "coherent" is in de zin dat hij geen clusters, ranken of uitschieters vertoont, ziet er als een van deze uit. Elke 3D-puntenwolk helemaal - mits niet alle punten samenvallen - kan door een van deze figuren worden beschreven als een eerste vertrekpunt voor het identificeren van verdere clustering of patronen.

De intuïtie die je ontwikkelt door het overwegen van dergelijke configuraties kan worden toegepast op hogere dimensies, ook al is het moeilijk of onmogelijk om die dimensies te visualiseren.

Om hieraan toe te voegen, als je (bijna-) gelijke semiaxen hebt (d.w.z. de ellipsoïde heeft een (bijna-) cirkelvormige plak), geeft dit aan dat de twee stukken gegevens die overeenkomen met die assen (bijna-) afhankelijk zijn; voor een ellips kan men spreken van hoofdassen, maar cirkels hebben maar één straal. :)
Ik zou hier voorzichtiger zijn, J.M. Ten eerste, ter verduidelijking, met "bijna-afhankelijkheid" moet u "bijna onafhankelijk" bedoelen. Dit zou waar zijn voor een multinormale variant, maar in veel gevallen wordt PCA uitgevoerd met gegevens die duidelijk niet-normaal zijn. De clusteringanalyses die volgen op sommige PCA-berekeningen kunnen inderdaad worden gezien als een manier om een ​​sterke vorm van niet-normaliteit te beoordelen. Wiskundig gezien hebben cirkels * wel * hoofdassen, maar ze zijn gewoon niet uniek bepaald: je kunt elk orthogonaal paar stralen kiezen als hun hoofdassen.
Ja, sorry, ik neem aan dat "de hoofdassen van een cirkel onbepaald zijn" een betere manier zou zijn geweest om het uit te drukken.
Zeer mooie interpretatie! Probeert u het beter te begrijpen .. waar kan men in PCA-wiskunde zien dat "PCA een ellipsoïde op gegevens past"?
@Kochede Een ellipsoïde is een contour van een kwadratische vorm. De covariantiematrix is ​​een kwadratische vorm. PCA identificeert zijn assen en hun lengtes.
Ik denk dat je mijn oma zou zijn kwijtgeraakt bij de eerste vermelding van ellipsoïde.Ik zag haar ogen glazig worden en het gesprek zou waarschijnlijk op een of andere manier over de lippen zijn gegaan.
@icc Het is jammer dat je niet verder hebt gelezen bij de beschrijvingen van eieren en pannenkoeken.
Ik beloof je dat ik het had gelezen, alleen dat ik denk dat de taal die je gebruikt te complex is.
@icc De foto * is * de uitleg.Ik zal me niet verontschuldigen voor het gebruik van woorden met meer dan twee lettergrepen om het te beschrijven - u mag uw eigen woorden gebruiken wanneer u met uw eigen publiek communiceert.Maar ik merk dat als je je toehoorders respecteert door je taalgebruik niet te verzwakken, ze dat meestal op prijs stellen.Als kinderen woorden als 'spaghetti' en 'koelkast' kunnen leren, is er enige hoop dat volwassenen woorden als 'ellipsoïde' goed kunnen begrijpen, vooral als ze een dozijn voorbeelden krijgen van wat het betekent.
Mijn excuses voor mijn eerste luchthartige opmerking.Ik denk dat de andere topantwoorden hier het onderwerp niet dom maken en dat ze geen wiskundige taal gebruiken en geen wiskundige grafieken nodig hebben die verder gaan dan wiskunde op de middelbare school.
Hoe leg je de relatie tussen de features die je hebt gebruikt als invoergegevens en de hoofdcomponenten?En wat als de PCA-berekening u 5 pc's oplevert die even belangrijk zijn om naar te kijken?Wat moet u in dit geval doen?
@xeon Deze computationele details zijn uitgebreid besproken in andere threads: zoek naar "PCA."
#4
+114
Freya Harrison
2010-09-16 02:14:37 UTC
view on stackexchange narkive permalink

Hmm, hier geldt voor een volledig niet-wiskundige kijk op PCA ...

Stel je voor dat je net een ciderwinkel hebt geopend. Je hebt 50 soorten cider en je wilt weten hoe je ze op de planken kunt verdelen, zodat ciders met dezelfde smaak op dezelfde plank worden geplaatst. Er zijn veel verschillende smaken en texturen in cider - zoetheid, zuurheid, bitterheid, gist, fruitigheid, helderheid, bruisend enz. Dus wat u moet doen om de flessen in categorieën te verdelen, is twee vragen beantwoorden:

1) Welke eigenschappen zijn het belangrijkst voor het identificeren van groepen ciders? bijv. maakt classificeren op basis van zoetheid het gemakkelijker om uw ciders te clusteren in groepen met dezelfde smaak dan classificeren op basis van fruitigheid?

2) Kunnen we onze lijst met variabelen verkleinen door er enkele te combineren? bijv. is er eigenlijk een variabele die een combinatie is van "gist en helderheid en bruisend" en die een echt goede schaal vormt voor het classificeren van variëteiten?

Dit is in wezen wat PCA doet. Hoofdcomponenten zijn variabelen die op een nuttige manier variatie in een dataset verklaren - in dit geval die nuttig onderscheid maken tussen groepen. Elke hoofdcomponent is een van uw oorspronkelijke verklarende variabelen, of een combinatie van enkele van uw oorspronkelijke verklarende variabelen.

Hoe zit het met de eigenvectoren en eigenwaarden?
Oké: de eigenwaarde die aan elke hoofdcomponent is gekoppeld, vertelt je hoeveel variatie in de dataset het verklaart (in mijn voorbeeld, hoe duidelijk het je flessen in groepen verdeelt). Ze worden meestal uitgedrukt als een percentage van de totale variatie in de dataset. Wat betreft de eigenvectoren, dat is waar, zoals klauwen zeiden, ik de output van een analyse volg als een machine;) In mijn hoofd houden ze verband met hoe je Vince's mobieltje naar zijn 'beste' oriëntatie draait, maar dit is misschien niet de juiste manier om over hen te denken.
Eigenvectoren zijn slechts de lineaire combinaties van de oorspronkelijke variabelen (in de enkelvoudige of geroteerde factorruimte); ze beschreven hoe variabelen "bijdragen" aan elke factor-as. Beschouw PCA in wezen als een manier om nieuwe assen te construeren die wijzen naar de richtingen van maximale variantie (in de oorspronkelijke variabele ruimte), zoals uitgedrukt door de eigenwaarde, en hoe variabelenbijdragen worden gewogen of lineair getransformeerd in deze nieuwe ruimte.
hoe zou de covariantiematrix van dit probleem eruit zien? wat het ons vertelt over de variabelen (zoetheid, zuurheid, bitterheid, gistigheid, fruitigheid, helderheid, bruisend enz enz.)?
Dit verklaart misschien niet alles waar het OP om vroeg, maar dit is het enige antwoord dat ik daadwerkelijk zou kunnen gebruiken om PCA aan mijn ouders uit te leggen.
Ik weet niet wat het is met statistici en alcoholische dranken, maar [Whisky Classified] (https://www.amazon.co.uk/Whisky-Classified-David-Wishart/dp/1862057168) doet precies dit voor Scotch whisky's...
#5
+102
probabilityislogic
2011-09-05 04:18:07 UTC
view on stackexchange narkive permalink

Ik zou antwoorden in "lekentaal" door te zeggen dat PCA ernaar streeft rechte lijnen op de datapunten te passen (iedereen weet wat een rechte lijn is). We noemen deze rechte lijnen "hoofdcomponenten". Er zijn evenveel hoofdcomponenten als variabelen. De eerste hoofdcomponent is de beste rechte lijn die u aan de gegevens kunt aanpassen. De tweede hoofdcomponent is de beste rechte lijn die u kunt aanpassen aan de fouten van de eerste hoofdcomponent. De derde hoofdcomponent is de beste rechte lijn die je kunt aanpassen aan de fouten van de eerste en tweede hoofdcomponenten, enz., Enz.

Als iemand vraagt ​​wat je bedoelt met "beste" of "fouten", dan vertelt dit je dat ze geen "leek" zijn, dus kunnen wat meer technische details ingaan, zoals loodrechte fouten, niet weten waar de fout zich bevindt in x- of y-richting, meer dan 2 of 3 dimensies, enz. . Verder, als je niet verwijst naar OLS-regressie (wat de "leek" waarschijnlijk ook niet zal begrijpen), is de verklaring eenvoudiger.

De eigenvectoren en eigenwaarden zijn niet per se noodzakelijke concepten, ze zijn eerder gebeurd zijn wiskundige concepten die al bestonden. Wanneer je het wiskundige probleem van PCA oplost, komt het uiteindelijk overeen met het vinden van de eigenwaarden en eigenvectoren van de covariantiematrix.

+1, dit is echt in "lekentaal", en ik weet dat je het * heel * rigoureus zou kunnen afleiden als je dat zou willen!
Het beste antwoord tot nu toe, zou ik zeggen. En ik gebruik PCA veel.
Wauw - dit is echt een geweldige en eenvoudige uitleg!Dank u!
#6
+56
sjm.majewski
2012-08-04 08:54:47 UTC
view on stackexchange narkive permalink

Ik kan je mijn eigen uitleg / bewijs van de PCA geven, die volgens mij heel eenvoudig en elegant is en niets anders vereist dan basiskennis van lineaire algebra. Het kwam vrij lang uit, omdat ik in eenvoudig toegankelijke taal wilde schrijven.

Stel dat we enkele $ M $ gegevensmonsters hebben uit een $ n $ -dimensionale ruimte. Nu willen we deze gegevens projecteren op een paar regels in de $ n $ -dimensionale ruimte, op een manier die zoveel mogelijk variantie behoudt (dat betekent dat de variantie van de geprojecteerde gegevens zo groot zou moeten zijn als de variantie van de oorspronkelijke gegevens mogelijk).

Laten we nu zien dat als we alle punten vertalen (verplaatsen) met een vector $ \ beta $, de variantie hetzelfde blijft, aangezien alle punten met $ \ beta $ worden verplaatst zullen hun rekenkundig gemiddelde ook met $ \ beta $ verplaatsen, en de variantie is lineair evenredig met $ \ sum_ {i = 1} ^ M \ | x_i - \ mu \ | ^ 2 $. Daarom vertalen we alle punten met $ - \ mu $, zodat hun rekenkundig gemiddelde $ 0 $ wordt, voor rekencomfort. Laten we de vertaalde punten aanduiden als $ x_i '= x_i - \ mu $. Laten we ook opmerken dat de variantie nu eenvoudig kan worden uitgedrukt als $ \ sum_ {i = 1} ^ M \ | x_i '\ | ^ 2 $.

Nu de keuze van de regel. We kunnen elke regel beschrijven als een reeks punten die voldoen aan de vergelijking $ x = \ alpha v + w $, voor sommige vectoren $ v, w $. Merk op dat als we de lijn verplaatsen met een vector $ \ gamma $ orthogonaal naar $ v $, alle projecties op de lijn ook worden verplaatst met $ \ gamma $, dus het gemiddelde van de projecties wordt verplaatst met $ \ gamma $, dus de variantie van de projecties blijft ongewijzigd. Dat betekent dat we de lijn parallel aan zichzelf kunnen verplaatsen en de variantie van projecties op deze lijn niet kunnen veranderen. Nogmaals voor het gemak laten we ons beperken tot alleen de lijnen die door het nulpunt gaan (dit betekent lijnen beschreven door $ x = \ alpha v $).

Oké, stel nu dat we een vector $ v $ hebben die de richting beschrijft van een lijn die een mogelijke kandidaat is voor de lijn waarnaar we zoeken. We moeten de variantie berekenen van de projecties op de lijn $ \ alpha v $. Wat we nodig hebben zijn projectiepunten en hun gemiddelde. Uit lineaire algebra weten we dat in dit eenvoudige geval de projectie van $ x_i '$ op $ \ alpha v $ $ \ langle x_i, v \ rangle / \ | v \ | _2 $ is. Laten we ons voortaan beperken tot alleen eenheidsvectoren $ v $. Dat betekent dat we de projectielengte van punt $ x_i '$ op $ v $ eenvoudigweg kunnen schrijven als $ \ langle x_i', v \ rangle $.

In sommige van de vorige antwoorden zei iemand dat PCA de som van vierkanten van afstanden tot de gekozen lijn minimaliseert. We kunnen nu zien dat het waar is, omdat de som van de kwadraten van projecties plus de som van de kwadraten van afstanden vanaf de gekozen lijn gelijk is aan de som van de kwadraten van afstanden vanaf punt $ 0 $. Door de som van de kwadraten van projecties te maximaliseren, minimaliseren we de som van de kwadraten van afstanden en vice versa, maar dit was slechts een doordachte uitweiding, nu terug naar het bewijs.

Wat betreft het gemiddelde van de projecties, laten we zien dat $ v $ deel uitmaakt van een of andere orthogonale basis van onze ruimte, en dat als we onze gegevenspunten projecteren op elke vector van die basis, hun som zal worden opgeheven (het is zo omdat projecteren op de vectoren van de basis is als het schrijven van de datapunten in de nieuwe orthogonale basis). Dus de som van alle projecties op de vector $ v $ (laten we de som $ S_v $ noemen) en de som van de projecties op andere vectoren vanaf de basis (laten we het $ S_o $ noemen) is 0, omdat dit het gemiddelde is van de data punten. Maar $ S_v $ is orthogonaal op $ S_o $! Dat betekent $ S_o = S_v = 0 $.

Dus het gemiddelde van onze projecties is $ 0 $. Nou, dat is handig, want dat betekent dat de variantie slechts de som van de kwadraten is lengtes van projecties, of in symbolen $$ \ sum_ {i = 1} ^ M (x_i '\ cdot v) ^ 2 = \ sum_ {i = 1} ^ M v ^ T \ cdot x_i' ^ T \ cdot x_i '\ cdot v = v ^ T \ cdot (\ sum_ {i = 1} ^ M x_i' ^ T \ cdot x_i) \ cdot v. $$

Nou ja, plotseling kwam de covariantiematrix tevoorschijn. Laten we het simpelweg aanduiden met $ X $. Het betekent dat we nu op zoek zijn naar een eenheidsvector $ v $ die $ v ^ T \ cdot X \ cdot v $ maximaliseert, voor een semi-positieve definitieve matrix $ X $.

Laten we nu de eigenvectoren en eigenwaarden van matrix $ X $, en duid ze aan met respectievelijk $ e_1, e_2, \ dots, e_n $ en $ \ lambda_1, \ dots, \ lambda_n $, zodat $ \ lambda_1 \ geq \ lambda_2, \ geq \ lambda_3 \ dots $. Als de waarden $ \ lambda $ niet dupliceren, vormen eigenvectoren een orthonormale basis. Als ze dat doen, kiezen we de eigenvectoren op een manier dat ze een orthonormale basis vormen.

Laten we nu $ v ^ T \ cdot X \ cdot v $ berekenen voor een eigenvector $ e_i $. We hebben $$ e_i ^ T \ cdot X \ cdot e_i = e_i ^ T \ cdot (\ lambda_i e_i) = \ lambda_i (\ | e_i \ | _2) ^ 2 = \ lambda_i. $$

Best goed, dit geeft ons $ \ lambda_1 $ voor $ e_1 $. Laten we nu een willekeurige vector $ v $ nemen. Aangezien eigenvectoren een orthonormale basis vormen, kunnen we schrijven $ v = \ sum_ {i = 1} ^ n e_i \ langle v, e_i \ rangle $, en we hebben $ \ sum_ {i = 1} ^ n \ langle v, e_i \ rangle ^ 2 = 1 $. Laten we $ \ beta_i = \ langle v, e_i \ rangle $ aangeven.

Laten we nu $ v ^ T \ cdot X \ cdot v $ tellen. We herschrijven $ v $ als een lineaire combinatie van $ e_i $, en krijgen: $$ (\ sum_ {i = 1} ^ n \ beta_i e_i) ^ T \ cdot X \ cdot (\ sum_ {i = 1} ^ n \ beta_i e_i) = (\ sum_ {i = 1} ^ n \ beta_i e_i) \ cdot (\ sum_ {i = 1} ^ n \ lambda_i \ beta_i e_i) = \ sum_ {i = 1} ^ n \ lambda_i ( \ beta_i) ^ 2 (\ | e_i \ | _2) ^ 2. $$

De laatste vergelijking komt van het feit dat de eigenvectoren paarsgewijs orthogonaal zijn gekozen, dus hun puntproducten zijn nul. Nu, omdat alle eigenvectoren ook een eenheidslengte hebben, kunnen we $ v ^ T \ cdot X \ cdot v = \ sum_ {i = 1} ^ n \ lambda_i \ beta_i ^ 2 $ schrijven, waarbij $ \ beta_i ^ 2 $ zijn allemaal positief, en opgeteld $ 1 $.

Dat betekent dat de variantie van de projectie een gewogen gemiddelde van eigenwaarden is. Zeker, het is altijd minder dan de grootste eigenwaarde, daarom zou het onze keuze moeten zijn voor de eerste PCA-vector.

Stel nu dat we een andere vector willen. We zouden het moeten kiezen uit de ruimte orthogonaal op de reeds gekozen ruimte, dat wil zeggen de deelruimte $ \ mathrm {lin} (e_2, e_3, \ dots, e_n) $. Door analoge gevolgtrekking komen we tot de conclusie dat de beste vector om op te projecteren $ e_2 $ is. En zo verder, enzovoort ...

Het zou trouwens nu duidelijk moeten zijn waarom de behouden variantie kan worden uitgedrukt door $ \ sum_ {i = 1} ^ k \ lambda_i / \ sum_ {i = 1} ^ n \ lambda_i $.

We moeten ook de hebzuchtige keuze van vectoren rechtvaardigen. Als we $ k $ vectoren willen kiezen om op te projecteren, kan dat niet het beste idee zijn om eerst de beste vector te kiezen, dan het beste van wat er overblijft enzovoort. Ik zou willen zeggen dat het in dit geval gerechtvaardigd is en geen verschil maakt. Laten we de $ k $ -vector aangeven waarop we willen projecteren met $ v_1, \ dots, v_k $. Laten we ook aannemen dat de vectoren paarsgewijs orthogonaal zijn. Zoals we al weten, kan de totale variantie van de projecties op die vectoren worden uitgedrukt door $$ \ sum_ {j = 1} ^ k \ sum_ {i = 1} ^ n \ lambda_i \ beta_ {ij} ^ 2 = \ sum_ {i = 1} ^ n \ lambda_i \ gamma_i $$ waarbij $ \ gamma_i = \ sum_ {j = 1} ^ k \ beta_ {ij} ^ 2. $

Laten we nu $ e_i $ schrijven in een orthonormale basis die $ v_1, \ dots, v_k $ omvat. Laten we de rest van de basis aanduiden als $ u_1, \ dots, u_ {n-k} $. We kunnen zien dat $ e_i = \ sum_ {j = 1} ^ k \ beta_ {ij} v_j + \ sum_ {j = 1} ^ {nk} \ theta_j \ langle e_i, u_j \ rangle $ .Omdat $ \ | e_i \ | _2 = 1 $, we hebben $ \ sum_ {j = 1} ^ k \ beta_ {ij} ^ 2 + \ sum_ {j = 1} ^ {nk} \ theta_j ^ 2 = 1 $, en dus $ \ gamma_i \ leq 1 $ voor alle $ i $.

Nu we een soortgelijk geval hebben met slechts één vector, weten we nu dat de totale variantie van projecties $ \ sum_ {i = 1} ^ n \ is lambda_i \ gamma_i $ met $ \ gamma_i \ leq 1 $ en $ \ sum_ {i = 1} ^ n \ gamma_i = k $. Dit is weer een ander gewogen gemiddelde, en is zeker niet meer dan $ \ sum_ {i = 1} ^ k \ lambda_i $ wat overeenkomt met projecteren op $ k $ eigenvectoren die overeenkomen met de grootste eigenwaarden.

+1 Heel leuk antwoord! Ik heb het nog niet helemaal gelezen, maar uw antwoord is het soort waarnaar ik op zoek was. Alle stappen uitgelegd =)
Laat me een leek zien die elementaire lineaire algebra kent, en ik zal je een student wiskunde laten zien.
* Uit lineaire algebra weten we dat in dit eenvoudige geval de projectie van $ x_i '$ op $ \ alpha v $ $ \ langle x_i is, v \ rangle / \ | v \ | ^ 2 $ * (5e alinea).Zou het niet $ \ langle x_i, v \ rangle / \ | v \ | $ moeten zijn?Met andere woorden, de scalaire projectie?
Antoni Parellada: je hebt gelijk, de 2 hoort in de onderste index te staan, niet de bovenste.Ik heb het gecorrigeerd.
Ik denk dat dit verreweg de beste verklaring is voor PCA die ik ooit heb gezien.Dank je.
Dat is mijn favoriete verklaring die ook laat zien * waarom * de eigenvectoren de variantie maximaliseren.
#7
+50
Vince
2010-09-16 02:07:59 UTC
view on stackexchange narkive permalink

Oké, ik zal dit eens proberen. Een paar maanden geleden verdiepte ik me in een flinke hoeveelheid literatuur om een ​​intuïtieve verklaring te vinden die ik aan een niet-statisticus kon uitleggen. Ik vond de afleidingen die Lagrange-vermenigvuldigers gebruiken het meest intuïtief.

Laten we zeggen dat we hoge dimensiegegevens hebben - zeg 30 metingen aan een insect. De bugs hebben verschillende genotypen en enigszins verschillende fysieke kenmerken in sommige van deze dimensies, maar met zulke hoge dimensiegegevens is het moeilijk te zeggen welke insecten tot welke groep behoren.

PCA is een techniek om de dimensie te verkleinen door:

  1. Lineaire combinaties nemen van de oorspronkelijke variabelen.
  2. Elke lineaire combinatie verklaart de meeste variantie in de gegevens die mogelijk is.
  3. Elke lineaire combinatie is niet gecorreleerd met de andere

Of, in wiskundige termen:

  1. Voor $ Y_j = a_j 'x $ (lineaire combinatie voor jde component)
  2. Voor $ k > j $, $ V (Y_k) < V (Y_j ) $ (eerste componenten verklaren meer variatie)
  3. $ a_k 'a_j = 0 $ (orthogonaliteit)

Het vinden van lineaire combinaties die aan deze beperkingen voldoen, leidt ons naar eigenwaarden. Waarom?

Ik raad aan om het boek An Introduction to Multivariate Data Analysis te bekijken voor de volledige afleiding (p. 50), maar het basisidee zijn opeenvolgende optimaliseringsproblemen (variantie maximaliseren) zodanig beperkt dat a'a = 1 voor coëfficiënten a (om te voorkomen dat variantie oneindig kan zijn) en beperkt om ervoor te zorgen dat de coëfficiënten orthogonaal zijn.

Dit leidt tot optimalisatie met Lagrange-vermenigvuldigers, die op hun beurt laat zien waarom eigenwaarden worden gebruikt. Ik ben te lui om het uit te typen (sorry!), Maar deze pdf gaat vanaf dit punt vrij goed door het bewijs.

Ik zou dit nooit aan mijn grootmoeder proberen uit te leggen, maar als ik in het algemeen over dimensiereductietechnieken zou moeten praten, zou ik naar dit triviale projectievoorbeeld verwijzen (niet PCA). Stel dat u een Calder-gsm heeft die erg complex is. Sommige punten in 3D-ruimte dicht bij elkaar, andere niet. Als we deze mobiel aan het plafond hingen en er vanuit één hoek licht op schenen, krijgen we een projectie op een vlak met een lagere dimensie (een tweedimensionale muur). Als deze mobiele telefoon voornamelijk breed is in de ene richting, maar mager in de andere richting, kunnen we hem draaien om projecties te krijgen die verschillen in bruikbaarheid. Intuïtief is een magere vorm in één dimensie die op een muur wordt geprojecteerd, minder nuttig - alle schaduwen overlappen elkaar en geven ons niet veel informatie. Als we het echter draaien zodat het licht aan de brede kant schijnt, krijgen we een beter beeld van de gegevens met kleinere afmetingen - punten zijn meer verspreid. Dit is vaak wat we willen. Ik denk dat mijn grootmoeder dat wel kon begrijpen :-)

Dat is erg leek ;-)
Het is een beetje wiskundig, maar de beste manier om iets te begrijpen, is door het af te leiden.
Je hebt een buitengewoon goed opgeleide grootmoeder :-).
Ik hou van de uitleg met het licht dat op een 3D-structuur schijnt
(+1) Het zijn allemaal geweldige antwoorden, maar dit is degene die ik ook zou willen geven.
#8
+41
ttnphns
2012-09-04 13:11:18 UTC
view on stackexchange narkive permalink

Proberen niet-technisch te zijn ... Stel je voor dat je een multivariate data hebt, een multidimensionale puntenwolk. Wanneer je de covariantiematrix berekent van degenen die je feitelijk (a) centreert de wolk, dat wil zeggen zet de oorsprong als het multidimensionale gemiddelde, de assen van het coördinatensysteem kruisen nu in het midden van de wolk, (b) versleutelen de informatie over de vorm van de wolk en hoe het georiënteerd is in de ruimte door middel van variantie-covariantie-ingangen. Dus de meeste belangrijke informatie over de vorm van de gegevens als geheel wordt opgeslagen in de covariantiematrix.

Vervolgens voer je eigen-decompositie van die martrix uit en verkrijg je de lijst met eigenwaarden en het overeenkomstige aantal eigenvectoren. Nu is de eerste belangrijkste component de nieuwe, latente variabele die kan worden weergegeven als de as die door de oorsprong gaat en georiënteerd is in de richting van de maximale variantie (dikte) van de wolk. De variantie langs deze as, dwz de variantie van de coördinaten van alle punten erop, is de eerste eigenwaarde, en de oriëntatie van de as in de ruimte die verwijst naar de originele assen (de variabelen) wordt bepaald door de 1e eigenvector: de ingangen zijn de cosinus tussen deze en die originele assen. De bovengenoemde coördinaten van datapunten op de eerste component zijn de waarden van de eerste hoofdcomponent of componentscores; ze worden berekend als het product van (gecentreerde) datamatrix en de eigenvector.

"Na" de 1e pr. component werd gemeten, het is, om te zeggen, "verwijderd" uit de wolk met alle variantie die het veroorzaakte, en de dimensionaliteit van de wolk daalt met één. Vervolgens wordt alles herhaald met de tweede eigenwaarde en de tweede eigenvector - de 2e pr. component wordt opgenomen en vervolgens "verwijderd". Enz.

Dus nogmaals: eigenvectoren zijn richtingscosinussen voor hoofdcomponenten, terwijl eigenwaarden de grootte (de variantie) in de hoofdcomponenten zijn. Som van alle eigenwaarden is gelijk aan de som van varianties die op de diagonaal van de variantie-covariantiematrix liggen. Als je de "magnitudinale" informatie die is opgeslagen in eigenwaarden overbrengt naar eigenvectoren om deze toe te voegen aan de "oriëntatieve" informatie die daarin is opgeslagen, krijg je zogenaamde hoofdcomponent ladingen ; deze ladingen - omdat ze beide soorten informatie bevatten - zijn de covarianties tussen de oorspronkelijke variabelen en de belangrijkste componenten.

Later P.S. Ik wil hier vooral twee keer de nadruk leggen op het terminologische verschil tussen eigenvectoren en ladingen . Veel mensen en sommige pakketten (waaronder enkele van R ) gebruiken de twee termen door elkaar. Het is een slechte gewoonte omdat de objecten en hun betekenis verschillend zijn. Eigenvectoren zijn de cosinusrichtingen, de hoek van de orthogonale "rotatie" die PCA bedraagt. Ladingen zijn eigenvectoren die zijn geïnoculeerd met de informatie over de variabiliteit of grootte van de geroteerde gegevens. De ladingen zijn de associatiecoëfficiënten tussen de componenten en de variabelen en ze zijn direct vergelijkbaar met de associatiecoëfficiënten die tussen de variabelen worden berekend - covarianties, correlaties of andere scalaire producten, waarop u uw PCA baseert. Zowel eigenvectoren als belastingen zijn vergelijkbaar in zoverre dat ze regressiecoëfficiënten dienen bij het voorspellen van de variabelen door de componenten (niet vice versa! $ ^ 1 $). Eigenvectoren zijn de coëfficiënten om variabelen te voorspellen door middel van ruwe componentscores. Ladingen zijn de coëfficiënten om variabelen te voorspellen door geschaalde (genormaliseerde) componentscores (geen wonder: ladingen hebben geprecipiteerde informatie over de variabiliteit, bijgevolg moeten de gebruikte componenten hiervan worden onthouden). Nog een reden om eigenvectoren en belastingen niet te mengen, is dat sommige andere dimensionaliteitsreductietechnieken naast PCA - zoals sommige vormen van factoranalyse - belastingen rechtstreeks berekenen, waarbij eigenvectoren worden omzeild. Eigenvectoren zijn het product van eigen-decompositie of singuliere waarde-decompositie; sommige vormen van factoranalyse maken geen gebruik van deze decomposities en komen andersom tot ladingen. Ten slotte zijn het ladingen, geen eigenvectoren, waarmee je de componenten of factoren interpreteert (als je ze moet interpreteren). Laden gaat over een bijdrage van een component aan een variabele: in PCA (of factoranalyse) laadt component / factor zichzelf op variabele, niet omgekeerd. In een uitgebreide PCA-resultaten moet men zowel eigenvectoren als belastingen rapporteren, zoals bijv. hier of hier.

Zie ook over belastingen versus eigenvectoren.


$ ^ 1 $ Aangezien de eigenvectormatrix in PCA orthonormaal is en de inverse de transpositie is, kunnen we zeggen dat die dezelfde eigenvectoren zijn ook de coëfficiënten om de componenten door de variabelen te voorspellen. Het is echter niet zo voor ladingen.

@amoeba, Ik dring er niet op aan en je mag elke terminologie gebruiken die je gewend bent. Ik heb duidelijk uitgelegd waarom ik denk dat de termen "ladingen" en "eigenvectoren" beter gescheiden kunnen worden gehouden. Ik volg de klassieke traditie, zoals in Harman. Moderne factoranalyse, als ik me de traditie maar goed herinner.
(Vervolg) Hoe dan ook, je weet zelf dat de term "ladingen", hoewel eigenlijk nogal dubieus, niet wordt verward met "eigenvector" in andere multivariate analyses, zoals discriminantanalyse, bijvoorbeeld. Nogmaals, zoals ik het uitdrukte, in PCA-ladingen 1) neem informatie op over de omvang van de variatie; 2) Zijn de covarianties / correlaties, en worden daarom gebruikt voor interpretatie. Eigenvectorwaarden - zijn dat niet.
+1 Ik heb uw berichten over PCA en andere gerelateerde kwesties gelezen en heb veel geleerd.
#9
+34
Peter Flom
2010-09-16 15:23:43 UTC
view on stackexchange narkive permalink

OK, een totaal niet-wiskundig antwoord:

Als je een heleboel variabelen hebt over een heleboel onderwerpen en je wilt het terugbrengen tot een kleiner aantal variabelen over diezelfde onderwerpen, terwijl je verliest zo min mogelijk informatie, dan is PCA één hulpmiddel om dit te doen.

Het verschilt van factoranalyse, hoewel ze vaak vergelijkbare resultaten geven, doordat FA probeert een klein aantal latente variabelen uit een grotere aantal waargenomen variabelen waarvan wordt aangenomen dat ze verband houden met de latente variabelen.

Hey Peter! Goed om je hier te zien. Dit is een heel goed, eenvoudig, geen wiskundig antwoord.
+1 voor het noemen van FA, dat niemand anders lijkt te bespreken, en waar de verklaringen van sommige mensen mee lijken te versmelten.
Lijkt geen verschil te zijn in de doelstellingen van PCA en FA - beide zijn bedoeld om te roteren, zodat je de belangrijkste factoren kunt zien (latente vectoren, of eigendimensions of enkelvoudige vectoren of wat dan ook). Maar FA lijkt geen algoritme te zijn, maar een familie van gerelateerde technieken (voor elkaar en voor SVD en PCA) met dienovereenkomstig slecht gedefinieerde doelen (dat wil zeggen divers en wederzijds inconsistent, dus verschillende varianten 'optimaliseren' verschillende dingen).
Zou het juist zijn om te zeggen dat PCA een van de vele mogelijke manieren is om factoranalyse uit te voeren?
De terminologie op dit gebied is notoir inconsistent.
#10
+33
Antoni Parellada
2015-05-06 10:31:41 UTC
view on stackexchange narkive permalink

Na het uitstekende bericht van JD Long in deze thread, zocht ik naar een eenvoudig voorbeeld en de R-code die nodig is om de PCA te produceren en vervolgens terug te gaan naar de oorspronkelijke gegevens. Het gaf me uit de eerste hand geometrische intuïtie, en ik wil delen wat ik heb. De dataset en code kunnen direct worden gekopieerd en geplakt in R-vorm Github.

Ik heb een dataset gebruikt die ik hier online vond over halfgeleiders, en Ik heb het bijgesneden tot slechts twee dimensies - "atoomnummer" en "smeltpunt" - om het plotten te vergemakkelijken.


Als voorbehoud is het idee louter illustratief voor het rekenproces: PCA wordt gebruikt om meer dan twee variabelen terug te brengen tot enkele afgeleide hoofdcomponenten, of om collineariteit te identificeren, ook in het geval van meerdere kenmerken. Het zou dus niet veel toepassing vinden in het geval van twee variabelen, noch zou het nodig zijn om eigenvectoren van correlatiematrices te berekenen, zoals aangegeven door @amoeba.


Verder Heb ik de waarnemingen ingekort van 44 naar 15 om de taak van het volgen van individuele punten te vergemakkelijken. Het uiteindelijke resultaat was een skeletgegevensframe ( dat1 ):

  compounds atomic.no melting.pointAIN 10 498.0AIP 14 625.0AIAs 23 1011.5 ... ... ... 

De kolom "compounds" geeft de chemische samenstelling van de halfgeleider aan, en speelt de rol van rijnaam.

Dit kan als volgt worden gereproduceerd (klaar om te kopiëren en plakken op de R-console):

  # install.packages ('gsheet') bibliotheek ( gsheet) dat <- read.csv (url ("https://raw.githubusercontent.com/RInterested/DATASETS/gh-pages/semiconductors.csv")) colnames (dat) [2] <- "atomic.no" dat1 <- subset (dat [1: 15,1: 3]) row.names (dat1) <- dat1 $ compoundsdat1 <- dat1 [, - 1]  

De gegevens waren toen geschaald:

  X <- apply (dat1, 2, function (x) (x - mean (x)) / sd (x)) # Dit centreert gegevenspunten rond de gemiddelde en standaardiseert door te delen door SD. # Het is het equivalent van `X <-schaal (dat1, midden = T, schaal = T)` 

De lineaire algebra-stappen volgden:

  C <- cov (X) # Covariantiematrix (gecentreerde gegevens)  

$ \ begin {bmatrix} & \ text {at_no} & \ text {melt_p} \\\ text {at_no} &1&0.296 \\\ text {melt_p} &0.296&0.296 >

De correlatiefunctie cor (dat1) geeft dezelfde output op de niet-geschaalde data als de functie cov (X) op de geschaalde data .

  lambda <- eigen (C)  $ values ​​# Eigenwaardenlambda_matrix <- diag (2) * eigen (C) $  waarden # Eigenwaardenmatrix  

$ \ begin {bmatrix} & \ kleur {paars} {\ lambda _ {\ text {PC1}}} & \ kleur {oranje} {\ lambda _ {\ text {PC2}}} \\ &1.296422& 0 \\ &0&0.7035783} \ $ {end / span>

  e_vectors <- eigen (C) $ vectors # Eigenvectoren  

$ \ frac {1} {\ sqrt {2}} \ begin {bmatrix} & \ color {purple} {\ text {PC1}} & \ color {orange} {\ text {PC2}} \ \ &1& \, \, \, \, \, 1 \\ &1&-1 \ end {bmatrix} $

Aangezien de eerste eigenvector aanvankelijk terugkeert als $ \ sim \ small [-0.7, -0.7] $ we kiezen ervoor om het te veranderen in $ \ small [0.7, 0.7] $ om het is consistent met ingebouwde formules door:

  e_vectors [, 1] = - e_vectors [, 1]; colnames (e_vectors) <- c ("PC1", "PC2")  

De resulterende eigenwaarden waren $ \ small 1.2964217 $ en $ \ small 0.7035783 $ . Onder minder minimalistische omstandigheden zou dit resultaat hebben geholpen om te beslissen welke eigenvectoren moesten worden opgenomen (grootste eigenwaarden). De relatieve bijdrage van de eerste eigenwaarde is bijvoorbeeld $ \ small 64,8 \% $ : eigen (C) $ waarden [1] / som (eigen ( C) $ waarden) * 100 , wat betekent dat het verantwoordelijk is voor $ \ sim \ small 65 \% $ van de variabiliteit in de gegevens. De variabiliteit in de richting van de tweede eigenvector is $ 35,2 \% $ . Dit wordt meestal weergegeven op een scree-plot die de waarde van de eigenwaarden weergeeft:

enter image description here

We zullen beide eigenvectoren opnemen gezien de kleine omvang van dit voorbeeld van een speelgoeddataset, waarbij we begrijpen dat het uitsluiten van een van de eigenvectoren zou leiden tot een reductie van de dimensionaliteit - het idee achter PCA.

De scorematrix werd bepaald als de matrixvermenigvuldiging van de geschaalde data ( X ) door de matrix van eigenvectoren (of "rotaties") :

  score_matrix <- X% *% e_vectors # Identiek aan de vaak gevonden bewerking: t (t (e_vectors)% *% t (X))  

Het concept omvat een lineaire combinatie van elke invoer (in dit geval rij / onderwerp / observatie / supergeleider) van de gecentreerde (en in dit geval geschaalde) gegevens gewogen door de rijen van elke eigenvector , zodat we in elk van de laatste kolommen van de scorematrix een bijdrage vinden van elke variabele (kolom) van de gegevens (de volledige X ), MAAR alleen de bijbehorende eigenvector heeft deelgenomen aan de berekening (dwz de eerste eigenvector $ [0.7, 0.7] ^ {T} $ zal bijdragen aan $ \ text {PC} \, 1 $ (hoofdcomponent 1) en $ [0.7, -0.7] ^ {T} $ naar $ \ text {PC} \, 2 $ , zoals in:

enter image description here

Daarom zal elke eigenvector elke variabele anders beïnvloeden, en dit zal worden weerspiegeld in de "ladingen" van de PCA. In ons geval is het minteken in de tweede component van de tweede eigenvector $ [0.7, - 0.7] $ verandert het teken van de smeltpuntwaarden in de lineaire combinaties die PC2 produceren, terwijl het effect van de eerste eigenvector consistent positief zal zijn:

enter image description here

De eigenvectoren worden geschaald naar $ 1 $ :

  > apply (e_vectors, 2, function (x) sum (x ^ 2)) PC1 PC2 1 1 

terwijl de ( ladingen ) zijn de eigenvectoren geschaald door de eigenwaarden (ondanks de verwarrende terminologie in de ingebouwde R-functies die hieronder worden weergegeven). Bijgevolg kunnen de ladingen worden berekend als:

  > e_vectors% *% lambda_matrix [, 1] [, 2] [1,] 0.9167086 0.497505 [ 2,] 0.9167086 -0.497505> prcomp (X)  $ rotation% *% diag (princomp (covmat = C) $  sd ^ 2) [, 1] [, 2 ]
atomic.no 0.9167086 0.497505melting.point 0.9167086 -0.497505  

Het is interessant op te merken dat de geroteerde datawolk (de scoregrafiek) een variantie zal hebben langs elke component (pc) gelijk aan de eigenwaarden :

  > apply (score_matrix, 2, function (x) var (x)) PC1 PC2 1.2964217 0.7035783 > lambda [1] 1.2964217 0.7035783  

Door gebruik te maken van de ingebouwde functies kunnen de resultaten worden gerepliceerd:

  # Voor de SCORE MATRIX : prcomp (X)  $ x # of ... princomp (X) $  scores # De tekens van de kolom PC 1 worden omgekeerd. # en voor EIGENVECTOR MATRIX: prcomp (X)  $ rotation # of ... princomp (X) $  ladingen # en voor EIGENVALUES: prcomp (X)  $ sdev ^ 2 # of ... princomp (covmat = C) $  sd ^ 2  

Als alternatief kan de enkelvoudige waarde decompositio n ( $ \ text {U} \ Sigma \ text {V} ^ \ text {T} $ ) methode kan worden toegepast om PCA handmatig te berekenen; in feite is dit de methode die wordt gebruikt in prcomp () . De stappen kunnen worden gespeld als:

  svd_scaled_dat <-svd (schaal (dat1)) eigen_vectoren <- svd_scaled_dat  $ veigen_values ​​<- (svd_scaled_dat $  d / sqrt (nrow (dat1) - 1)) ^ 2scores<-scale (dat1)% *% eigen_vectoren  

Het resultaat is hieronder weergegeven, met eerst de afstanden van de individuele punten tot de eerste eigenvector, en op een tweede plot de orthogonale afstanden tot de tweede eigenvector:

enter image description here

Als we in plaats daarvan de waarden van de scorematrix (PC1 en PC2) uitzetten - niet langer "melting.point" en "atomic.no", maar echt een verandering van basis van de puntcoördinaten met de eigenvectoren als basis, deze afstanden zouden behouden blijven, maar zouden natuurlijk loodrecht op de xy-as komen te staan:

enter image description here

De truc was nu om het originele gegevens . De punten waren getransformeerd door een eenvoudige matrixvermenigvuldiging met de eigenvectoren. Nu werden de gegevens teruggedraaid door vermenigvuldiging met de inverse van de matrix van eigenvectoren met een resulterende duidelijke verandering in de locatie van de gegevenspunten. Let bijvoorbeeld op de verandering in de roze stip "GaN" in het linker bovenste kwadrant (zwarte cirkel in de linker plot, hieronder), en keert terug naar de oorspronkelijke positie in het linker onderste kwadrant (zwarte cirkel in de rechter plot, hieronder).

Nu hadden we eindelijk de oorspronkelijke gegevens hersteld in deze "gedraaide" matrix:

enter image description here

Na de wijziging van de rotatiecoördinaten van de gegevens in PCA, moeten de resultaten worden geïnterpreteerd, en dit proces heeft meestal betrekking op een dubbeldekker , waarop de gegevenspunten worden uitgezet ten opzichte van de nieuwe eigenvectorcoördinaten, en de originele variabelen worden nu over elkaar heen gelegd als vectoren. Het is interessant om de gelijkwaardigheid op te merken in de positie van de punten tussen de plots in de tweede rij rotatiegrafieken hierboven ("Scores met xy-as = eigenvectoren") (aan de linkerkant in de plots die volgen), en de biplot (aan de rechterkant):

enter image description here

De superpositie van de originele variabelen als rode pijlen biedt een pad naar de interpretatie van PC1 als een vector in de richting (of met een positieve correlatie) met zowel atomic no en smeltpunt ; en van PC2 als een component samen met toenemende waarden van atomair nr maar negatief gecorreleerd met smeltpunt , consistent met de waarden van de eigenvectoren:

  PCA <- prcomp (dat1, center = T, scale = T) PCA $ rotatie PC1 PC2atomic.no 0.7071068 0.7071068 smeltpunt 0.7071068 -0.7071068  

Als laatste punt is het legitiem om ons af te vragen of we aan het eind van de dag gewoon de kleinste kwadraten op een andere manier doen, waarbij we de eigenvectoren gebruiken om hypervlakken te definiëren via datawolken, vanwege de duidelijke overeenkomsten. Om te beginnen is het doel van beide methoden anders: PCA is bedoeld om de dimensionaliteit te verminderen om de belangrijkste drijfveren in de variabiliteit van datasets te begrijpen, terwijl OLS bedoeld is om de relatie tussen een "afhankelijke" variabele en een of meerdere verklarende variabelen te extraheren. / p>

In het geval van een enkele verklarende variabele zoals in het speelgoedvoorbeeld in dit bericht, kunnen we ook de OLS-regressielijn over de datawolk heen leggen om op te merken hoe OLS de som van verticale kwadraatafstanden van de gemonteerde lijn reduceert naar de punten, in tegenstelling tot orthogonale lijnen op de eigenvector in kwestie:

enter image description here

In OLS zijn de gekwadrateerde residuen de hypothenen van de loodlijnen van de punten naar de OLS-lijn, en resulteren ze dus in een hogere som van gekwadrateerde residuen ( 12.77 ) dan de som van de vierkante loodrechte segmenten van de punten naar de OLS-lijn ( 11.74 ). Dit laatste is waar PCA voor is geoptimaliseerd: (Wikipedia) "PCA kwantificeert gegevensrepresentatie als het totaal van de L2-norm van de datapuntprojecties in de deelruimte, of equivalent de totale Euclidische afstand van de oorspronkelijke punten tot hun geprojecteerde deelruimte-representaties . " Deze deelruimte heeft de orthogonale eigenvectoren van de covariantiematrix als basis. Het bewijs van deze bewering is hier te vinden, samen met de relevante eer aan Marc Deisenroth.

Het feit dat de dataset op nul is geschaald en gecentreerd, vermindert natuurlijk de onderschepping van de OLS naar nul, en de helling naar de correlatie tussen de variabelen, 0.2964 .


Deze interactieve tutorial door Victor Powell geeft onmiddellijke feedback over de veranderingen in de eigenvectoren wanneer de datawolk wordt gewijzigd.


Alle code met betrekking tot dit bericht is hier te vinden.

+1 voor de moeite en in het bijzonder voor de animatie!Maar men moet in gedachten houden dat PCA op de correlatiematrix van twee variabelen een beetje een speciaal geval is omdat * alle * correlatiematrices van twee variabelen [identieke eigenvectoren hebben] (http://stats.stackexchange.com/questions/140434): een van hen zal altijd [0,7 0,7] zijn (0,7 is een 1 / sqrt (2)).Dit is niet het geval voor covariantiematrices, of voor correlatiematrices in hogere dimensies.
@amoeba Ik voelde me enigszins gerechtvaardigd in mijn kale speelgoedvoorbeeld toen ik [deze uitleg van PCA] (https://youtu.be/Y4f7K9XF04k?t=1884) tegenkwam door de eerbiedwaardige MIT lineaire algebra-maven [Prof.Gilbert Strang] (https://en.wikipedia.org/wiki/Gilbert_Strang) ook met slechts twee variabelen.Ongetwijfeld een toevalstreffer :-)
#11
+32
isomorphismes
2014-01-16 11:22:16 UTC
view on stackexchange narkive permalink

De wiskunde is het gemakkelijkst in 2D.

Elke matrix komt overeen met een lineaire transformatie. Lineaire transformaties kunnen worden gevisualiseerd door een gedenkwaardige figuur in het vliegtuig te nemen en te zien hoe die figuur wordt vervormd door de lineaire transformatie:

linear transformations (foto: Flanigan & Kazdan)

  • eigenvectoren zijn dezelfde vectoren. Ze wijzen na de transformatie in dezelfde richting als vroeger. mona lisa eigenvectors (blauw bleef hetzelfde, dus die richting is een eigenvector van $ \ tt {shear} $ .)
  • Eigenwaarden zijn hoeveel de gelijkblijvende vectoren groeien of krimpen. (blauw bleef dezelfde grootte, dus de eigenwaarde zou $ \ maal 1 $ zijn.)
  • PCA roteert je assen om beter af te stemmen op uw gegevens. PCA football
    (bron: weigend.com) PCA gebruikt de eigenvectoren van de covariantiematrix om erachter te komen hoe u de gegevens. Omdat rotatie een soort lineaire transformatie is, zijn uw nieuwe dimensies sommen van de oude, zoals $ \ langle 1 \ rangle = 23 \% \ cdot [1] + 46 \% \ cdot [2] + 39 \% \ cdot [3] $ .

De reden waarom mensen die met echte gegevens werken, geïnteresseerd zijn in eigenvectoren en lineaire transformaties is dat in verschillende contexten, "linear" ( $ f (a \ cdot x + b \ cdot y) = a \ cdot f (x) + b \ cdot f ( y) $ ) kan betrekking hebben op echt interessante dingen. Bedenk bijvoorbeeld wat die eigenschap betekent als $ + $ en $ \ cdot $ een nieuwe betekenis krijgen, of als $ a $ en $ b $ afkomstig zijn uit een interessant veld, of $ x $ en $ y $ uit een interessante ruimte. Bijvoorbeeld:

faces

PCA zelf is een ander voorbeeld, het meest bekend bij statistici. Sommige van de andere antwoorden, zoals die van Freya, geven real-world applicaties van PCA.

$$ {} $$ $ \ dagger $ Ik vind het volkomen verrassend dat zoiets eenvoudigs als "rotatie" zoveel dingen kan doen op verschillende gebieden, zoals het opstellen van producten voor een aanbevelingssysteem $ \ overset {\ text {vergelijkbaar hoe?}} {\ longleftarrow \! \! \! - \! \! - \! \! - \! \! - \! \! - \ ! \! \! \ longrightarrow} $ waarin geopolitiek conflict wordt uitgelegd. Maar misschien is het niet zo verwonderlijk als je aan natuurkunde denkt, waar een betere basis kiezen (bijvoorbeeld door de $ \ mathrm {x} $ -as de richting van de beweging in plaats van $ 42.8 \% [\ mathrm {x}] \ oplus 57.2 \% [\ mathrm {y}] $ zal ondoorgrondelijke vergelijkingen veranderen in eenvoudige ).

Het is eigenlijk een beetje toevallig dat rotaties lineair zijn en dus een handige manier om te beschrijven wat er aan de hand is voor niet-geometrische gegevens. Het toeval heeft betrekking op de kwadratische aard van zowel de Cartesiaanse / Euclidische ruimte als de Central Limit Theorem / Gaussians. Namelijk. sigma's tellen kwadratisch op zoals orthogonale dimensies, en dat is waar onze ND-rotatie / orthogonale terminologie voortkomt uit analogie met 2D- en 3D-ruimte.
@DavidMWPowers Interessant. Ik denk aan rotaties vanuit het standpunt van de lineaire algebra.
#12
+17
Phillip Cloud
2011-01-06 03:11:38 UTC
view on stackexchange narkive permalink

Van iemand die PCA veel heeft gebruikt (en het ook aan een paar mensen heeft proberen uit te leggen), hier is een voorbeeld uit mijn eigen vakgebied van neurowetenschappen.

Wanneer we opnemen van iemands hoofdhuid we doen het met 64 elektroden. We hebben dus in feite 64 nummers in een lijst die de spanning vertegenwoordigen die door de hoofdhuid wordt afgegeven. Omdat we nu opnemen met een precisie van een microseconde, als we een experiment van 1 uur hebben (vaak zijn ze 4 uur), dan geeft dat ons 1e6 * 60 ^ 2 == 3.600.000.000 tijdstippen waarop een spanning werd opgenomen op elke elektrode, zodat we nu een matrix van 3.600.000.000 x 64 hebben. Aangezien een belangrijke aanname van PCA is dat uw variabelen gecorreleerd zijn, is het een geweldige techniek om deze belachelijke hoeveelheid gegevens terug te brengen tot een hoeveelheid die traceerbaar is. Zoals al meerdere keren is gezegd, vertegenwoordigen de eigenwaarden de hoeveelheid variantie die wordt verklaard door de variabelen (kolommen). In dit geval vertegenwoordigt een eigenwaarde de variantie in de spanning op een bepaald tijdstip bijgedragen door een bepaalde elektrode. Dus nu kunnen we zeggen: "Nou, elektrode x op het tijdstip y is waar we ons op moeten concentreren voor verdere analyse, want daar gebeurt de meeste verandering". Ik hoop dat dit helpt. Ik hou van die regressieplots!

#13
+15
Joel Spolsky
2010-09-16 07:04:43 UTC
view on stackexchange narkive permalink

Misschien ben ik een slecht persoon om dit te beantwoorden, omdat ik de spreekwoordelijke grootmoeder ben die het concept aan mij heeft uitgelegd en niet veel meer, maar hier gaat het:

Stel dat je een populatie hebt. Een groot deel van de bevolking sterft dood door hartaanvallen. Je probeert erachter te komen waardoor de hartaanvallen worden veroorzaakt.

Je hebt twee soorten gegevens: lengte en gewicht.

Nu is het duidelijk dat er EEN ENKELE relatie is tussen gewicht en hartaanvallen , maar de correlatie is niet echt sterk. Er zijn een aantal zware mensen die veel hartaanvallen hebben, maar sommige niet.

Nu doe je een PCA, en het vertelt je dat het gewicht gedeeld door de lengte ('body mass') een een veel waarschijnlijkere voorspeller van hartaanvallen dan gewicht of lengte, want, zie, de 'realiteit' is dat het lichaamsmassa de hartaanvallen veroorzaakt.

In wezen doe je PCA omdat je aan het meten bent een heleboel dingen en je weet niet echt of dit echt de belangrijkste componenten zijn of dat er een diepere onderliggende component is die je niet hebt gemeten.

[Voel je vrij om dit te bewerken als het helemaal uit is baseren. Ik begrijp het concept echt niet dieper dan dit].

Welkom op de statistieken-site @Joel! Als je de kans krijgt, kun je ook bijdragen aan de discussie over ons voorgestelde gedistribueerde StackExchange-gegevensanalyseproject: http://stats.stackexchange.com/questions/2512/what-should-be-our-first-polystats-project.
Uitstekend voorbeeld, maar technisch gezien kan PCA de verklaring van het lichaamsgewicht niet vinden, omdat het alleen lineaire verklaringen kan vinden, dat wil zeggen gewogen sommen van de oorspronkelijke variabelen. Als u echter logboeken van uw invoervariabelen neemt, wordt de verhouding een verschil, en als het de juiste verklaring is, kan PCA het vinden.
#14
+13
Raffael
2013-11-16 02:43:46 UTC
view on stackexchange narkive permalink

Dit antwoord geeft een intuïtieve en niet-wiskundige interpretatie:

De PCA geeft je een set orthogonale vectoren binnen een hoog-dimensionale puntenwolk. De volgorde van de vectoren wordt bepaald door de informatie die wordt overgedragen nadat alle punten op de vectoren zijn geprojecteerd.

Met andere woorden: de eerste hoofdcomponentvector zal u het meeste vertellen over de puntenwolk nadat alle punten op de vectoren zijn geprojecteerd. vector. Dit is natuurlijk een intuïtieve interpretatie.

Bekijk deze ellipsoïde (volg link voor een 3D-model):

enter image description here

Als je één vector zou moeten kiezen die een eendimensionale subruimte vormt waarop de punten van de ellipsoïden worden geprojecteerd. Welke zou je kiezen omdat deze de meeste informatie over de originele set in 3 dimensies weergeeft?

Ik vermoed de rode langs de langste as. En dit is eigenlijk de berekende 1e hoofdcomponent! Welke volgende - ik zou de blauwe kiezen langs de volgende langste as.

Meestal wilt u een reeks punten projecteren vanuit een hoogdimensionale ruimte op een tweedimensionaal vlak of in een drie dimensionale ruimte.

enter image description here


http://www.joyofdata.de/blog/illustration-of-principal-component-analysis-pca/

#15
+12
BajaBob
2013-11-06 06:22:18 UTC
view on stackexchange narkive permalink

Hier is er een voor oma:

In onze stad zijn er straten die naar het noorden en het zuiden gaan, sommige naar het oosten en westen, en zelfs sommige naar het noordwesten en zuidoosten, sommige naar het noordoosten en weer andere naar het ZW. Op een dag meet een man al het verkeer op alle straten, hij merkt dat het meeste verkeer diagonaal gaat, van noordwest naar zuidoost, de tweede grootste staat loodrecht hierop en loopt van noordoost naar zuidwest en de rest is vrij klein. Dus hij tekent een groot vierkant en legt een grote lijn van links naar rechts en zegt dat dit de NW tot SE is, en trekt dan een andere lijn verticaal op en neer door het midden. Hij zegt dat dit de op een na meest drukke richting is voor verkeer (NE naar ZW). De rest is klein, dus het kan worden genegeerd.

De lijn links rechts is de eerste eigenvector en de lijn omhoog is de tweede eigenvector. Het totale aantal auto's dat naar links en rechts gaat, is de eerste eigenwaarde en die naar boven en naar beneden is de tweede eigenwaarde.

Bij onderzoek lijkt deze analogie uiteen te vallen. Wat als de grootste en op een na grootste verkeersrichting niet orthogonaal zijn? Hoe helpt uw ​​analogie ons in een dergelijk geval een PCA te begrijpen?
Ik denk dat oma begrijpt wat orthogonaal betekent? Ja, er zijn enkele gebreken, maar het is een begin. Ik vind het geweldig dat er hier zoveel antwoorden zijn geweest.
Of "oma" een bericht begrijpt of niet, het moet redelijk duidelijk en correct zijn. Uw analogie lijkt geen van beide doelen te bereiken. Dat kan zijn omdat ik de analogie niet begrijp: ik kan het niet verbinden met wat PCA is of doet. Misschien zou je kunnen verduidelijken hoe de analogie werkt, zodat andere lezers niet zo verbijsterd raken als ik.
Het feit dat ze niet orthogonaal zijn, betekent dat je ICA of FA nodig hebt, niet PCA. Als oma naar Star Trek keek (ja, zij is die generatie) wanneer ze het gehandicapte schip onder een hoek laten zien, zou PCA de neiging hebben om het referentievlak te herstellen dat relevant is voor de schaal en het uitzicht (het galactische vlak of de assen van het schip).
-1.Ik ben het met @whuber eens dat deze analogie niet werkt.Wat zouden de gegevens hier moeten zijn, van welke covariantiematrix zijn deze "eigenvectoren"?Ik begrijp het helemaal niet.
Ik denk dat deze analogie geweldig werkt!Er werd een stad aangelegd met straten NS en EW.In de loop van de tijd werd de luchthaven gebouwd in SW en een belangrijke zakenwijk in NO, terwijl er in beide gebieden woonwijken zijn.Om de een of andere reden wonen de meeste mensen die op de luchthaven werken in NO en de meesten die in het bedrijf werken, in SW.Evenzo voor het industriepark en grote recreatiezones in NW en ZO.Als je het verkeer op kleine straten wilt verminderen door snelwegen te bouwen, doe dan PCA op de snelheidsvectoren op elk kruispunt, het zou je vertellen om de snelwegen NW-ZO en NE-ZW te bouwen.
#16
+11
bill_e
2012-09-11 13:24:55 UTC
view on stackexchange narkive permalink

Hoewel er veel voorbeelden worden gegeven om een ​​intuïtief begrip van PCA te geven, kan dat feit het in het begin bijna moeilijker maken om te begrijpen, althans voor mij.

"Wat was het enige aan PCA dat al deze verschillende voorbeelden uit verschillende disciplines gemeen hebben ??"

Wat me intuïtief hielp te begrijpen, waren een paar wiskundige parallellen, aangezien het duidelijk is dat wiskunde het makkelijke gedeelte voor je is, hoewel dit niet helpt om het uit te leggen aan je grootmoeder ...

Denk aan een regularisatieprobleem en probeer

$$ || XB - Y || = 0 $$

Of deel in het Engels uw gegevens $ Y $ in twee andere matrices die op de een of andere manier licht zullen werpen op de gegevens? Als die twee matrices goed werken, mag de fout tussen hen en $ Y $ niet te veel zijn.

PCA geeft u een nuttige factorisatie van $ Y $ , om alle redenen die andere mensen hebben gezegd. Het verdeelt de gegevensmatrix die u heeft, $ Y $ , in twee andere bruikbare matrices. In dit geval zou $ X $ een matrix zijn waarin de kolommen de eerste $ k $ pc's zijn die u bijhield , en $ B $ is een matrix die u een recept geeft om de kolommen van matrix $ Y $ te reconstrueren met de kolommen van $ X $ . $ B $ is de eerste $ k $ rijen van $ S $ , en alle $ V $ transponeren. De eigenwaarden op de diagonaal van $ S $ wegen in feite welke pc's het belangrijkst zijn. Dat is hoe de wiskunde je expliciet vertelt welke pc's het belangrijkst zijn: ze worden elk gewogen op basis van hun eigenwaarden. Vervolgens vertelt de matrix $ V ^ \ mathrm {T} $ de pc's hoe ze moeten combineren.

Ik denk dat mensen veel intuïtieve voorbeelden gaven, dus ik wilde dat gewoon delen. Toen ik dat zag, begreep ik hoe het werkt. Er is een wereld van interessante algoritmen en methoden die soortgelijke dingen doen als PCA. Spaarzame codering is een subveld van machine learning dat helemaal draait om het verdelen van matrix $ A $ in twee andere nuttige en interessante die patronen weerspiegelen in $ A $ .

#17
+10
Peter Waksman
2013-03-21 02:03:21 UTC
view on stackexchange narkive permalink

Hier is een wiskundig antwoord: de eerste hoofdcomponent is de langste dimensie van de gegevens. Bekijk het en vraag: waar zijn de gegevens het breedst? Dat is het eerste onderdeel. Het volgende onderdeel is de loodlijn. Dus een sigaar met gegevens heeft een lengte en een breedte. Het is logisch voor alles dat een beetje langwerpig is.

Helaas hangt de juistheid van dit antwoord af van hoe de vage uitdrukking "langst" wordt geïnterpreteerd. Veel natuurlijke en relevante interpretaties, zoals de * diameter *, zouden verkeerd zijn.
PCA werkt eigenlijk best goed met verschillende soorten natuurlijke manieren om de afmeting / grootte te meten. U hoeft alleen de covariantiematrix te vervangen door een matrix om de "dimensie" in elke richting te meten (de matrix hoeft alleen positief gedefinieerd of symmetrisch te zijn). Dit is net zoals QuickSort werkt voor verschillende ordeningsoperatoren, maar u krijgt verschillende resultaten voor verschillende bestellende operators.
#18
+10
Jeremias Jackson
2012-12-10 02:49:43 UTC
view on stackexchange narkive permalink

De manier waarop ik de hoofdcomponenten begrijp is als volgt: gegevens met meerdere variabelen (lengte, gewicht, leeftijd, temperatuur, golflengte, percentage overleving, enz.) kunnen in drie dimensies worden gepresenteerd om verwantschap te plotten.

Als u nu op de een of andere manier zin wilt hebben in "3D-gegevens", wilt u misschien weten welke 2D-vlakken (doorsneden) van deze 3D-gegevens de meeste informatie bevatten voor een bepaalde reeks variabelen. Deze 2D-vlakken zijn de belangrijkste componenten, die een deel van elke variabele bevatten.

Beschouw hoofdcomponenten als variabelen zelf, met samengestelde kenmerken van de oorspronkelijke variabelen (deze nieuwe variabele kan worden beschreven als onderdeelgewicht, onderdeelhoogte, onderdeelleeftijd, enz.). Wanneer u de ene hoofdcomponent (X) tegen de andere (Y) uitzet, bouwt u een 2D-kaart die geometrisch correlaties tussen oorspronkelijke variabelen kan beschrijven. Nu het nuttige deel: aangezien elk onderwerp (observatie) dat wordt vergeleken, wordt geassocieerd met waarden voor elke variabele, worden de onderwerpen (observaties) ook ergens op deze X Y-kaart gevonden. Hun locatie is gebaseerd op de relatieve bijdragen van elke onderliggende variabele (d.w.z. de ene observatie kan sterk worden beïnvloed door leeftijd en temperatuur, terwijl een andere meer kan worden beïnvloed door lengte en gewicht). Deze kaart toont ons grafisch de overeenkomsten en verschillen tussen onderwerpen en verklaart deze overeenkomsten / verschillen in termen van welke variabelen hen het meest karakteriseren.

#19
+9
Christian Bueno
2013-07-16 00:37:50 UTC
view on stackexchange narkive permalink

Ik zal een niet-wiskundig antwoord geven en een meer gedetailleerd overzicht in vogelvlucht van de motivatie-door-wiskunde in het tweede deel.


Non-Mathy:

De niet-wiskundige verklaring is dat PCA helpt bij hoog dimensionale gegevens door u te laten zien in welke richtingen uw gegevens heeft de meeste variantie. Deze aanwijzingen zijn de belangrijkste componenten . Als u eenmaal over deze informatie beschikt, kunt u in sommige gevallen besluiten om de hoofdcomponenten zelf als de betekenisvolle variabelen te gebruiken, en de dimensionaliteit van uw gegevens aanzienlijk verminderen door alleen de hoofdcomponenten met de meeste variantie te behouden ( verklarende kracht ).

Stel dat u bijvoorbeeld een vragenlijst voor politieke peilingen uitbrengt met 30 vragen, die elk een antwoord kunnen krijgen van 1 ( zeer mee oneens ) tot 5 ( helemaal mee eens ). Je krijgt heel veel reacties en nu heb je 30-dimensionale gegevens en je kunt er geen kop of munt uithalen. Dan denk je wanhopig om PCA uit te voeren en te ontdekken dat 90% van je variantie uit één richting komt, en die richting komt niet overeen met een van je assen. Na nadere inspectie van de gegevens concludeer je dan dat deze nieuwe hybride as overeenkomt met het politieke links-rechts spectrum, dwz het democratische / republikeinse spectrum, en ga je verder met het bekijken van de meer subtiele aspecten in de gegevens.


Mathy:

Soms helpt het om uit te zoomen en naar de wiskundige motivatie te kijken om wat licht te werpen op de betekenis.

Er is een speciale familie van matrices die kunnen worden omgezet in diagonale matrices door simpelweg uw coördinatenas te veranderen. Uiteraard worden ze de diagonaliseerbare matrices genoemd en elegant genoeg zijn de nieuwe coördinatenas die hiervoor nodig zijn inderdaad de eigenvectoren.

Het blijkt dat de covariantiematrix symmetrisch is en altijd diagonaliseerbaar zal zijn! In dit geval worden de eigenvectoren de hoofdcomponenten genoemd en wanneer je de covariantiematrix uitschrijft in eigenvectorcoördinaten, komen de diagonale ingangen (de enige links) overeen met de variantie in de richting van je eigenvectoren. Hierdoor weten we welke richtingen de meeste variantie hebben. Bovendien, aangezien de covariantiematrix diagonaal is in deze coördinaten, heb je slim alle correlaties tussen je variabelen geëlimineerd.

Zoals gebruikelijk in praktische toepassingen, gaan we ervan uit dat onze variabelen normaal verdeeld zijn en het is dus heel normaal om te proberen onze coördinaten te veranderen om het eenvoudigste plaatje te zien. Door uw belangrijkste componenten en hun respectievelijke eigenwaarden (variantie) te kennen, kunt u de dimensionaliteit van uw gegevens indien nodig verminderen en krijgt u ook een snel algemeen overzicht van waar de variatie in uw gegevens ligt.

Maar Aan het eind van de dag komt de wortel van al deze wenselijkheid voort uit het feit dat diagonale matrices veel gemakkelijker te hanteren zijn in vergelijking met hun slordige, meer algemene neven.

Bedankt voor je bijdrage. Het lijkt echter een onnodig enge interpretatie van PCA aan te pakken. (1) PCA is met vrucht toegepast op zeer niet-Gaussische datasets. (2) PCA is geen formele parametrische procedure; het is misschien beter om het als verkennend van geest te beschouwen. (3) * Alle * covariantiematrices, van elke soort multivariate distributie of data, zijn diagonaliseerbaar. Noch gaussianiteit (normaliteit) noch niet-degeneratie zijn vereisten. (Symmetrie van de matrix en met echte componenten [diagonaliseerbaarheid garanderen] (https://en.wikipedia.org/wiki/Spectral_theorem).)
Ik moet toegeven dat ik me schaam dat ik het vergeten ben, maar een goed punt is dat covariantiematrices in het algemeen diagonaliseerbaar zijn. Ik ga bewerken om dat weer te geven. Kunt u ook iets uitweiden over punt (2)? Ik ben niet bekend met het verschil tussen parametrische en niet-parametrische procedures.
#20
+8
Rorschach
2012-09-11 12:28:29 UTC
view on stackexchange narkive permalink

Enige tijd geleden probeerde ik dit PCA-algoritme te begrijpen en ik wilde een opmerking maken over eigenvectoren en eigenwaarden. In dat document stond dat het doel van EV's is om een ​​model van het grote model om te zetten naar een model van zeer klein formaat.

Bijvoorbeeld, in plaats van eerst de brug op ware grootte te bouwen en dan experimenten en tests uit te voeren. daarop is het mogelijk om EV's te gebruiken om een ​​zeer kleine brug te creëren waarbij alle factoren / hoeveelheden met dezelfde marge zullen worden verminderd en bovendien kan het werkelijke resultaat van tests en stressgerelateerde tests die erop zijn uitgevoerd, worden berekend en op de juiste manier worden vergroot zoals nodig voor het originele model. In zekere zin helpen EV's om samenvattingen van het origineel te maken .

Voor mij had deze uitleg een diepe betekenis voor wat ik probeerde te doen! Ik hoop dat het jou ook helpt!

-1.Misschien heb ik de analogie niet volledig op prijs gesteld, maar het ziet er nogal misleidend uit.PCA staat inderdaad (in zekere zin) het "converteren" van een "groot" model naar een "klein" model toe, maar het doet dit door de dimensionaliteit van de dataset te verminderen.Maar hoe is de kleine brug van lagere dimensionaliteit dan de grote ?!Ze zijn allebei 3D, nietwaar?
@amoeba: dit uittreksel komt uit een papier dat ik heb gelezen, dit zijn niet precies mijn woorden.Ik heb dit onderwerp al een hele tijd niet meer bestudeerd en ik ben het spoor kwijt.
#21
+8
user2792
2011-01-15 18:25:13 UTC
view on stackexchange narkive permalink

Waarom zo eigenwaarden / eigenvectoren?

Wanneer je PCA doet, wil je een orthogonale basis berekenen door de geprojecteerde variantie op elke basisvector te maximaliseren.

Nadat je eerdere basisvectoren hebt berekend, je wilt dat de volgende is:

  • orthogonaal op de vorige
  • norm 1
  • maximale geprojecteerde variantie, dwz met maximale covariantienorm

Dit is een beperkt optimalisatieprobleem, en de Lagrange-vermenigvuldigers (hier voor de geometrische intuïtie, zie Wikipedia-pagina) vertellen je dat de gradiënten van het doel (geprojecteerde variantie) en de beperking (eenheidsnorm) wees "parallel" bij het optimium.

Dit is hetzelfde als zeggen dat de volgende basisvector een eigenvector van de covariantiematrix moet zijn. De beste keuze bij elke stap is om degene te kiezen met de grootste eigenwaarde van de overige.

Absoluut * geen * uitleg aan een leek - orthogonale basisvectoren? projectievariantie maximaliseren? beperkt optimalisatieprobleem? Lagrange-vermenigvuldiger? Dit zijn termen met een sterk "jargon". Laat een leek zien die begrijpt wat deze betekenen en ik laat je een wiskundige / statisticus zien
#22
+8
shabbychef
2010-09-16 10:15:42 UTC
view on stackexchange narkive permalink

Ik zie PCA als een geometrisch hulpmiddel. Als je een aantal punten in 3-ruimte krijgt die vrijwel allemaal op een rechte lijn liggen, en je wilt de vergelijking van die lijn achterhalen, dan krijg je die via PCA (neem de eerste component). Als je een aantal punten in de 3-ruimte hebt die grotendeels vlak zijn, en je wilt de vergelijking van dat vlak ontdekken, doe dat dan via PCA (neem de minst significante componentvector en die zou normaal moeten zijn op het vlak).

#23
+7
David M W Powers
2014-01-11 09:43:05 UTC
view on stackexchange narkive permalink

Stel je voor dat oma zojuist haar eerste foto's en filmpjes heeft gemaakt met de digitale camera die je haar voor Kerstmis hebt gegeven, helaas laat ze haar rechterhand vallen als ze op de knop voor foto's drukt, en ze schudt ook behoorlijk tijdens de films. Ze merkt dat de mensen, bomen, hekken, gebouwen, deuropeningen, meubels, enz. Niet recht op en neer gaan, niet verticaal, en dat de vloer, de grond, de zee, de horizon niet goed horizontaal is, en de films zijn ook nogal wankel. Ze vraagt ​​of je haar kunt helpen ze te repareren, alle 3000 vakantiefoto's en ongeveer 100 video's thuis en op het strand (ze is Australisch), cadeautjes openen, wandelen in het land. Ze heeft fotosoftware waarmee je dat kunt doen, zegt ze. Je vertelt haar dat dat dagen zou duren en toch niet zal werken aan de video's, maar je kent technieken genaamd PCA en ICA die kunnen helpen. Je legt uit dat je onderzoek eigenlijk alleen dit soort rotatie van gegevens in de natuurlijke dimensies inhoudt, dat deze technieken de belangrijkste richtingen in de gegevens vinden, in dit geval de foto, en roteren zodat de belangrijkste horizontaal is, de tweede. verticaal is (en het kan zelfs doorgaan voor meer dimensies die we ons niet zo goed kunnen voorstellen, hoewel tijd ook een dimensie is in films).

-

Technische kant. In feite zou je waarschijnlijk je doctoraat kunnen behalen door dit voor haar te doen, en er is een belangrijk artikel van Bell en Sejnowski (1997) over onafhankelijke componenten van afbeeldingen die overeenkomen met randen. Om dit te relateren aan PCA: ICA gebruikt PCA of SVD als een eerste stap om de dimensionaliteit en initiële benaderingen te verminderen, maar verbetert ze vervolgens waarbij niet alleen rekening wordt gehouden met tweede-orde-fouten (SSE) zoals PCA, maar met fouten van hoge orde - als het waar is ICA, allemaal hogere orden, hoewel veel algoritmen zich beperken tot de 3e of 4e. De PCA-componenten van lage orde worden sterk beïnvloed door de horizontale en verticale lijnen. Omgaan met camerabewegingen voor de films kan ook gebruik maken van PCA / ICA. Zowel voor de 2D-foto's als de 2½D-films heb je een paar representatieve trucs nodig om dit te bereiken.

Een andere toepassing die je aan oma zou kunnen uitleggen zijn eigenfaces - eigenvectoren van hogere orde kunnen de '7 basisemoties' benaderen (de gemiddeld gezicht voor elk van hen en de 'geschaalde rotatie' of lineaire combinatie om dat gemiddelde te doen), maar vaak vinden we componenten die verband houden met geslacht en ras, en sommige kunnen individuen of individuele kenmerken onderscheiden (bril, baard, enz.). Dit is wat er gebeurt als je weinig foto's hebt van een persoon en veel emoties / uitdrukkingen, maar je krijgt een andere vooringenomenheid als je veel gezichten hebt met neutrale uitdrukkingen. Het gebruik van ICA in plaats van PCA lijkt niet echt veel te helpen voor basisemoties, maar Bartlett en Sejnowsiki (1997) toonden aan dat het nuttige functies vond voor gezichtsherkenning.

Ik waardeer de moeite om te communiceren met voorbeelden en naar analogie. Het gebruik van afbeeldingen is echter jammer vanwege de grote kans dat oma niet zal begrijpen dat uw gevoel van 'draaien' weinig te maken heeft met het daadwerkelijk draaien van de assen van een * afbeelding *, noch zal ze waarschijnlijk begrijpen dat u "dimensie" in een abstracte zin waarin de foto's miljoenen dimensies hebben en niet slechts twee.
Ja, u moet het voorstellen als een puntenwolk, zoals bij de afbeeldingen in andere antwoorden. Voorbewerking met een of andere vorm van randdetectie en / of drempels zou waarschijnlijk deel uitmaken van de "trucs" die ik noemde. Maar om aan een complexe foto te opereren, heb je trucs nodig van een doctoraat.
@whuber Ik heb PCA (nou ja SVD) gebruikt om deze rotaties te vinden bij het uitvoeren van stereobeeldkalibratie! Het is absoluut hetzelfde gevoel van roteren.
#24
+7
Shlomo Argamon
2010-09-16 09:10:45 UTC
view on stackexchange narkive permalink

In feite vindt PCA nieuwe variabelen die lineaire combinaties zijn van de originele variabelen, zodat de gegevens in de nieuwe ruimte minder dimensies hebben. Denk aan een dataset die bestaat uit de punten in 3 dimensies op het oppervlak van een schuin omhoog gehouden vlakke plaat. In de originele x-, y-, z-as heb je 3 dimensies nodig om de gegevens weer te geven, maar met de juiste lineaire transformatie heb je er slechts 2.

In feite wat @Joel zei, maar alleen lineaire combinaties van de invoer variabelen.

#25
+4
Aksakal
2018-02-21 01:51:16 UTC
view on stackexchange narkive permalink

Ik denk dat iedereen PCA vanaf de verkeerde kant begint uit te leggen: vanuit eigenvectoren. Mijn antwoord begint op de juiste plek: coördinatensysteem. Eigenvectoren, en eigenprobleem in het algemeen, zijn het wiskundige hulpmiddel dat wordt gebruikt om het echte probleem aan te pakken, namelijk een verkeerd coördinatensysteem. Ik zal het uitleggen.

Laten we beginnen met een regel. Wat is een lijn? Het is een eendimensionaal object. U hebt dus maar één dimensie nodig om van het ene punt naar het andere te gaan. Op een vlak koppel je echter twee coördinaten aan elk punt van een lijn. Dat komt omdat met betrekking tot een lijn zelf het coördinatensysteem willekeurig wordt gekozen. Het coördinatensysteem, zou ik zeggen, weerspiegelt niet de innerlijke eendimensionale aard van de lijn. Als ik maar altijd de oorsprong van mijn Cartesiaans coördinatensysteem op de lijn zou zetten, en het zo zou draaien dat de x-as op de lijn lag, dan had ik geen y-as meer nodig! Al mijn punten staan ​​op één as, omdat een lijn een eendimensionaal object is.

Dat is waar PCA-uitleg zou moeten beginnen. Het eigen probleem is een hulpmiddel dat de rotatie uitvoert die ik heb beschreven, en de betekenis van variabelen plaatst de oorsprong op de lijn. PCA helpt de ware dimensies van de gegevens te onthullen zolang de relaties tussen de variabelen lineair zijn .

#26
+2
felipeduque
2015-12-08 22:17:23 UTC
view on stackexchange narkive permalink

Onthoud dat een eigenvector een vector is waarvan de transformatie parallel is aan dezelfde invoervector. Een eigenvector met een hoge eigenwaarde betekent dus dat de eigenvector een hoge mate van 'parallelliteit' heeft met de gegevens, wat betekent dat je de gegevens alleen met deze vector kunt weergeven en een lage fout in de nieuwe weergave kunt verwachten. Als je extra eigenvectoren met lagere eigenwaarden kiest, kun je meer details van de gegevens weergeven omdat je andere 'paralleliteiten' vertegenwoordigt - die niet zo prominent zijn als de eerste vanwege lagere eigenwaarden.

#27
+1
vonjd
2018-12-06 22:57:56 UTC
view on stackexchange narkive permalink

PCA is in feite een projectie van een hoger-dimensionale ruimte in een lager-dimensionale ruimte terwijl zoveel mogelijk informatie behouden blijft.

Ik schreef een blogpost waarin ik PCA uitleg via de projectie van een 3D-theepot ...

enter image description here

... op een 2D-vlak met behoud van zoveel mogelijk informatie:

enter image description here

Details en volledige R-code zijn te vinden in de post:
http://blog.ephorie.de/intuition-for-principal-component-analysis-pca

Ondanks de afbeeldingen is dit momenteel meer een commentaar dan een antwoord.Kunt u het uitbreiden, misschien door een samenvatting van de informatie op de link te geven?Posten in het SE-netwerk zouden op zichzelf moeten kunnen staan.
@gung: eerlijk genoeg - de kern is dat PCA in feite een projectie is van een hoger-dimensionale ruimte (in dit geval een 3D-theepot) op een lager dimensionale ruimte (in dit geval een 2D-vlak) met behoud van zoveel mogelijk informatie.Zal het in het antwoord veranderen.
Dat is zeker waar (& uitgelegd in veel andere bestaande antwoorden op deze thread), maar er zouden over het algemeen meer antwoorden in het SE-systeem moeten worden gepost, & ze zouden op zichzelf moeten kunnen staan als, bijvoorbeeld, de link doodgaat.
Het theepotvoorbeeld is interessant.U zegt dat PCA een projectie is naar een lagere dimensionale ruimte met behoud van zoveel mogelijk 'informatie'.Maar ... wat is informatie?In het geval van PCA betekent dit dat de totale variantie zo hoog mogelijk moet worden gehouden.Het theepotvoorbeeld lijkt meer op de bewering dat de informatie "het meest bewaard blijft" door een projectie in een bepaald vlak te gebruiken, maar dit verklaart maar weinig hoe PCA dit doet en of het ook de 'beste' keuze van 'informatie' is.LDA is bijvoorbeeld ook een projectie die bedoeld is om informatie te bewaren, maar niet hetzelfde als PCA.
Als je theepot meer rond / cirkelvormig (minder hoog) zou zijn geweest dan zou PCA een ander kruispunt hebben 'gekozen' om de meeste "informatie" te behouden.
#28
-4
jcourtright
2014-05-31 17:26:43 UTC
view on stackexchange narkive permalink

Misschien laat in deze analyses is de impliciete aanname dat gegevens uit groep I verschillen van groep II en men probeert te achterhalen welke component waarschijnlijk de belangrijkste factor is die bijdraagt ​​aan het verschil.

een PCA-analyse die resulteert in identieke ellipsoïden voor 2 verschillende sets, vertelt u vervolgens dat de twee sets niet verschillen door de parameters die u hebt gemeten.

Ik vraag me af of je aan MANOVA denkt. Als je twee aparte PCA's zou draaien, zou je alleen laten zien dat de correlatie-structuur vergelijkbaar was.
-1.Dit is een volledig misleidend antwoord, om de reden die wordt uiteengezet door @gung.Het probeert ook niet eens uit te leggen wat PCA is.


Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 2.0-licentie waaronder het wordt gedistribueerd.
Loading...