Pitanje:
Smisao analize glavnih komponenata, vlastitih vektora i vlastitih vrijednosti
claws
2010-09-16 01:05:56 UTC
view on stackexchange narkive permalink

Na današnjoj je klasi prepoznavanja uzoraka moj profesor govorio o PCA, vlastitim vektorima i vlastitim vrijednostima.

Shvatio sam njegovu matematiku. Ako se od mene zatraži da nađem vlastite vrijednosti itd., Učinit ću to ispravno poput stroja. Ali nisam razumio to. Nisam dobio svrhu. Nisam to osjetio.

Čvrsto vjerujem u sljedeći citat:

Nešto zapravo ne razumijete ako to ne možete objasniti svojoj baki. - Albert Einstein

Pa, ne mogu laiku ili baki objasniti ove koncepte.

  1. Zašto PCA, vlastiti vektori &? Koja je bila potreba za tim konceptima?
  2. Kako biste ih objasnili laiku?
Dobro pitanje. Slažem se i s citatom. Vjerujem da u statistici i matematici ima mnogo ljudi koji su vrlo inteligentni i mogu duboko ući u svoj posao, ali ne razumiju duboko na čemu rade. Ili to čine, ali nisu u stanju to objasniti drugima. Trudim se ovdje pružiti odgovore na jednostavnom engleskom i postavljam pitanja zahtijevajući plan engleskih odgovora.
To je postavljeno na web mjestu Matematika u srpnju, ali ne tako dobro i nije dobilo puno odgovora (ne iznenađuje, s obzirom na različit fokus tamo). http://math.stackexchange.com/questions/1146/intuitive-way-to-understand-principal-component-analysis
Evo veze na "Analiziranje ekoloških podataka" Alaina F. Zuura, Elene N. Ieno, Grahama M. Smitha, gdje je naveden primjer s grafoskopom i rukom: http://books.google.de/ knjige? id = mmPvf-l7xFEC & lpg = PA15 & ots = b_5iizOr3p & dq = Zuur% 20et% 20al% 20in% 20Analyzing% 20ecological% 20data & hl = en & pg = PA194 # v = onepage & q & f = false
Članak na dvije stranice koji objašnjava PCA za biologe: Ringnér. [Što je analiza glavnih komponenata?] (Http://www.nature.com/nbt/journal/v26/n3/full/nbt0308-303.html). Nature Biotechnology 26, 303-304 (2008)
Zamišljao sam poduži demo s hrpom grafikona i objašnjenja kad sam naletio na [ovo] (http://www.youtube.com/watch?v=BfTMmoDFXyE).
Slično objašnjenju Zuura i suradnika u Analizi ekoloških podataka gdje govore o projiciranju ruke na grafoskop. Nastavljate rotirati ruku tako da projekcija na zidu izgleda prilično slično onome što mislite da bi ruka trebala izgledati.
Ovo me pitanje dovelo do dobrog rada, i iako mislim da je to sjajan citat, to nije od Einsteina. Ovo je uobičajena pogrešna atribucija, a vjerojatniji izvorni citat vjerojatno je ovaj od Ernesta Rutherforda koji je rekao, "Ako ne možete objasniti svoju fiziku barmenici, to vjerojatno nije baš dobra fizika." Svejedno hvala što ste pokrenuli ovu temu.
Alice Calaprice, _The ultimate quotable Einstein_, Princeton U.P. 2011. ovaj navod ovdje označava kao jedan od mnogih "Vjerojatno ne Einsteinova". Vidi str. 482.
[Veza] (http://stats.stackexchange.com/a/65817/3277) na geometrijski prikaz PCA vs regresije vs kanonske korelacije.
Evo još jednog intuitivnog objašnjenja za PCA: [laički uvod u analizu glavnih komponenata (za 100 sekundi)] (http://www.youtube.com/watch?v=BfTMmoDFXyE)
Objašnjenje zašto računala povećavaju odstupanja i zašto su pravokutna: http://stats.stackexchange.com/a/110546/3277.A što je "varijansa" u PCA: http://stats.stackexchange.com/a/22571/3277.
Pogledajte ovu poveznicu: - http://georgemdallas.wordpress.com/2013/10/30/principal-component-analysis-4-dummies-eigenvectors-eigenvalues-and-dimension-reduction/ Izvrsno objašnjenje za PCA!
Ne mogu ništa objasniti baki, jer je mrtva.Znači li to da ništa ne razumijem ?!Ipak bi možda bilo zabavnije objašnjavati stvari konobarici ...
Ovaj mali video daje apstraktnu ideju o PCA https://www.youtube.com/watch?v=BfTMmoDFXyE
Zanimljiv citat, s obzirom na to da ga je Einsteinova majka nekoliko puta nagovarala da objasni svoju opću relativnost na način koji je mogla razumjeti (a on je bezuspješno pokušavao nekoliko puta).
Mislim da je PCA hiper.Značenje podataka ne možete pronaći ako već ne znate dimenzije podataka prije nego što započnete.Vjerojatno se zamatate masovnom hvalospjevima iz industrijskog internetskog sektora u vezi s AI-jem, a on jednostavno ne zadržava vodu.
28 odgovori:
#1
+1486
amoeba
2015-03-06 06:30:07 UTC
view on stackexchange narkive permalink

Zamislite veliku obiteljsku večeru na kojoj vas svi počinju pitati o PCA. Prvo to objasnite svojoj prabaki; onda tebi bako; zatim tvojoj majci; zatim vašem supružniku; konačno, vašoj kćeri (koja je matematičarka). Svaki put kad je sljedeća osoba manje laik. Evo kako bi razgovor mogao teći.

Prabaka: Čula sam da proučavate "Pee-See-Ay". Pitam se što je to ...

Vi: Ah, to je samo metoda sažimanja nekih podataka. Pazi, imamo nekoliko boca vina koje stoje ovdje na stolu. Svako vino možemo opisati po boji, po tome koliko je jako, po starosti i slično (pogledajte ovu vrlo lijepu vizualizaciju svojstava vina preuzetih odavde ). Možemo sastaviti čitav popis različitih karakteristika svakog vina u našem podrumu. Ali mnogi od njih će mjeriti srodna svojstva i tako će biti suvišna. Ako je tako, trebali bismo moći sažeti svako vino s manje karakteristika! To radi PCA.

Baka: Ovo je zanimljivo! Dakle, ova PCA stvar provjerava koje su karakteristike suvišne i odbacuje ih?

Vi: Izvrsno pitanje, bako! Ne, PCA ne odabire neke karakteristike, a odbacuje druge. Umjesto toga, on konstruira neke nove karakteristike koje ispadaju kako bi dobro sažele naš popis vina. Naravno, ove nove karakteristike konstruirane su pomoću starih; na primjer, nova karakteristika može se izračunati kao dob vina minus razina kiselosti vina ili neka druga takva kombinacija (nazivamo ih linearne kombinacije ).

U stvari, PCA pronalazi najbolje moguće karakteristike, one koje sažimaju popis vina što je moguće više (među svim zamislivim linearnim kombinacijama). Zbog toga je toliko koristan.

Majka: Hmmm, ovo sigurno zvuči dobro, ali nisam sigurna da razumijem. Na što zapravo mislite kad kažete da ove nove PCA karakteristike "sažimaju" popis vina?

Vi: Pretpostavljam da mogu dati dva različita odgovora na ovo pitanje. Prvi je odgovor da tražite neka svojstva vina (karakteristike) koja se jako razlikuju među vinima. Zapravo, zamislite da imate svojstvo koje je isto za većinu vina. Ovo ne bi bilo korisno, zar ne? Vina se vrlo razlikuju, ali vaše novo imanje čini da svi izgledaju jednako! Ovo bi sigurno bio loš sažetak. Umjesto toga, PCA traži svojstva koja pokazuju što više varijacija između vina.

Drugi je odgovor da tražite svojstva koja bi vam omogućila predviđanje ili "rekonstrukciju" izvornih karakteristika vina. Opet, zamislite da ste došli do svojstva koje nema nikakve veze s izvornim karakteristikama; ako koristite samo ovo novo svojstvo, nikako ne biste mogli rekonstruirati izvorno! Ovo bi, opet, bio loš sažetak. Dakle, PCA traži svojstva koja omogućuju što bolju rekonstrukciju izvornih karakteristika.

Iznenađujuće, ispada da su ova dva cilja jednaka pa PCA može jednim kamenom ubiti dvije ptice.

Supružnik: Ali draga, ova dva "cilja" PCA zvuče toliko različito! Zašto bi bili jednaki?

Vi: Hmmm. Možda bih trebao napraviti mali crtež (uzima salvetu i započinje škrabanje) . Odaberimo dvije karakteristike vina, možda vinsku tamu i sadržaj alkohola - ne znam jesu li u korelaciji, ali zamislimo da jesu. Evo kako bi mogla izgledati raspršena parcela različitih vina:

PCA exemplary data

Svaka točka u ovom "vinskom oblaku" prikazuje jedno određeno vino. Vidite da su dva svojstva ( $ x $ i $ y $ na ovoj slici) povezana. Novo svojstvo može se izgraditi povlačenjem linije kroz središte ovog vinskog oblaka i projiciranjem svih točaka na tu liniju. Ovo novo svojstvo dat će linearna kombinacija $ w_1 x + w_2 y $ , gdje svaki redak odgovara nekim određenim vrijednostima $ w_1 $ i $ w_2 $ .

Sada pogledajte ovdje vrlo pažljivo - evo kako ove projekcije izgledaju za različite crte (crvene točke su projekcije plavih točaka):

PCA animation: variance and reconstruction error

Kao što sam već rekao, PCA će pronaći "najbolju" liniju prema dva različita kriterija onoga što je najbolji". Prvo, varijacija vrijednosti duž ove crte trebala bi biti maksimalna. Obratite pažnju na to kako se mijenja "širenje" (nazivamo ga "varijancom") crvenih točaka dok se linija okreće; Možete li vidjeti kada dosegne maksimum? Drugo, ako rekonstruiramo izvorne dvije karakteristike (položaj plave točke) iz nove (položaj crvene točke), pogreška obnove dat će se duljinom spojne crvene crte. Promatrajte kako se duljina ovih crvenih linija mijenja dok se linija okreće; možete li vidjeti kada ukupna duljina dosegne minimum?

Ako neko vrijeme buljite u ovu animaciju, primijetit ćete da su istovremeno postignute "maksimalna varijansa" i "minimalna pogreška", naime kad crta pokazuje na magenta krpelja koje sam označio s obje strane vinskog oblaka. Ovaj redak odgovara novom svojstvu vina koje će konstruirati PCA.

Inače, PCA je kratica za "analizu glavne komponente", a ovo novo svojstvo naziva se "prva glavna komponenta". I umjesto da kažemo "svojstvo" ili "obilježje", obično kažemo "obilježje" ili "varijabla".

Kći: Jako lijepo, tata! Mislim da vidim zašto dva cilja daju isti rezultat: u osnovi je to zbog Pitagorinog teorema, zar ne? Svejedno, čuo sam da je PCA nekako povezan sa vlastitim vektorima i vlastitim vrijednostima; gdje su na ovoj slici?

Vi: Sjajno promatranje. Matematički se širenje crvenih točaka mjeri kao prosječna kvadratna udaljenost od središta vinskog oblaka do svake crvene točke; kao što znate, naziva se varijanca . S druge strane, ukupna pogreška rekonstrukcije mjeri se kao prosječna duljina kvadrata odgovarajućih crvenih linija. Ali kako je kut između crvenih linija i crne crte uvijek 90 $ ^ \ circ $ , zbroj ove dvije veličine jednak je prosječnoj kvadratnoj udaljenosti između središta vinski oblak i svaka plava točka; to je upravo Pitagorin teorem. Naravno da ova prosječna udaljenost ne ovisi o orijentaciji crne crte, pa je što je veća varijanca pogreška manja (jer je njihov zbroj konstantan). Ovaj ručno valoviti argument može se precizirati ( pogledajte ovdje).

Usput, možete zamisliti da je crna crta puna šipka, a svaka crvena linija opruga . Energija opruge proporcionalna je njezinoj duljini na kvadrat (to je u fizici poznato kao Hookeov zakon), pa će se štap orijentirati tako da zbroji ove kvadratne udaljenosti na najmanju moguću mjeru. Napravio sam simulaciju kako će to izgledati, uz prisutnost viskoznog trenja:

PCA animation: pendulum

Što se tiče vlastitih vektora i vlastitih vrijednosti. Znate što je matrica kovarijance ; u mom primjeru to je matrica $ 2 \ puta 2 $ koja je data $$ \ begin {pmatrix} 1.07 &0. 63 \\ 0,63 & 0,64 \ end {pmatrix}. $$ To znači da je varijansa varijable $ x $ 1,07 $ $ , varijansa varijable $ y $ iznosi 0,64 $ span>, a kovarijancija između njih iznosi 0,63 USD $ . Budući da je riječ o kvadratnoj simetričnoj matrici, može se dijagonalizirati odabirom novog ortogonalnog koordinatnog sustava, zadanog njegovim vlastitim vektorima (slučajno, to se naziva spektralni teorem ); odgovarajuće vlastite vrijednosti tada će se nalaziti na dijagonali. U ovom novom koordinatnom sustavu matrica kovarijance je dijagonalna i izgleda tako: $$ \ begin {pmatrix} 1,52 &0 \\ 0 &0 \\ {end {pmatrix}, $$ span> što znači da je korelacija između točaka sada nula. Postaje jasno da će varijancu bilo koje projekcije dati ponderirani prosjek vlastitih vrijednosti (ovdje samo skiciram intuiciju). Slijedom toga, maksimalna moguća varijansa ( 1,52 USD $ ) postići će se ako jednostavno uzmemo projekciju na prvu koordinatnu os. Slijedi da smjer prve glavne komponente daje prvi svojstveni vektor matrice kovarijance. ( Ovdje više detalja.)

To možete vidjeti i na rotirajućoj slici: tamo je siva crta ortogonalna crnoj; zajedno tvore rotacijski koordinatni okvir. Pokušajte primijetiti kada plave točke postanu nekorelirane u ovom rotirajućem okviru. Odgovor je, opet, da se to događa upravo kad crna crta usmjeri na magenta krpelja. Sada vam mogu reći kako sam ih pronašao: oni označavaju smjer prvog vlastitog vektora matrice kovarijance, što je u ovom slučaju jednako $ (0,81, 0,58) $ span >.


Po popularnom zahtjevu podijelio sam Matlab kôd za izradu gornjih animacija.

+1 Lijepa priča i ilustracije.`... onda tvojoj majci;zatim vašoj ženi;konačno, vašoj kćeri (koja je matematičarka) ... `Nastavio bih: a nakon večere - sebi.I ovdje ste odjednom zapeli ...
Apsolutno volim ilustracije koje dajete za ove odgovore.
@amoeba - Ovo je sjajno!Znate, mislim da problem internalizacije PCA nadilazi razumijevanje geometrije, vlastitih vektora, kovarijancije ... Riječ je o činjenici da izvorne varijable imaju imena (sadržaj alkohola, boja vina), ali transformacija podataka putemPCA rezultira komponentama koje su bezimene ... Što radite sa stvarima bez imena ... Kažete li da su vina u vašim podacima opojno crvena?Izmišljate li kvalitete ... ako je tako, ne bismo ih trebali zvati 'PC1' ... vina zahtijevaju neki poetičniji pristup ...
Obično pregledavam Cross Validated kako bih pročitao neke stvari, ali nikada nisam imao razloga za stvaranje računa ... uglavnom zato što su vrste pitanja ovdje izvan moje stručnosti i ne mogu zapravo odgovoriti ni na jedno.Obično sam samo na StackOverflowu i već sam oko godinu dana na mreži StackExchange.Međutim, danas sam odlučio stvoriti račun prvenstveno kako bih podržao vaš post.Ovo je vjerojatno najbolje izlaganje PCA-e koje sam ikad pročitao, a pročitao sam ih mnogo.Hvala vam na ovom divnom postu - izvrsnom pripovijedanju priča, grafikama, a tako je lako čitati!+1
Sjajno, hvala što ste ovo objavili.Mogu li pitati koji je program izradio ove grafikone?
@JohnK, radnje i animacije rađene su u Matlabu.Drago mi je da su vam se svidjeli, hvala.
Napomena za sebe: moj odgovor trenutno ima 100 glasova za, JDLong odgovor ima 220 glasova za;ako pretpostavimo stalni rast, tada moj ima 100 glasova za, a njegov 40 za glasova godišnje.Ili točnije 55 / godišnje ako se izračunava jer je u siječnju 2014. prošao 100 glasova za [dobio je zlatnu značku]. To znači da ću sustići 2,5-3 godine, otprilike krajem 2018. Da vidimo :-)
Napomena za sebe nastavak: Moram ažurirati svoju procjenu.Mjesec dana kasnije ovaj je odgovor dobio 18 glasova za i 5 za JDLongove.To ukazuje na to da bih mogao sustići za manje od godinu dana.Zanimljivo je da je 5 mjeseci vrlo blizu mojoj gornjoj procjeni od 55 godišnje, ali 18 mjeseci je više nego dvostruko iznad 100 godišnje.Kako se moj odgovor nije promijenio, čini se da je dolazak na drugo mjesto ubrzao glasanje (vjerojatno zbog povećane vidljivosti).
@amoeba Fantastičan odgovor!Ipak malo sumnjam;u posljednjem retku rekli ste da je svojstveni vektor `(0.81,0.58)`.Što ti brojevi označavaju?Kako ste od ovoga dobili magenta krpelja?Drugim riječima, što to geometrijski znači?
@amoeba Mali prijedlog;tekst nakon konačne vizualizacije prilično je teško razumjeti.Bilo bi sjajno kad biste to mogli malo više razraditi.
@AnmolSinghJaggi Prvi svojstveni vektor je (0,81, 0,58), to su samo vektorske koordinate: vektor ide od točke (0,0) do točke (0,81, 0,58).Ako nacrtate ovaj vektor i nastavite ga u istom smjeru, proći će kroz magenta krpelja;kao što sam napisao, krpelji "označavaju smjer prvog vlastitog vektora".Vidim da posljednji dio može biti teško razumjeti, ali mislio sam da nije mjesto za detaljnije objašnjavanje vlastitih vektora i vlastitih vrijednosti ... Ipak bih mogao nešto dodati.Hvala vam.
@amoeba: Briljantni odgovor!Puno ti hvala.Pitam se zašto ovo nije najbolji odgovor!
@amoeba Hej čovječe, tvoj sjajni!Borim se s PCA otprilike tjedan dana, nisam razumio frazu koja kaže "A varijanca ove varijable je maksimalna među svim mogućim izborima prve osi" s vašim grafovima konačno sam je shvatila!Mislim da me bog volio jer sam se pomaknuo i vidio vaš odgovor!i još jednom, tvoj sjajni!
@claws: Iskreno, nisam očekivao da ćete ikada prihvatiti bilo kakav odgovor u ovoj temi!Polaskana sam.Vinska figura je također dobar dodatak, živjeli.
Unatoč tome što sam prva u redu aplaudirala odgovoru, ne mogu pronaći odobrenje za posljednji dodatak ljestvice s vinskim čašama (ili su to uvjeti mjehura, gornji red je hematuričan?) - jednostavno mogu 'ne vidim kako može dodatno usavršiti svaku trezvenu intuiciju o PCA.Preporučio bih da napokon otkažete obiteljsku zabavu za spavanje.Ili bi se odgovor mogao pogoršati.
@ttnphns Hvala na povratnim informacijama.Nisam ja dodala figuru vinske čaše.Dodali su ga (ranije danas) kandže OP-a, koji su istovremeno prihvatili ovaj odgovor.Dvoumila sam se trebam li ostaviti ovu sliku ili je ukloniti ... Možda ste u pravu i bolje je da je ipak uklonite.Potrebno je puno prostora.Možda ću sliku zamijeniti poveznicom na nju.
@ttnphns To sam pitanje postavio prije nekoliko godina kad sam bio na fakultetu.Sad sam u polju koje apsolutno nema nikakve veze s inženjerstvom ili znanostima.Odnosno, laik sam postao u praktične svrhe.Sad kad sam pročitao oba topirana odgovora, mogao sam puno jasnije razumjeti ovaj.Dogodilo se i da pripadam dijelu svijeta, koji nije svjestan da ima vino za večeru, zapravo, nikada u životu nisam vidio čašu vina.Pa kad je izraz "vrste vina" morao proguglati slike i saznati.U tom sam kontekstu morao dodati tu sliku.
@ttnphns: Kako je stackexchange globalno mjesto, mislio sam da će pomoći i drugim ljudima poput mene.Slobodno ga uklonite ako mislite drugačije.Štoviše, smatram da ako se naslov pitanja na odgovarajući način promijeni u nešto poput "Što je analiza komponenata Pricnicple laički?"(ili nešto slično) laici koji s ove stranice s Google pretraživanja dođu na ovu stranicu samo bi ova slika bila prijatnija i ugodnija za razliku od grafikona koji zastrašuju.
* Nikad u životu niste vidjeli čašu vina *, @claws ?!Ako je ovo doslovno istina, zapanjen sam i zbunjen.Znam mnoge ljude koji nikad ne piju vino ili bilo koji alkohol, a vjerojatno znam i neke odrasle osobe (ali vrlo malo) koje * nikada * nisu probale čašu vina.Ali da nikada nisam vidio * čašu vina - kako je to uopće moguće?Ne mogu zamisliti u kojem "dijelu svijeta" tada morate živjeti.Moja najbolja pretpostavka bila bi neka vjerska zajednica u Indiji ... Pretpostavljam da ipak ne želite otkriti svoje mjesto.
@amoeba: haha!s mjesta na kojem stojim, također me čudi da bi se netko začudio ili pomislio da je gotovo nemoguće da nije vidio čašu vina.Kako je to uopće moguće?Imam stotine prijatelja koji nisu vidjeli ni jednog.Sa sigurnošću mogu reći da * bez obzira na vjeru * u mojoj zemlji, broj ljudi veći od stanovništva SAD-a ili cijele Europe * nikada nije vidio čašu vina *.Znam malo ljudi (iako vrlo vrlo malo) koji su to probali.
@ttnphns Uklonio sam sliku, ali vezu u nju umetnuo sam u tekst.
@amoeba uistinu si genije.
@amoeba daleko jedan od najboljih (ako ne i "najbolji") odgovor koji sam ikad pročitao.POŠTOVANJE!
Napomena za sebe, ažuriranje 2: Ovaj je odgovor danas najviše glasovao u ovoj temi (264 glasova za)!Ranije od predviđene procjene za prosinac, vjerojatno zato što je označena kao prihvaćena u kolovozu (to može povećati stopu glasova za.Novi je cilj doći do 1. mjesta u svim CV odgovorima;to su tri odgovora za prestići.Gornja trenutno ima 326 glasova za, odnosno 60 je ispred.
@amoeba sjajan odgovor.Koji ste softver koristili za rotirajuću parcelu?Imate li šanse za postavljanje koda?Hvala još jednom.
@amoeba Ovo je među 3 najbolja odgovora koja sam ikad pročitao na cijeloj mreži stackexchange.Chapeau, nadam se da si učitelj ili ćeš to postati!
Ovaj je odgovor najglasovitiji odgovor (363) na CrossValidatedu od danas :-) Samo da se zna: na CrossValidatedu postoji mnogo puno boljih odgovora, pa ovo "postignuće" uglavnom odražava popularnost teme PCA.
Odličan odgovor!Da moram odabrati svoj omiljeni citat na životopisu, to bi vjerojatno bilo "Izvrsno pitanje, bako!".:-)
Ovo je nevjerojatno lijep odgovor!
Zamalo si me izgubio kod prabake.Moram puno naučiti.+1
Prošao kroz toliko dobrih postova da bih stigao do najboljeg.
Pokušavam ovo reproducirati, ali udaljenost između mojih "crvenih točaka" na crti i izvornih koordinata nije najkraća okomita udaljenost.`T = (X * V (:, 1)) * V (:, 1) ';` Dakle, treba li T biti ekvivalent vašim crvenim točkama (s obzirom da je V (:, 1) prvi svojstveni vektor i Xje srednje usmjereno)?
Možete li molim vas naučiti sve?
Ovo je izvrsno objašnjenje - izvođenje na vlastite vektore je izvrsno.
Koje pretpostavke PCA donosi o podacima?
Možete li pomoći u odgovoru na povezano pitanje koje sam postavio na [stats.stackexchange] (https://stats.stackexchange.com/questions/374248/what-to-conclude-for-the-data-set-when-the-variance-za-glavne-komponente-je)
Imate pravi dar.Ovo je odlično!
Iz animacije vidim da se pogreška minimizira kad se poravna s magenta linijama, ali ne razumijem kako to također povećava varijancu.Varijansu (barem u definiciji koja se koristi u statistici) treba maksimizirati tako da što više bodova bude udaljeno od srednje vrijednosti - prvo je nejasno zašto na to utječe bilo koja crta koju povučemo jer bi to trebalo biti svojstvo izvornih podataka- drugo, ako uzmem umjesto toga da naznačim "najviše raznolikosti u udaljenostima između točaka i crte", bilo bi kad je crta okomita.Pomozite?
@JosephGarvin To je varijansa crvenih točaka (projekcija) na crnoj liniji.
Dok vino ne postane fino, ali onog trenutka kada ćete reći "Ali mnogi od njih će izmjeriti srodna svojstva i tako će biti suvišni. Ako je tako, trebali bismo ......", moja baka bi bila izgubljena.
Ovaj bi odgovor trebao biti animiran video.
@amoeba Hvala vam na ovako briljantnom odgovoru.
@amoeba Gdje bi bila opterećenja na grafikonu?
Zašto kažete "prosječnu" duljinu kvadrata za varijansu ili pogrešku rekonstrukcije?Nisam siguran zašto je to prosječna duljina kvadrata.Nije li to samo dužina?Odakle dolazi prosjek?
#2
+395
JD Long
2010-09-16 02:42:36 UTC
view on stackexchange narkive permalink

Rukopis "Vodič o analizi glavnih komponenata" autora Lindsay I Smith stvarno mi je pomogao da napišem PCA. Mislim da je još uvijek previše složeno za objašnjavanje baki, ali nije loše. Trebali biste preskočiti prvih nekoliko bitova pri izračunavanju svojstava, itd. Skočite na primjer u poglavlju 3 i pogledajte grafikone.

Imam nekoliko primjera u kojima sam obrađivao primjere igračaka kako bih mogao razumjeti linearnu regresiju PCA u odnosu na OLS. Pokušat ću ih iskopati i objaviti.

uredi: Niste zapravo pitali o razlici između običnih najmanjih kvadrata (OLS) i PCA, ali otkako sam iskopao svoje bilješke, objavio sam blog post o tome to. Vrlo kratka verzija OLS od y ~ x minimizira pogrešku okomitu na neovisnu os poput ove (žute crte su primjeri dvije pogreške):

alt text

Ako biste htjeli regresira x ~ y (za razliku od y ~ x u prvom primjeru) minimizirao bi ovakvu pogrešku:

alt text

i PCA učinkovito minimalizira pogrešku ortogonalnu samom modelu , otprilike tako:

alt text

Što je još važnije, kao što su drugi rekli, u situaciji kada imate CIJELU GRUPU neovisnih varijabli, PCA vam pomaže otkriti koje linearne kombinacije od ovih varijabli su najvažnije. Gornji primjeri samo pomažu vizualizirati kako izgleda prva glavna komponenta u stvarno jednostavnom slučaju.

U svom postu na blogu imam R kod za izradu gornjih grafova i za izračunavanje prve glavne komponente. Možda bi se vrijedilo poigrati kako biste izgradili svoju intuiciju oko PCA. Obično ne posjedujem nešto dok ne napišem kôd koji to reproducira.

Vodič je bio stvarno izvrstan. Možete li predložiti daljnje vodiče kao nastavak?
Dobar poziv rukopisu Lindsay I Smith - samo ga pročitajte danas; vrlo korisno.
Pa je li PCA ekvivalentan ukupnim najmanjim kvadratima ako optimizira pravokutne udaljenosti od točaka do odgovarajuće crte?
@Marcin - ovo je točno. PCA možete preoblikovati kao pronalazak najboljeg ranga $ m $ procjene ($ 1 \ leq m \ leq p $) od izvornih varijabli $ p $ ($ \ hat {x} _ {ij} \; \; \; \ ; i = 1, \ dots, n \; \; \; j = 1, \ dots, p $), s ciljnom funkcijom $ \ sum_ {i = 1} ^ {n} \ sum_ {j = 1} ^ {p} (x_ {ij} - \ šešir {x} _ {ij}) ^ {2} $. Odabir broja računala ekvivalentan je odabiru ranga predviđanja.
Mala matematička pogreška u Smithu: "svi vlastiti vektori matrice okomiti su ... bez obzira na to koliko dimenzija imate" odnosi se samo na simetrične matrice, [ovdje je jedna s razmakom od 45 stupnjeva] (http: //www.wolframalpha. com / input /? i = svojstveni vektori% 7B% 7B1% 2C1% 7D% 2C% 7B0% 2C2% 7D% 7D). Smith je ranije primijetio simetriju kovarijancijskih matrica, ali ne i implikaciju - simetrija osigurava `n` okomite vlastite vektore. U stvari, nemaju sve stvarne `nxn` matrice čak niti stvarne vlastite vrijednosti (npr. {{0,1}, {- 1,0}}), a od onih koje imaju, nemaju sve` n` neovisne vlastite vektore (npr. {{1 , 1}, {0,1}})! Simetrija je bitna!
Sve pozitivne poludefinitivne simetrične matrice imaju nenegativne vlastite vrijednosti i ortogonalne vlastite vektore. To uključuje sve matrice kovarijance. Vlasnički vektori ipak nisu nužno jedinstveni.
Minimiziranje pogreške ili minimaliziranje zbroja kvadrata pogrešaka?
Izgleda kao "odgovor samo na vezu" - tekst okolo zapravo uopće ne odgovara na pitanje.
Mislim da se svi možemo složiti da su slike korisne. Teško da je uopće "odgovor samo na vezu". 126 glasova za je prilično netipično za odgovor na ovom forumu sa statistikama, zar ne?
Kao matematičar koji podučava vlastite vektore, moram se naježiti čitajući ovaj rukopis Lindsay Smith."... rezultirajući vektor je cijeli broj višestruk od izvornika ..." - koja je svrha spominjanja ** cijelog broja **?Svojstveni vektor matrice A je bilo koji vektor X takav da je AX višekratnik X. ** Nije cijeli višestruki, već višestruki! ** Necjeloviti višestruki je također ok!Isuse, zašto stvarati nepotrebnu zbrku tamo gdje je nema?
"Cjelokupna tema statistike temelji se na ideji da imate taj veliki skup podataka i želite taj skup analizirati u smislu odnosa između pojedinih točaka u tom skupu podataka" Nisam mogao razumjeti tu rečenicuod Lindsay.Što zaboga on / ona pokušava ovim reći?
Hvala što ste istakli ovaj rukopis.Nikad nisam znao da se statistika može objasniti tako jednostavno.
povezani rukopis nije dostupan poslužitelj koji vraća 453 HTTP kôd, ima li ga netko?ako je moguće, može li se objaviti alternativni url?Hvala unaprijed
@partizanos hvala što ste primijetili da je veza prekinuta!Popravio sam.Živjeli.
@JDLong Nakon što su smislili glavne komponente koje objašnjavaju dovoljan udio varijabilnosti (pročitao sam da je 90% osnovno pravilo), koriste li se ove glavne komponente obično kao prediktivne varijable u regresiji ili je PCA u potpunosti nepovezana s prediktivnim modeliranjem?
@Remy se obično ne koristi izravno za predviđanje.pogledajte pomaže li ovo: https://www.quora.com/When-and-where-do-we-use-PCA
Ako je nagib regresijske linije k, kako odrediti koeficijente dviju varijabli u odgovarajućoj glavnoj komponenti?
#3
+147
whuber
2010-09-16 02:33:12 UTC
view on stackexchange narkive permalink

Uradimo prvo (2). PCA pristaje elipsoidu na podatke. Elipsoid je višedimenzionalna generalizacija iskrivljenih sfernih oblika poput cigara, palačinki i jaja. Sve su to lijepo opisane uputama i duljinama njihovih glavnih (polu) osi, poput osi cigare ili jaja ili ravnine palačinke. Bez obzira na to kako je elipsoid okrenut, svojstveni vektori usmjereni su u one glavne smjerove, a vlastite vrijednosti daju vam duljine. Najmanje vlastite vrijednosti odgovaraju najtanijim smjerovima s najmanjim varijacijama, pa njihovo ignoriranje (što ih urušava) gubi relativno malo podataka: to je PCA.

(1) Osim pojednostavljenja (gore), imamo potrebe za precizan opis, vizualizaciju i uvid. Mogućnost smanjenja dimenzija je dobra stvar: olakšava opisivanje podataka i, ako imamo sreće da ih smanjimo na tri ili manje, omogućuje nam crtanje slike. Ponekad čak možemo pronaći korisne načine za tumačenje kombinacija podataka predstavljenih koordinatama na slici, što može pružiti uvid u zajedničko ponašanje varijabli.


Slika prikazuje neke oblake od 200 USD $ bodova, zajedno s elipsoidima koji sadrže 50% svakog oblaka i osi poravnate s glavnim smjerovima. U prvom redu oblaci imaju u osnovi jednu glavnu komponentu, koja obuhvaća 95% svih varijansa: to su oblici cigara. U drugom redu oblaci imaju u osnovi dvije glavne komponente, jednu otprilike dvostruko veću od druge, što zajedno čini 95% svih varijacija: to su oblici palačinki. U trećem su redu sve tri glavne komponente značajne: ovo su oblici jaja.

Figures

Bilo koji 3D oblak točaka koji je "koherentan" u smislu da ne prikazuje nakupine ili vitice ili ispupčenja izgledat će poput jednog od njih. Bilo koji 3D oblak točaka uopće - pod uvjetom da se sve točke ne podudaraju - jedna od ovih slika može opisati kao početnu polaznu točku za identificiranje daljnjeg grupiranja ili uzorkovanje.

Intuicija koju razvijete promišljanjem takvih konfiguracija može se primijeniti na više dimenzije, iako je te dimenzije teško ili nemoguće vizualizirati.

Da se tome doda, kada imate (gotovo) jednake poluose (tj. Elipsoid ima (gotovo) kružni presjek), to ukazuje na to da dva dijela podataka koji odgovaraju tim osima imaju (gotovo) ovisnost; može se govoriti o glavnim osima elipse, ali krugovi imaju samo jedan radijus. :)
Ovdje bih bio oprezniji, J.M. Prvo, samo da pojasnim, pod "gotovo ovisnom" morate podrazumijevati "gotovo neovisan". To bi vrijedilo za multinormalnu varijablu, ali u mnogim se slučajevima PCA provodi s podacima koji su izrazito nenormalni. Zapravo, analize klastera koje slijede neke PCA izračune mogu se promatrati kao jedan od načina za procjenu jakog oblika nenormalnosti. Matematički krugovi * imaju * glavne osi, ali oni jednostavno nisu jednoznačno određeni: kao glavne osi možete odabrati bilo koji ortogonalni par polumjera.
Da, oprostite, pretpostavljam da bi "glavne osi kruga bile neodređene" bio bolji način za to.
Vrlo lijepa interpretacija! Pokušavajući to bolje razumjeti .. gdje se u PCA matematici može vidjeti da "PCA odgovara elipsoidu podacima"?
@Kochede Elipsoid je kontura kvadratnog oblika. Matrica kovarijance kvadratni je oblik. PCA identificira svoje osi i njihove duljine.
Mislim da biste moju baku izgubili pri prvom spominjanju elipsoida.Vidio sam kako joj se oči blistaju i razgovor bi vjerojatno krenuo na nekoj tangenti oko usana.
@icc Šteta što niste pročitali dalje uz opise jaja i palačinki.
Obećavam da sam ga pročitao, samo što mislim da je jezik koji koristite previše složen.
@icc Slika * je * objašnjenje.Neću se ispričati što sam u opisivanju upotrijebio riječi s više od dva sloga - slobodno možete koristiti vlastite riječi u komunikaciji sa svojom publikom.Ali smatram da kad poštujete svoju publiku time što ne zanijemite svoj jezik, oni to obično cijene.Ako djeca mogu naučiti riječi poput "špageti" i "hladnjak", ima neke nade da odrasli mogu polako uzimati riječi poput "elipsoid", posebno ako im se predstavi desetak primjera što to znači.
Ispričavam se zbog svog prvog flippant komentara.Mislim da drugi najvažniji odgovori ovdje ne zaglupljuju temu i ne koriste se matematičkim jezikom niti zahtijevaju matematičke grafikone izvan matematike u srednjoj školi.
Kako uspostaviti vezu između značajki koje ste koristili kao ulazne podatke prema glavnim komponentama?A što ako vam računanje PCA da 5 računala jednako važnih za pogledati?Što učiniti u ovom slučaju?
@xeon O ovim se računalnim detaljima opširno raspravljalo u drugim nitima: potražite "PCA".
#4
+114
Freya Harrison
2010-09-16 02:14:37 UTC
view on stackexchange narkive permalink

Hmm, ovdje se podrazumijeva potpuno nematematički pristup PCA-u ...

Zamislite da ste upravo otvorili trgovinu jabukovačama. Imate 50 vrsta jabukovače i želite smisliti kako ih rasporediti na police, tako da se jabukovače sličnog okusa stave na istu policu. Mnogo je različitih okusa i tekstura jabukovače - slatkoća, trpkost, gorčina, kvasnost, voćnost, bistrina, gaziranost itd. Dakle, ono što trebate učiniti da biste boce svrstali u kategorije je odgovoriti na dva pitanja:

1) Koje su osobine najvažnije za prepoznavanje skupina jabukovača? npr. čini li razvrstavanje na temelju slatkoće lakše grupiranje jabukovača u skupine sličnog okusa od razvrstavanja na temelju voćnosti?

2) Možemo li smanjiti naš popis varijabli kombinirajući neke od njih? npr. postoji li zapravo varijabla koja je neka kombinacija "kvasca i bistrine i pjenušavosti" i koja čini stvarno dobru ljestvicu za klasificiranje sorti?

To je u osnovi ono što PCA čini. Glavne komponente su varijable koje korisno objašnjavaju varijacije u skupu podataka - u ovom slučaju, koje korisno razlikuju grupe. Svaka glavna komponenta jedna je od vaših izvornih varijabli objašnjenja ili kombinacija nekih vaših izvornih varijabli objašnjenja.

Što je sa vlastitim vektorima i vlastitim vrijednostima?
U redu: vlastita vrijednost pridružena svakoj glavnoj komponenti govori vam kolike varijacije u skupu podataka objašnjava (u mom primjeru, koliko jasno razdvaja vaše boce u grupe). Obično se izražavaju kao postotak ukupne varijacije u skupu podataka. Što se tiče vlastitih vektora, dobro, tu su, kao što su kandže rekle, slijedim rezultate analize poput stroja;) U mojoj glavi, oni su povezani s načinom na koji okrećete Vinceov mobitel u njegovu "najbolju" orijentaciju, ali ovo možda nije ispravan način razmišljanja o njima.
Vlastiti vektori su samo linearne kombinacije izvornih varijabli (u jednostavnom ili rotiranom faktornom prostoru); opisali su kako varijable "doprinose" svakoj osi faktora. U osnovi, zamislite PCA kao način konstruiranja novih osi koje upućuju na smjerove maksimalne varijance (u izvornom varijabilnom prostoru), izražene vlastitom vrijednošću, i kako se doprinosi varijabli ponderiraju ili linearno transformiraju u ovom novom prostoru.
kakva bi bila matrica kovarijance ovog problema? što nam govori o varijablama (slatkoća, trpkost, gorčina, kvasnost, voćnost, bistrina, gaziranost itd.)?
Ovo možda ne objašnjava sve što je OP tražio, ali ovo je jedini odgovor koji bih zapravo mogao iskoristiti da objasnim PCA svojim roditeljima.
Ne znam što je s statističarima i alkoholnim pićima, ali [Whisky Classified] (https://www.amazon.co.uk/Whisky-Classified-David-Wishart/dp/1862057168) radi upravo to za škotske viskije...
#5
+102
probabilityislogic
2011-09-05 04:18:07 UTC
view on stackexchange narkive permalink

Odgovorio bih "laički rečeno" rekavši da PCA želi uklopiti ravne crte u podatkovne točke (svi znaju što je ravna crta). Te ravne crte nazivamo "glavnim komponentama". Postoji onoliko glavnih komponenata koliko ima varijabli. Prva glavna komponenta je najbolja ravna crta koju možete uklopiti u podatke. Druga glavna komponenta najbolja je ravna crta koju možete uklopiti u pogreške iz prve glavne komponente. Treća glavna komponenta je najbolja ravna crta koju možete uklopiti u pogreške iz prve i druge glavne komponente, itd., Itd.

Ako netko pita što mislite pod "najbolje" ili "pogreške", onda vam ovo govori da nisu "laik", pa mogu ući u malo više tehničkih detalja, poput okomitih pogrešaka, ne znaju gdje je pogreška u smjeru x- ili y-, više od 2 ili 3 dimenzije itd. Dalje, ako se izbjegavate pozivati ​​na OLS regresiju (koju "laik" vjerojatno neće razumjeti) objašnjenje je lakše.

Vlastiti vektori i vlastite vrijednosti nisu potrebni koncepti sami po sebi, već su se dogodili biti matematički pojmovi koji su već postojali. Kada riješite matematički problem PCA, on na kraju bude ekvivalentan pronalaženju vlastitih vrijednosti i vlastitih vektora matrice kovarijance.

+1, ovo je uistinu "laički rečeno", i znam da biste to mogli * vrlo * strogo izvesti da želite!
Rekao bih da je najbolji odgovor do sada. I puno koristim PCA.
Wow - ovo je stvarno sjajno i jednostavno objašnjenje!Hvala vam!
#6
+56
sjm.majewski
2012-08-04 08:54:47 UTC
view on stackexchange narkive permalink

Mogu vam dati vlastito objašnjenje / dokaz PCA-a, koji je po meni zaista jednostavan i elegantan i ne zahtijeva ništa osim osnovnog znanja o linearnoj algebri. Ispalo je prilično dugo, jer sam želio pisati jednostavnim dostupnim jezikom.

Pretpostavimo da imamo neke $ M $ uzorke podataka iz $ n $ -dimenzionalnog prostora. Sada želimo projicirati ove podatke na nekoliko redaka u $ n $ -dimenzionalnom prostoru, na način da zadrži što veću varijancu (što znači da bi varijanca projiciranih podataka trebala biti što veća u usporedbi s varijancom izvornika podataka).

Sada, imajmo na umu da ako prevedemo (premjestimo) sve točke za neki vektor $ \ beta $, varijansa će ostati ista, budući da se sve točke pomiču za $ \ beta $ pomaknut će i svoju aritmetičku sredinu za $ \ beta $, a varijansa je linearno proporcionalna $ \ sum_ {i = 1} ^ M \ | x_i - \ mu \ | ^ 2 $. Stoga sve točke prevedemo za $ - \ mu $, tako da njihova aritmetička sredina postane 0 $, radi proračunske udobnosti. Označimo prevedene točke kao $ x_i '= x_i - \ mu $. Primijetimo također, da se varijanca sada može izraziti jednostavno kao $ \ sum_ {i = 1} ^ M \ | x_i '\ | ^ 2 $.

Sada izbor crte. Bilo koju liniju možemo opisati kao skup točaka koje zadovoljavaju jednadžbu $ x = \ alpha v + w $, za neke vektore $ v, w $. Imajte na umu da ako pomaknemo liniju za neki vektor $ \ gamma $ ortogonalno na $ v $, tada će se i sve projekcije na liniji pomaknuti za $ \ gamma $, stoga će srednja vrijednost projekcija biti pomaknuta za $ \ gamma $, stoga će varijanca projekcija ostati nepromijenjena. To znači da liniju možemo pomicati paralelno samoj sebi, a ne mijenjati varijansu projekcija na ovoj liniji. Opet, radi praktičnosti, ograničimo se samo na linije koje prolaze kroz nultu točku (to znači linije opisane s $ x = \ alpha v $).

Dobro, pretpostavimo sada da imamo vektor $ v $ koji opisuje smjer crte koja je mogući kandidat za liniju koju tražimo. Moramo izračunati varijansu projekcija na pravac $ \ alpha v $. Ono što će nam trebati su točke projekcije i njihova srednja vrijednost. Iz linearne algebre znamo da je u ovom jednostavnom slučaju projekcija $ x_i '$ na $ \ alpha v $ $ \ langle x_i, v \ rangle / \ | v \ | _2 $. Ograničimo se od sada na samo jedinične vektore $ v $. To znači da duljinu projekcije točke $ x_i '$ na $ v $ možemo zapisati jednostavno kao $ \ langle x_i', v \ rangle $.

U nekim od prethodnih odgovora netko je rekao da PCA minimalizira zbroj kvadrata udaljenosti od odabrane crte. Sada možemo vidjeti da je to istina, jer je zbroj kvadrata projekcija plus zbroj kvadrata udaljenosti od odabrane crte jednak zbroju kvadrata udaljenosti od točke $ 0 $. Maksimiziranjem zbroja kvadrata projekcija minimiziramo zbroj kvadrata udaljenosti i obrnuto, ali ovo je bila samo promišljena digresija, sada natrag na dokaz.

Što se tiče srednje vrijednosti projekcija, primijetimo da je $ v $ dio neke ortogonalne osnove našega prostora i da će se, ako projiciramo svoje podatkovne točke na svaki vektor te osnove, njihov zbroj poništiti (to je tako jer projiciranje na vektore osnova je poput zapisivanja točaka podataka u novu pravokutnu osnovu). Dakle, zbroj svih projekcija na vektor $ v $ (nazovimo zbroj $ S_v $) i zbroj projekcija na druge vektore iz osnove (nazovimo ga $ S_o $) je 0, jer je to srednja vrijednost podatkovne točke. Ali $ S_v $ je ortogonalna $ S_o $! To znači $ S_o = S_v = 0 $.

Dakle, srednja vrijednost naših projekcija je 0 $ $. Pa, to je prikladno, jer to znači da je varijanca samo zbroj kvadrata duljina projekcija ili u simbolima $$ \ 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. $$

Pa, odjednom je iskočila matrica kovarijance. Označimo je jednostavno s $ X $. To znači da sada tražimo jedinični vektor $ v $ koji maksimizira $ v ^ T \ cdot X \ cdot v $, za neku polupozitivnu definitivnu matricu $ X $.

Sada, uzmimo vlastite vektore i vlastite vrijednosti matrice $ X $ i označite ih s $ e_1, e_2, \ dots, e_n $ i $ \ lambda_1, \ dots, \ lambda_n $, odnosno, da $ \ lambda_1 \ geq \ lambda_2, \ geq \ lambda_3 \ dots $. Ako se vrijednosti $ \ lambda $ ne dupliciraju, vlastiti vektori čine ortonormalnu osnovu. Ako to učine, odabiremo vlastite vektore na način da čine ortnormalnu osnovu.

Sad izračunajmo $ v ^ T \ cdot X \ cdot v $ za svoj vlastiti vektor $ e_i $. Imamo $$ e_i ^ T \ cdot X \ cdot e_i = e_i ^ T \ cdot (\ lambda_i e_i) = \ lambda_i (\ | e_i \ | _2) ^ 2 = \ lambda_i. $$

Prilično dobro, ovo nam daje $ \ lambda_1 $ za $ e_1 $. Uzmimo sada proizvoljni vektor $ v $. Budući da vlastiti vektori čine ortnormalnu osnovu, možemo zapisati $ v = \ sum_ {i = 1} ^ n e_i \ langle v, e_i \ rangle $, a imamo $ \ sum_ {i = 1} ^ n \ langle v, e_i \ rangle ^ 2 = 1 $. Označimo $ \ beta_i = \ langle v, e_i \ rangle $.

Sad izbrojimo $ v ^ T \ cdot X \ cdot v $. Prepisujemo $ v $ kao linearnu kombinaciju $ e_i $ i dobivamo: $$ (\ 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. $$

Posljednja jednadžba dolazi iz činjenice da su vlastiti vektori tamo gdje su izabrani da budu u paru pravokutni, tako da su njihovi točkasti proizvodi nula. Sada, budući da su svi svojstveni vektori također jedinične duljine, možemo zapisati $ v ^ T \ cdot X \ cdot v = \ sum_ {i = 1} ^ n \ lambda_i \ beta_i ^ 2 $, gdje su $ \ beta_i ^ 2 $ sve pozitivne i zbroje na $ 1 $.

To znači da je varijanca projekcije ponderirana sredina vlastitih vrijednosti. Svakako, to je uvijek manje od najveće vlastite vrijednosti, zbog čega bi to trebao biti naš izbor prvog vektora PCA.

Sad pretpostavimo da želimo još jedan vektor. Trebali bismo ga odabrati iz prostora koji je pravokutni na već odabrani, što znači potprostor $ \ mathrm {lin} (e_2, e_3, \ dots, e_n) $. Analognim zaključivanjem dolazimo do zaključka da je najbolji vektor za projiciranje $ e_2 $. I tako dalje, i tako dalje ...

Usput, sada bi trebalo biti jasno, zašto se zadržana varijanca može izraziti sa $ \ sum_ {i = 1} ^ k \ lambda_i / \ sum_ {i = 1} ^ n \ lambda_i $.

Trebali bismo opravdati i pohlepan odabir vektora. Kada želimo odabrati $ k $ vektore na koje ćemo projicirati, možda ne biti najbolja ideja da prvo odaberete najbolji vektor, a zatim najbolji od onoga što ostaje i tako dalje. Želio bih tvrditi da je u ovom slučaju to opravdano i da nema nikakve razlike. Označimo $ k $ vektor na koji želimo projicirati $ v_1, \ dots, v_k $. Također, pretpostavimo da su vektori u paru pravokutni. Kao što već znamo, ukupna varijansa projekcija na te vektore može se izraziti sa $$ \ sum_ {j = 1} ^ k \ sum_ {i = 1} ^ n \ lambda_i \ beta_ {ij} ^ 2 = \ sum_ {i = 1} ^ n \ lambda_i \ gamma_i $$ gdje je $ \ gamma_i = \ sum_ {j = 1} ^ k \ beta_ {ij} ^ 2. $

Sada, napišimo $ e_i $ u nekoj ortonormalnoj osnovi koja uključuje $ v_1, \ dots, v_k $. Označimo ostatak osnove kao $ u_1, \ dots, u_ {n-k} $. Možemo vidjeti da $ e_i = \ sum_ {j = 1} ^ k \ beta_ {ij} v_j + \ sum_ {j = 1} ^ {nk} \ theta_j \ langle e_i, u_j \ rangle $ .Zbog $ \ | e_i \ | _2 = 1 $, imamo $ \ sum_ {j = 1} ^ k \ beta_ {ij} ^ 2 + \ sum_ {j = 1} ^ {nk} \ theta_j ^ 2 = 1 $, a time i $ \ gamma_i \ leq 1 $ za sve $ i $.

Sada imamo sličan slučaj samo jednom vektoru, sada znamo da je ukupna varijansa projekcija $ \ sum_ {i = 1} ^ n \ lambda_i \ gamma_i $ s $ \ gamma_i \ leq 1 $ i $ \ sum_ {i = 1} ^ n \ gamma_i = k $. Ovo je još jedna ponderirana srednja vrijednost i sigurno nije veća od $ \ sum_ {i = 1} ^ k \ lambda_i $ što odgovara projiciranju na $ k $ vlastitih vektora koji odgovaraju najvećim vlastitim vrijednostima.

+1 Vrlo lijep odgovor! Još ga nisam pročitao u potpunosti, ali vaš je odgovor kakav sam tražio. Svi objašnjeni koraci =)
Pokažite mi laika koji poznaje osnovnu linearnu algebru, a ja ću vam pokazati dodiplomski studij matematike.
* Iz linearne algebre znamo da je u ovom jednostavnom slučaju projekcija $ x_i '$ na $ \ alpha v $ $ \ langle x_i, v \ rangle / \ | v \ | ^ 2 $ * (5. odlomak).Ne bi li to trebao biti $ \ langle x_i, v \ rangle / \ | v \ | $?Drugim riječima, skalarna projekcija?
Antoni Parellada: u pravu ste, dva bi trebala biti u donjem indeksu, a ne u gornjem.Ispravio sam ga.
Mislim da je ovo daleko najbolje objašnjenje za PCA koje sam ikad vidio.Hvala vam.
To je moje omiljeno objašnjenje koje također pokazuje * zašto * vlastiti vektori povećavaju varijance.
#7
+50
Vince
2010-09-16 02:07:59 UTC
view on stackexchange narkive permalink

U redu, pokušat ću ovo. Nekoliko mjeseci unatrag pretražio sam dobru količinu literature kako bih pronašao intuitivno objašnjenje koje bih mogao objasniti nestatističaru. Smatrao sam da su izvodi koji koriste Lagrangeove multiplikatore najintuitivniji.

Recimo da imamo podatke visoke dimenzije - recimo 30 mjerenja izvršenih na insektu. Bube imaju različite genotipove i malo različite fizičke značajke u nekim od ovih dimenzija, ali s tako visokim podacima o dimenzijama teško je reći koji insekti pripadaju kojoj skupini.

PCA je tehnika za smanjenje dimenzije za:

  1. Uzimanje linearnih kombinacija izvornih varijabli.
  2. Svaka linearna kombinacija objašnjava najveću varijancu u podacima koje može.
  3. Svaka linearna kombinacija nije u korelaciji s ostalima

Ili, matematički pojmovi:

  1. Za $ Y_j = a_j 'x $ (linearna kombinacija za jth komponentu)
  2. Za $ k > j $, $ V (Y_k) < V (Y_j ) $ (prve komponente objašnjavaju više varijacija)
  3. $ a_k 'a_j = 0 $ (ortogonalnost)

Pronalaženje linearnih kombinacija koje zadovoljavaju ta ograničenja vodi nas do vlastitih vrijednosti. Zašto?

Preporučujem da u cijeloj izvedbi pogledate knjigu Uvod u analizu multivarijatnih podataka (str. 50), ali osnovna ideja su problemi uzastopne optimizacije (maksimiziranje varijance) ograničen tako da je a'a = 1 za koeficijente a (kako bi se spriječio slučaj kada varijance mogu biti beskonačne) i ograničen da osigura da su koeficijenti ortogonalni.

To dovodi do optimizacije s Lagrangeovim multiplikatorima, što zauzvrat otkriva zašto se koriste vlastite vrijednosti. Prelijen sam da to upišem (oprostite!), Ali ovaj PDF od ovog trenutka prilično dobro prolazi kroz dokaz.

Nikad ne bih pokušao to objasniti svojoj baki, ali ako bih morao općenito razgovarati o tehnikama smanjenja dimenzija, ukazao bih na ovaj trivijalni primjer projekcije (ne PCA). Pretpostavimo da imate Calder mobitel koji je vrlo složen. Neke točke u 3-d prostoru su blizu jedna drugoj, druge ne. Ako smo ovaj mobitel objesili o strop i osvjetljavali ga iz jednog kuta, dobit ćemo projekciju na ravninu niže dimenzije (2-d zid). Ako je ovaj mobitel uglavnom širok u jednom smjeru, ali mršav u drugom smjeru, možemo ga okretati kako bismo dobili projekcije koje se razlikuju u korisnosti. Intuitivno je mršav oblik u jednoj dimenziji projiciran na zid manje koristan - sve se sjene preklapaju i ne daju nam puno informacija. Međutim, ako ga zakrenemo tako da svjetlost svijetli na širokoj strani, dobit ćemo bolju sliku podataka o smanjenoj dimenziji - točke su više raširene. To je često ono što želimo. Mislim da bi moja baka to mogla razumjeti :-)

To je vrlo laički ;-)
To je mala matematika, ali najbolji način da nešto shvatite je izvesti.
Imate izuzetno dobro obrazovanu baku :-).
sviđa mi se objašnjenje sa svjetlošću koja sja na trodimenzionalnoj strukturi
(+1) Svi su izvrsni odgovori, ali ovo bih također dao.
#8
+41
ttnphns
2012-09-04 13:11:18 UTC
view on stackexchange narkive permalink

Pokušavajući biti netehničar ... Zamislite da imate multivarijatne podatke, višedimenzionalni oblak točaka. Kada izračunate kovarijantnu matricu onih koje zapravo (a) centrirate oblak, tj. Postavljate ishodište kao višedimenzionalnu sredinu, osi koordinatnog sustava sada se križaju u središtu oblaka, (b) šifriraju informacije o obliku oblaka i kako je orijentirana u prostoru pomoću unosa varijance-kovarijance. Dakle, većina važnih informacija o obliku podataka u cjelini pohranjena je u matrici kovarijance.

Tada radite vlastito razlaganje te matrice i dobivate popis vlastitih vrijednosti i odgovarajući broj svojstveni vektori. Sada je 1. glavna komponenta nova, latentna varijabla koja se može prikazati kao os koja prolazi kroz ishodište i orijentirana u smjeru maksimalne varijance (debljine) oblaka. Varijansa duž ove osi, tj. Varijansa koordinata svih točaka na njoj, je prva vlastita vrijednost, a orijentacija osi u prostoru koja se odnosi na izvorne osi (varijable) definirana je pomoću 1. svojstveni vektor: njegovi unosi su kosinusi između njega i tih izvornih osi. Spomenute koordinate podatkovnih točaka na 1. komponenti su vrijednosti 1. glavne komponente ili ocjene komponenata; izračunavaju se kao umnožak (centrirane) matrice podataka i vlastitog vektora.

"Nakon" 1. pr. Izmjerena komponenta je, recimo, "uklonjena" iz oblaka sa svom varijancom koju je uzela u obzir, a dimenzionalnost oblaka pada za jedan. Dalje, sve se ponavlja s drugom vlastitom vrijednošću i drugim vlastitim vektorom - 2. pr. komponenta se snima, a zatim "uklanja". Itd.

Dakle, još jednom: vlastiti vektori su kosinusi smjera glavnih komponenata, dok su vlastite vrijednosti veličina (varijansa) glavnih komponenata. Zbroj svih vlastitih vrijednosti jednak je zbroju varijanci koje su na dijagonali matrice varijance-kovarijance. Ako "magnitudinalne" podatke pohranjene u vlastitim vrijednostima prenesete u vlastite vektore da biste ih dodali u "orijentacijske" informacije pohranjene u njima, dobit ćete ono što se naziva glavna komponenta učitavanja ; ta su učitavanja - jer nose obje vrste informacija - kovarijance između izvornih varijabli i glavnih komponenata.

Kasnije P.S. Ovdje posebno želim dva puta naglasiti terminološku razliku između vlastitih vektora i opterećenja . Mnogi ljudi i neki paketi (uključujući neke od R ) flippantly koriste dva pojma naizmjenično. To je loša praksa jer su predmeti i njihova značenja različiti. Vlastiti vektori su kosinusi smjera, kut pravokutne "rotacije" koji iznosi PCA. Opterećenja su svojstveni vektori cijepljeni s informacijama o varijabilnosti ili veličini rotiranih podataka. Opterećenja su koeficijenti pridruživanja između komponenata i varijabli i oni su izravno usporedivi s koeficijentima pridruživanja koji se izračunavaju između varijabli - kovarijance, korelacije ili drugi skalarni proizvodi, na kojima zasnivate svoj PCA. I svojstveni vektori i opterećenja slični su u pogledu toga što služe regresijskim koeficijentima u predviđanju varijabli po komponentama (a ne obrnuto! $ ^ 1 $). Vlastiti vektori su koeficijenti za predviđanje varijabli prema rezultatima sirovih komponenata. Opterećenja su koeficijenti za predviđanje varijabli skaliranim (normaliziranim) rezultatima komponenata (nije ni čudo: opterećenja su precipitirala informacije o varijabilnosti, stoga komponente koje se koriste moraju biti lišene). Još jedan razlog zašto ne miješamo vlastite vektore i opterećenja jest taj što neke druge tehnike smanjenja dimenzionalnosti osim PCA - poput nekih oblika faktorske analize - izračunavaju opterećenja izravno, zaobilazeći vlastite vektore. Vlastiti vektori proizvod su vlastite razgradnje ili razgradnje pojedinačne vrijednosti; neki oblici faktorske analize ne koriste te dekompozicije i dolazi do opterećenja obrnuto. Napokon, to su opterećenja, a ne svojstveni vektori, pomoću kojih tumačite komponente ili čimbenike (ako ih trebate interpretirati). Učitavanje je približno doprinos komponente u varijabli: u PCA (ili faktorskoj analizi) komponenta / faktor se opterećuje na varijablu, a ne obrnuto. U sveobuhvatnim rezultatima PCA treba prijaviti i vlastite vektore i opterećenja, kao što je prikazano na pr. ovdje ili ovdje.

Vidi također o opterećenjima u odnosu na vlastite vektore.


$ ^ 1 $ Budući da je matrica svojstvenih vektora u PCA ortonormalna, a inverzna transpozicija, možemo reći da oni isti vlastiti vektori su i koeficijenti kojima se unaprijed predviđaju komponente pomoću varijabli. Međutim, to nije slučaj s opterećenjima.

@amoeba, Ne inzistiram i možete koristiti bilo koju terminologiju na koju ste navikli. Jasno sam objasnio zašto mislim da je izraze "opterećenja" i "vlastite vektore" bolje držati odvojeno. Slijedim klasičnu tradiciju, poput one u Harmanu. Analiza modernog faktora, ako se samo dobro sjećam tradicije.
(Nastavak.) U svakom slučaju, i sami znate da se pojam "opterećenja", iako je doista dvojben, ipak ne miješa sa "vlastitim vektorom" u drugim multivarijantnim analizama, poput diskriminacijske analize, na primjer. Još jednom, kako sam rekao, u PCA učitavanja 1) uključuju informacije o veličini varijacije; 2) Jesu li kovarijance / korelacije i stoga se koriste za tumačenje. Vrijednosti vlastitog vektora - nisu.
+1 Čitao sam vaše postove o PCA-u i drugim srodnim pitanjima i puno sam naučio.
#9
+34
Peter Flom
2010-09-16 15:23:43 UTC
view on stackexchange narkive permalink

OK, potpuno ne-matematički odgovor:

Ako imate hrpu varijabli na hrpi predmeta i želite je svesti na manji broj varijabli na tim istim predmetima, dok gubite što manje podataka, tada je PCA jedan od alata za to.

Razlikuje se od faktorske analize, iako često daju slične rezultate, u tome što FA pokušava oporaviti mali broj latentnih varijabli iz veće broj promatranih varijabli za koje se vjeruje da su povezane s latentnim varijablama.

Hej Peter! Drago mi je vidjeti vas ovdje. Ovo je stvarno dobar, jednostavan, bez matematičkog odgovora.
+1 za spominjanje FA-a, o kojem, čini se, nitko drugi ne raspravlja i kojem se čini da se objašnjenja nekih ljudi stapaju.
Čini se da nema razlike u ciljevima PCA i FA - oba imaju za cilj okretati se kako biste mogli vidjeti najvažnije čimbenike (latentni vektori, ili dimenzije, pojedinačni vektori ili bilo što drugo). No čini se da FA nije algoritam već obitelj srodnih tehnika (međusobno i SVD i PCA) s odgovarajuće loše definiranim ciljevima (što će reći raznolikim i međusobno nedosljednim, pa različite varijante 'optimiziraju' različite stvari).
Bi li bilo ispravno reći da je PCA jedan od mnogih mogućih načina za faktorsku analizu?
Terminologija na ovom području notorno je nedosljedna.
#10
+33
Antoni Parellada
2015-05-06 10:31:41 UTC
view on stackexchange narkive permalink

Nakon izvrsnog posta JD Longa u ovoj temi, potražio sam jednostavan primjer i R kod potreban za izradu PCA i povratak na izvorne podatke. Dao mi je geometrijsku intuiciju iz prve ruke i želim podijeliti ono što sam dobio. Skup podataka i kôd mogu se izravno kopirati i zalijepiti u R obrazac Github.

Koristio sam skup podataka koji sam pronašao na mreži na poluvodičima ovdje i Obrezao sam ga na samo dvije dimenzije - "atomski broj" i "talište" - kako bih olakšao crtanje.


Kao upozorenje, ideja je samo ilustracija računskog postupka: PCA koristi se za smanjenje više od dvije varijable na nekoliko izvedenih glavnih komponenata ili za identificiranje kolinearnosti također u slučaju više značajki. Dakle, ne bi našao veliku primjenu u slučaju dvije varijable, niti bi bilo potrebe za izračunavanjem vlastitih vektora korelacijskih matrica kako je istaknuo @amoeba.


Dalje , Skratio sam opažanja s 44 na 15 kako bih olakšao zadatak praćenja pojedinih točaka. Krajnji rezultat bio je okvir podataka skeleta ( dat1 ):

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

Stupac "spojevi" označava kemijsku strukturu poluvodiča i igra ulogu reda.

Ovo se može reproducirati na sljedeći način (spremno za kopiranje i lijepljenje na R konzolu):

  # install.packages ('gsheet') knjižnica ( gsheet) dat <- read.csv (url ("https://raw.githubusercontent.com/RInterested/DATASETS/gh-pages/semiconductors.csv")) kolimena (dat) [2] <- "atomic.no" dat1 <- podskup (dat [1: 15,1: 3]) row.names (dat1) <- dat1 $jedinjenjadat1 <- dat1 [, - 1]  

Podaci su tada skalirano:

  X <- apply (dat1, 2, function (x) (x - mean (x)) / sd (x)) # Ovo centrira točke podataka oko znači i standardizira dijeljenjem sa SD. # To je ekvivalent `X <- skala (dat1, centar = T, ljestvica = T)` 

Slijedili su linearni koraci algebre:

  C <- cov (X) # Kovarijantna matrica (centrirani podaci)  

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

Funkcija korelacije cor (dat1) daje isti izlaz na skaliranim podacima kao i funkcija cov (X) na skaliranim podacima .

  lambda <- eigen (C)  $ values ​​# Eigenvalueslambda_matrix <- diag (2) * eigen (C) $  values ​​# Matrica vlastitih vrijednosti  

$ \ begin {bmatrix} & \ boja {ljubičasta} {\ lambda _ {\ text {PC1}}} & \ boja {narančasta} {\ lambda _ {\ text {PC2}}} \\ &1.296422& 0 \\ &0&0.7035783 \ end {bmatrix} \ end {bmatrix} $ end {bmatrix} / span>

  e_vectors <- eigen (C) $ vectors # Vlastiti vektori  

$ \ frac {1} {\ sqrt {2}} \ begin {bmatrix} & \ color {ljubičasta} {\ text {PC1}} & \ color {narančasta} {\ text {PC2}} \ \ &1& \, \, \, \, \, 1 \\ &1&-1 \ end {bmatrix} $

Budući da se prvi svojstveni vektor u početku vraća kao $ \ sim \ small [-0,7, -0,7] $ odlučimo ga promijeniti u $ \ small [0,7, 0,7] $ kako bismo napravili u skladu je s ugrađenim formulama putem:

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

Rezultirajuće vlastite vrijednosti bile su $ \ small 1.2964217 $ i $ \ small 0,7035783 $ . U manje minimalističkim uvjetima, ovaj bi rezultat pomogao u odluci koje vlastite vektore uključiti (najveće vlastite vrijednosti). Na primjer, relativni doprinos prve vlastite vrijednosti iznosi $ \ small 64.8 \% $ : eigen (C) $ values ​​[1] / sum (eigen ( C) $ values) * 100 , što znači da na njega otpada $ \ sim \ small 65 \% $ varijabilnosti podataka. Varijabilnost u smjeru drugog vlastitog vektora je $ 35,2 \% $ . To se obično prikazuje na grafikonu zasipa koji prikazuje vrijednost vlastitih vrijednosti:

enter image description here

Uključit ćemo oba vlastita vektora s obzirom na malu veličinu ovaj primjer podataka o igračkama, razumijevajući da bi izuzeće jednog od vlastitih vektora rezultiralo smanjenjem dimenzionalnosti - ideja koja stoji iza PCA-a.

Matrica rezultata određena je kao umnožavanje matrice skalirani podaci ( X ) pomoću matrice vlastitih vektora (ili "rotacija") :

  score_matrix <- X% *% e_vectors # Identično često pronađenoj operaciji: t (t (e_vectors)% *% t (X))  

Koncept podrazumijeva linearnu kombinaciju svakog unosa (u ovom slučaju retka / predmeta / promatranja / supravodiča) centriranih (i u ovom slučaju skaliranih) podataka ponderiranih redovima svaki svojstveni vektor , tako da ćemo u svakom od posljednjih stupaca matrice rezultata pronaći doprinos svake varijable (stupca) podataka (cijeli X ), ALI samo odgovarajući vlastiti vektor sudjelovat će u izračunavanju (tj. prvi svojstveni vektor $ [0,7, 0,7] ^ {T} $ pridonijet će $ \ text {PC} \, 1 $ (glavna komponenta 1) i $ [0,7, -0,7] ^ {T} $ na $ \ text {PC} \, 2 $ , kao u:

enter image description here

Stoga će svaki svojstveni vektor utjecati na svaku varijablu različito, a to će se odraziti na "opterećenja" PCA-a. U našem slučaju, negativni predznak u drugoj komponenti drugog vlastitog vektora $ [0,7, - 0,7] $ promijenit će predznak vrijednosti tališta u linearnim kombinacijama koje stvaraju PC2, dok će učinak prvog vlastitog vektora biti stalno pozitivan:

enter image description here

Vlastiti vektori se skaliraju na $ 1 $ :

  > primijeniti (e_vektori, 2, funkcija (x) zbroj (x ^ 2)) PC1 PC2 1 1 

dok je ( opterećenja ) su svojstveni vektori prilagođeni vlastitim vrijednostima (usprkos zbunjujućoj terminologiji u ugrađenim R funkcijama prikazanim dolje). Prema tome, opterećenja se mogu izračunati kao:

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

Zanimljivo je primijetiti da će rotirani oblak podataka (rezultat rezultata) imati varijancu duž svake komponente (PC) jednaku vlastitim vrijednostima :

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

Upotrebom ugrađenih funkcija rezultati se mogu replicirati:

  # Za SCORE MATRIX : prcomp (X)  $ x # ili ... princomp (X) $  scores # Znakovi u stupcu PC 1 bit će obrnuti. # a za EIGENVECTOR MATRIX: prcomp (X)  $ rotacija # ili ... princomp (X) $  učitavanja # i za EIGENVALUES: prcomp (X)  $ sdev ^ 2 # ili ... princomp (covmat = C) $  sd ^ 2  

Alternativno, dekompozicija pojedinačne vrijednosti n ( $ \ text {U} \ Sigma \ text {V} ^ \ text {T} $ ) metoda se može primijeniti za ručno izračunavanje PCA; zapravo je ovo metoda koja se koristi u prcomp () . Koraci se mogu navesti kao:

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

Rezultat je prikazane dolje, s prvom, udaljenosti od pojedinih točaka do prvog vlastitog vektora, a na drugoj crti ortogonalne udaljenosti do drugog vlastitog vektora:

enter image description here

Ako smo umjesto toga ucrtali vrijednosti bodovne matrice (PC1 i PC2) - više nisu "taljenje.točka" i "atomsko.no", već stvarno promjena osnove koordinata točke sa vlastitim vektorima kao osnovom, te udaljenosti bi se sačuvale, ali prirodno bi postale okomite na os xy:

enter image description here

Trik je sada bio oporaviti izvornik podaci . Točke su vlastitim vektorima transformirane jednostavnim matričnim množenjem. Sada su podaci zarotirani natrag množenjem s inverzom matrice vlastitih vektora s rezultirajućom označenom promjenom mjesta podatkovnih točaka. Primjerice, primijetite promjenu ružičaste točke "GaN" u lijevom gornjem kvadrantu (crni krug u lijevom crtežu, dolje), vraćajući se u početni položaj u lijevom donjem kvadrantu (crni krug u desnom crtežu, dolje).

Sad smo napokon vratili izvorne podatke u ovu "derotiranu" matricu:

enter image description here

Iznad promjene koordinata rotacije podataka u PCA, rezultati se moraju interpretirati, a ovaj postupak obično uključuje biplot , na kojem su točke podataka ucrtane u odnosu na nove koordinate vlastitog vektora i izvornik varijable su sada superponirane kao vektori. Zanimljivo je primijetiti ekvivalenciju položaja točaka između crteža u drugom redu grafikona rotacije iznad ("Rezultati s osom xy = svojstveni vektori") (slijeva u crtežima koji slijede) i biplot (zdesna):

enter image description here

Prekrivanje izvornih varijabli kao crvene strelice nudi put do interpretacije PC1 kao vektora u smjeru (ili s pozitivnom korelacijom) s oba atomska br. i talište ; i PC2 kao komponente uz rastuće vrijednosti atomskog br , ali negativno u korelaciji s točkom topljenja , u skladu s vrijednostima vlastitih vektora:

  PCA <- prcomp (dat1, center = T, scale = T) PCA $ rotacija PC1 PC2atomic.no 0.7071068 0.7071068melting.point 0.7071068 -0.7071068  

Kao konačnu točku, legitimno je zapitati se da li na kraju dana jednostavno radimo obične najmanje kvadrate na drugačiji način, koristeći vlastite vektore za definiranje hiperravnina kroz oblake podataka, zbog očitih sličnosti. Za početak je cilj obje metode različit: PCA treba smanjiti dimenzionalnost kako bi razumio glavne pokretače varijabilnosti skupova podataka, dok je OLS namijenjen izdvajanju odnosa između "ovisne" varijable i jedne ili više objašnjavajućih varijabli.

U slučaju jedne objašnjene varijable kao u primjeru igračke u ovom postu, također možemo nadgraditi OLS regresijsku liniju na oblak podataka kako bismo primijetili kako OLS smanjuje zbroj okomitih kvadratnih udaljenosti od ugrađene crte do točaka, za razliku od pravokutnih linija dotičnog vlastitog vektora:

enter image description here

U OLS-u kvadratni ostaci hipotenu su okomicama od točaka do crte OLS-a, što rezultira većim zbrojem kvadratnih ostataka ( 12.77 ) od zbroja kvadratnih okomitih segmenata od točaka do OLS linije ( 11.74 ). Potonje je ono za što je PCA optimiziran: (Wikipedia) "PCA kvantificira predstavljanje podataka kao agregat L2-norme projekcija podatkovne točke u podprostor, ili ekvivalentno tome agregiranu euklidsku udaljenost izvornih točaka od njihovih prikaza projiciranih iz podprostora. . " Ovaj podsustav ima za osnovu ortogonalne vlastite vektore matrice kovarijance. Dokaz ove izjave možete pronaći ovdje, zajedno s odgovarajućom zaslugom Marca Deisenrotha.

Prirodno, činjenica da je skup podataka skaliran i centriran na nulu smanjuje presretanje OLS-a na nulu, a nagib prema korelaciji između varijabli, 0.2964 .


Ovaj interaktivni vodič Victora Powella daje neposredne povratne informacije o promjenama u vlastitim vektorima kako se oblak podataka mijenja.


Sav kôd povezan s ovim postom možete pronaći ovdje.

+1 za trud, a posebno za animaciju!Ali treba imati na umu da je PCA na matrici korelacije dviju varijabli pomalo poseban slučaj jer * sve * matrice korelacije dvije varijable [imaju identične vlastite vektore] (http://stats.stackexchange.com/questions/140434): jedan od njih uvijek će biti [0,7 0,7] (0,7 je 1 / sqrt (2)).To nije slučaj za kovarijancijske matrice ili za korelacijske matrice u višim dimenzijama.
@amoeba Osjetio sam se pomalo opravdanim u svom primjeru igračke s golim kostima kad sam naletio na [ovo objašnjenje PCA] (https://youtu.be/Y4f7K9XF04k?t=1884) od časnog MIT linearnog algebra mavena [Prof.Gilbert Strang] (https://en.wikipedia.org/wiki/Gilbert_Strang), također koristeći samo dvije varijable.Nesumnjivo, slučajnost :-)
#11
+32
isomorphismes
2014-01-16 11:22:16 UTC
view on stackexchange narkive permalink

Najlakše je izračunati matematiku u 2-D.

Svaka matrica odgovara linearnoj transformaciji. Linearne transformacije mogu se vizualizirati uzimajući nezaboravni lik na ravnini i videći kako se taj lik iskrivljuje linearnom transformacijom:

linear transformations (slika: Flanigan & Kazdan) / p>

  • Vlastiti vektori ostaju isti vektori. Oni pokazuju transformaciju u istom smjeru kao nekada. mona lisa eigenvectors (plava je ostala ista, pa je taj smjer svojstveni vektor od $ \ tt {shear} $ .)
  • Vlastite vrijednosti koliko raste ili se smanjuje vektor koji ostaje isti (plava je ostala iste veličine pa bi vlastita vrijednost bila $ \ puta 1 $ .)
  • PCA rotira vaše osi kako biste se bolje "poredali" sa svojim podacima. PCA football
    (izvor: weigend.com) PCA koristi vlastite vektore matrice kovarijance da bi utvrdio kako biste trebali okretati podaci. Budući da je rotacija vrsta linearne transformacije, vaše nove dimenzije bit će zbroji starih, poput $ \ langle 1 \ rangle = 23 \% \ cdot [1] + 46 \% \ cdot [2] + 39 \% \ cdot [3] $ .

Razlog zbog kojeg su ljudi koji rade sa stvarnim podacima zainteresirani za vlastite vektore i linearne transformacije je da je u različitim kontekstima "linearno" ( $ f (a \ cdot x + b \ cdot y) = a \ cdot f (x) + b \ cdot f ( y) $ ) može pokriti stvarno zanimljive stvari. Na primjer, razmislite što to svojstvo znači ako $ + $ i $ \ cdot $ dobiju nova značenja ili ako $ a $ i $ b $ dolaze iz nekog zanimljivog polja ili $ x $ i $ y $ iz nekog zanimljivog prostora. Na primjer:

faces

PCA sam po sebi je još jedan primjer, najpoznatiji statističarima. Neki od ostalih odgovora poput Freyina daju stvarne aplikacije PCA-a.

$$ {} $$ $ \ dagger $ Potpuno me iznenađuje da nešto tako jednostavno kao što je "rotacija" može učiniti toliko stvari na različitim područjima, poput postavljanja proizvoda za sustav preporuka $ \ overset {\ text {slično kako?}} {\ longleftarrow \! \! \! - \! \! - \! \! - \! \! - \! \! - \ ! \! \! \ longrightarrow} $ objašnjavajući geopolitički sukob. Ali možda nije toliko iznenađujuće ako razmišljate o fizici, gdje odabir bolje osnove (npr. Izrada osi $ \ mathrm {x} $ smjer kretanja, a ne $ 42,8 \% [\ mathrm {x}] \ oplus 57,2 \% [\ mathrm {y}] $ , pretvorit će nepojmljive jednadžbe u jednostavne ).

Zapravo je nekako slučajno da su rotacije linearne i tako prikladan način za opisivanje onoga što se događa za negeometrijske podatke. Slučajnost se odnosi na kvadratnu prirodu i kartezijanskog / euklidskog prostora i središnjeg graničnog teorema / Gaussova. Viz. sigme se kvadratno zbrajaju poput pravokutnih dimenzija, odakle analogno s 2D i 3D prostorom potječe naša ND rotacijska / ortogonalna terminologija.
@DavidMWPowers Zanimljivo. Razmišljam o rotacijama s gledišta linearne algebre.
#12
+17
Phillip Cloud
2011-01-06 03:11:38 UTC
view on stackexchange narkive permalink

Od nekoga tko je puno koristio PCA (i pokušao to objasniti i nekolicini ljudi), evo primjera iz mog vlastitog područja neuroznanosti.

Kad snimamo s tjemena neke osobe radimo to sa 64 elektrode. Dakle, na popisu imamo 64 broja koji predstavljaju napon koji daje tjeme. Budući da snimamo s mikrosekundnom preciznošću, ako imamo 1-satni eksperiment (često su to 4 sata), to nam daje 1e6 * 60 ^ 2 == 3.600.000.000 vremenskih točaka u kojima je zabilježen napon na svakoj elektrodi tako da sada imaju matricu od 3.600.000.000 x 64. Budući da je glavna pretpostavka PCA-a da su vaše varijable u korelaciji, izvrsna je tehnika smanjiti ovu smiješnu količinu podataka na količinu koja se može izvršiti. Kao što je već mnogo puta rečeno, vlastite vrijednosti predstavljaju količinu varijance objasnjenu varijablama (stupcima). U ovom slučaju vlastita vrijednost predstavlja varijancu napona u određenom trenutku tijekom kojeg doprinosi određena elektroda. Tako sada možemo reći, "Oh, pa, elektroda x u vremenskoj točki y je ono na što bismo se trebali usredotočiti za daljnju analizu, jer se tu događa najviše promjena". Nadam se da ovo pomaže. Volim te spletke regresije!

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

Možda bih bila loša osoba da odgovorim na ovo jer sam poslovična baka koja mi je objasnila taj pojam i ne puno više, ali evo:

Pretpostavimo da imate stanovništvo. Veliki dio populacije umire od infarkta. Pokušavate otkriti što uzrokuje srčani udar.

Imate dva podatka: visinu i težinu.

Sad je jasno da postoji NEKI odnos između težine i srčanog udara , ali korelacija zapravo nije jaka. Postoje neki teški ljudi koji imaju puno srčanih napada, ali neki nemaju.

Sada radite PCA i on vam govori da je težina podijeljena s visinom ('tjelesna masa') mnogo vjerojatniji prediktor srčanog udara, bilo težine ili visine, jer, eto, "stvarnost" je ta da tjelesna masa uzrokuje srčane napade.

U osnovi, radite PCA jer mjerite gomilu stvari, a vi zapravo ne znate jesu li to stvarno glavne komponente ili postoji neka dublja temeljna komponenta koju niste izmjerili.

[Slobodno uredite ovo ako je potpuno isključeno baza. Stvarno ne razumijem koncept dublje od ovog].

Dobrodošli na stranicu sa statistikama @Joel! Ako dobijete priliku, mogli biste također doprinijeti raspravi o našem predloženom projektu analize distribuiranih podataka StackExchange: http://stats.stackexchange.com/questions/2512/what-should-be-our-first-polystats-project.
Izvrstan primjer, ali tehnički PCA ne može pronaći objašnjenje tjelesne mase jer može pronaći samo linearna objašnjenja, to su ponderirane sume izvornih varijabli. Međutim, ako uzmete zapisnike ulaznih varijabli, omjer postaje razlika i ako je to ispravno objašnjenje, PCA će ga moći pronaći.
#14
+13
Raffael
2013-11-16 02:43:46 UTC
view on stackexchange narkive permalink

Ovaj odgovor daje intuitivnu i nematematsku interpretaciju:

PCA će vam dati skup ortogonalnih vektora unutar oblaka točaka visoke dimenzije. Redoslijed vektora određen je informacijom koja se prebacuje nakon projiciranja svih točaka na vektore.

Drugim riječima: Prvi glavni vektor komponenti reći će vam najviše o oblaku točaka nakon što projicira sve točke na vektor. Ovo je naravno intuitivno tumačenje.

Pogledajte ovaj elipsoid (slijedite vezu za 3D model):

enter image description here

Ako biste morali odabrati jedan vektor koji tvori jednodimenzionalni podprostor na koji će se projicirati točke elipsoidnih točaka. Koju biste odabrali jer pruža najviše informacija o izvornom setu u 3 dimenzije?

Pretpostavljam crvenu duž najduže osi. A ovo je zapravo izračunata 1. glavna komponenta! Koji sljedeći - izabrao bih plavu duž sljedeće najduže osi.

Tipično želite skup točaka projicirati iz visokodimenzionalnog prostora na dvodimenzionalnu ravninu ili u tri dimenzionalni prostor.

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

Evo jednog za baku:

U našem gradu postoje ulice koje idu prema sjeveru i jugu, neke prema istoku i zapadu, a neke čak prema sjeverozapadu i jugoistoku, neke od SI do JZ. Jednog dana momak izmjeri sav promet na svim ulicama, otkrio je da se najveći promet odvija dijagonalno, od sjeverozapada prema jugoistoku, drugi po veličini je okomit na ovaj koji ide od sjeveroistoka na jugozapad, a sve ostalo je prilično malo. Dakle, crta veliki kvadrat i stavlja veliku crtu slijeva udesno i kaže da je SZ na JI, a zatim povlači drugu liniju okomito gore-dolje kroz sredinu. Kaže da je to drugi smjer prometa po gužvi (SI prema JZ). Ostalo je malo pa se može zanemariti.

Lijeva desna linija prvi je svojstveni vektor, a gornja donja crta drugi svojstveni vektor. Ukupan broj automobila koji idu lijevo i desno prva je vlastita vrijednost, a onih koji idu gore i dolje druga je vrijednost.

Čini se da se ova analogija raspada tijekom ispitivanja. Što ako najveći i drugi po veličini prometni pravac nisu pravokutni? Kako nam vaša analogija pomaže u razumijevanju PCA u takvom slučaju?
Pretpostavljam da baka razumije što pravokutno znači? Da, ima tu nekih nedostataka, ali to je početak. Mislim da je sjajno što je ovdje bilo toliko odgovora.
Bez obzira razumije li "baka" objavu ili ne, ona mora biti razumno jasna i točna. Čini se da vaša analogija ne postiže niti jedan od tih ciljeva. To je možda zato što ne razumijem analogiju: ne mogu je povezati s onim što PCA jest ili čini. Možda biste mogli pojasniti kako analogija funkcionira tako da drugi čitatelji ne postanu toliko mistificirani kao ja.
Činjenica da nisu pravokutne znači da vam treba ICA ili FA, a ne PCA. Da je baka gledala Zvjezdane staze (da, ona je ta generacija) kad brod s invaliditetom prikazuju pod kutom - PCA bi nastojao oporaviti referentnu ravninu relevantnu za mjerilo i pogled (galaktičku ravninu ili brodske osi).
-1.Slažem se s @whuber da ova analogija ne funkcionira.Koji bi ovdje trebali biti podaci, od koje su matrice kovarijance ti "svojstveni vektori"?Ja to uopće ne razumijem.
Mislim da ova analogija izvrsno funkcionira!Grad je bio uređen ulicama NS i EW.Vremenom je aerodrom izgrađen u SW i glavnom poslovnom području u SI, dok stambena naselja postoje u oba područja.Iz nekog razloga, većina ljudi koji rade u zračnoj luci slučajno žive u SI, a većina koji rade u tom poslu žive u SW.Slično za industrijski park i glavne rekreacijske zone na SZ i JI.Ako želite smanjiti promet malim ulicama izgradnjom brzih putova, napravite PCA na vektorima brzine na svakom raskrižju, to bi vam reklo da napravite brze putove SZ-JI i SI-JZ.
#16
+11
bill_e
2012-09-11 13:24:55 UTC
view on stackexchange narkive permalink

Iako postoji mnogo primjera koji pružaju intuitivno razumijevanje PCA-a, ta činjenica gotovo može otežati shvaćanje na početku, barem je to bilo za mene.

"Što je jedno s PCA-om zajedničko svim tim različitim primjerima iz različitih disciplina ??"

Ono što mi je pomoglo da intuitivno shvatim bilo je nekoliko matematičkih paralela, jer je očito da je matematika lak dio za vas, iako to ne pomaže objasniti vašoj baki ...

Sjetite se problema regularizacije, pokušavajući doći

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

Ili na engleskom, raščlanite svoje podatke $ Y $ na dvije druge matrice koje će nekako rasvijetliti podatak? Ako te dvije matrice dobro funkcioniraju, tada pogreška između njih i $ Y $ ne bi trebala biti prevelika.

PCA vam daje korisnu faktorizaciju $ Y $ , iz svih razloga koje su drugi rekli. Razbija matricu podataka koju imate, $ Y $ , na dvije druge korisne matrice. U ovom bi slučaju $ X $ bila matrica u kojoj su stupci prvi $ k $ računala koja ste čuvali , a $ B $ je matrica koja vam daje recept za rekonstrukciju stupaca matrice $ Y $ pomoću stupci $ X $ . $ B $ prvi je $ k $ redak $ S $ i svi $ V $ transponiraju. Vlastite vrijednosti na dijagonali $ S $ u osnovi ponderiraju koja su računala najvažnija. Tako vam matematika izričito govori koja su računala najvažnija: svako je ponderirano vlastitim vrijednostima. Zatim, matrica $ V ^ \ mathrm {T} $ govori osobnim računalima kako ih kombinirati.

Mislim da su ljudi dali mnogo intuitivnih primjera, pa sam to samo želio podijeliti. Vidjevši to mi je pomoglo da shvatim kako to djeluje. Postoji svijet zanimljivih algoritama i metoda koji rade slične stvari kao i PCA. Rijetko kodiranje je potpolje strojnog učenja koje se sastoji od faktoringa matrice $ A $ na dvije druge korisne i zanimljive koje odražavaju obrasce u $ A $ .

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

Evo matematičkog odgovora: prva glavna komponenta je najduža dimenzija podataka. Pogledajte ga i pitajte: gdje su podaci najširi? To je prva komponenta. Sljedeća komponenta je okomica. Dakle, cigara podataka ima duljinu i širinu. Ima smisla za sve što je nekako duguljasto.

Nažalost, ispravnost ovog odgovora ovisi o tome kako se tumači nejasan izraz "najdulje". Mnoga prirodna i relevantna tumačenja, poput * promjera *, bila bi pogrešna.
PCA zapravo prilično dobro funkcionira s različitim vrstama prirodnih načina mjerenja dimenzije / veličine. Samo trebate zamijeniti matricu kovarijance matricom za mjerenje "dimenzije" u bilo kojem smjeru (matrica samo treba biti pozitivno definirana ili simetrična.) To je baš kao da QuickSort djeluje za različite operatore naručivanja, ali dobit ćete različite rezultate za različite operatore naručivanja.
#18
+10
Jeremias Jackson
2012-12-10 02:49:43 UTC
view on stackexchange narkive permalink

Način na koji razumijem glavne komponente je sljedeći: Podaci s više varijabli (visina, težina, starost, temperatura, valna duljina, postotak preživljavanja, itd.) mogu se prikazati u tri dimenzije za crtanje povezanosti.

Sad, ako ste htjeli nekako shvatiti "3D podatke", možda biste željeli znati koje 2D ravnine (presjeci) ovih 3D podataka sadrže najviše informacija za zadani niz varijabli. Te su 2D ravnine glavne komponente, koje sadrže udio svake varijable.

Zamišljajte glavne komponente kao same varijable, sa složenim karakteristikama izvornih varijabli (ova nova varijabla mogla bi se opisati kao težina dijela, visina dijela, dob dijela itd.) Kada crtate jednu glavnu komponentu (X) prema drugoj (Y), ono što radite je izrada 2D karte koja može geometrijski opisati korelacije između izvornih varijabli. Sada korisni dio: budući da je svaki subjekt (opažanje) koji se uspoređuje povezan s vrijednostima za svaku varijablu, subjekti (opažanja) se također nalaze negdje na ovoj X Y karti. Njihovo se mjesto temelji na relativnom doprinosu svake temeljne varijable (tj. Na jedno promatranje mogu jako utjecati starost i temperatura, dok na drugo mogu više utjecati visina i težina). Ova nam karta grafički prikazuje sličnosti i razlike među ispitanicima i objašnjava te sličnosti / razlike u smislu koje ih varijable najviše karakteriziraju.

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

U drugom dijelu dat ću odgovor koji nije od matematike i detaljniji prikaz motivacije kroz matematiku iz ptičje perspektive.


Ne-matematičko objašnjenje je da PCA pomaže u visokodimenzionalnim podacima omogućujući vam da vidite u kojim smjerovima vaši podaci ima najviše odstupanja. Ovi su smjerovi glavne komponente . Jednom kada dobijete ove podatke, možete u nekim slučajevima odlučiti koristiti glavne komponente kao same značajne varijable i znatno smanjiti dimenzionalnost podataka držeći samo glavne komponente s najvećom varijancom ( moć objašnjenja ).

Na primjer, pretpostavimo da date upitnik za politička ispitivanja s 30 pitanja, a svako može dobiti odgovor od 1 ( u potpunosti se ne slažem ) do 5 ( snažno se slažem ). Dobivate na tone odgovora i sada imate 30-dimenzionalne podatke i ne možete od njih napraviti glave ili repove. Tada u očaju mislite pokrenuti PCA i otkriti da 90% vaše varijance dolazi iz jednog smjera, a taj smjer ne odgovara nijednoj vašoj osi. Nakon daljnje provjere podataka, zaključujete da ova nova hibridna os odgovara političkom spektru lijevo-desno, tj. Demokratski / republikanski spektar, i nastavljate s ispitivanjem suptilnijih aspekata podataka.


Matematika:

Ponekad pomaže smanjiti i pogledati matematičku motivaciju da se malo osvijetli značenje.

Postoji posebna obitelj matrica koje se mogu transformirati u dijagonalne matrice jednostavno promjenom koordinatne osi. Prirodno, nazivaju se dijagonalizirajućim matricama i dovoljno elegantno, nova koordinatna os koja je za to potrebna doista su vlastiti vektori.

Kako se pokazalo, matrica kovarijance simetrična je i uvijek će biti dijagonalizirajuća ! U tom se slučaju svojstveni vektori nazivaju glavnim komponentama i kada zapisujete matricu kovarijance u koordinate svojstvenih vektora, dijagonalni unosi (preostali su samo) odgovaraju varijansi u smjeru vaših vlastitih vektora. To nam omogućuje da znamo koji smjerovi imaju najviše odstupanja. Štoviše, budući da je matrica kovarijance dijagonalna u tim koordinatama, pametno ste eliminirali svu korelaciju između svojih varijabli.

Kao što je uobičajeno u praktičnim primjenama, pretpostavljamo da su naše varijable normalno raspoređene, pa je posve prirodno pokušati promijeniti svoje koordinate kako bi se vidjela najjednostavnija slika. Poznavanjem glavnih komponenata i njihovih pripadajućih vlastitih vrijednosti (varijansa) moći ćete smanjiti dimenzionalnost podataka ako je potrebno, a također ćete dobiti i brzi opći sažetak gdje se nalazi varijacija vaših podataka.

Ali na kraju dana, korijen sve te poželjnosti dolazi iz činjenice da je dijagonalne matrice način lakše rješavati u usporedbi s njihovim neurednijim, općenitijim rođacima.

Hvala vam na vašem doprinosu. Čini se da se, međutim, bavi nepotrebno uskim tumačenjem PCA-e. (1) PCA je plodno primijenjen na visoko ne-Gaussove skupove podataka. (2) PCA nije formalni parametarski postupak; možda je bolje o tome razmišljati kao o istraživačkom duhu. (3) * Sve * matrice kovarijance, bilo koje vrste multivarijatne distribucije ili podataka, mogu se dijagonalizirati. Ni Gaussianity (Normalnost) ni nedegeneracija nisu zahtjevi. (Simetrija matrice i stvarne komponente [jamstvo dijagonalizacije] (https://en.wikipedia.org/wiki/Spectral_theorem).)
Moram priznati, neugodno mi je što sam zaboravio, ali dobra stvar oko toga da su matrice kovarijance uopće dijagonalizirajuće. Idem urediti kako bih to odražavao. Također, možete li objasniti točku (2)? Nisam upoznat s razlikom između parametarskih ili neparametarskih postupaka.
#20
+8
Rorschach
2012-09-11 12:28:29 UTC
view on stackexchange narkive permalink

Prije nekog vremena pokušao sam razumjeti ovaj PCA algoritam i htio sam zabilježiti vlastite vektore i vlastite vrijednosti. U tom se dokumentu navodi da je svrha EV-a pretvoriti model modela velike veličine u model vrlo male veličine.

Na primjer, umjesto da se prvo konstruira most u punoj veličini, a zatim provode eksperimenti i ispitivanja na njemu je moguće koristiti EV-ove za stvaranje mosta vrlo male veličine gdje će se svi čimbenici / količine smanjiti s jednakom razlikom, a štoviše stvarni rezultat ispitivanja i testova povezanih s naponom koji se na njemu provode mogu se na odgovarajući način izračunati i povećati koliko je potrebno za originalni model. Na neki način EV-ovi pomažu u stvaranju sažetaka izvornika .

Za mene je ovo objašnjenje imalo duboko značenje onoga što sam pokušavao učiniti! Nadam se da će i vama pomoći!

-1.Možda nisam u potpunosti cijenio analogiju, ali izgleda prilično zavaravajući.PCA doista (na neki način) omogućuje "pretvaranje" "velikog" modela u "mali" model, ali to čini smanjenjem dimenzionalnosti skupa podataka.Ali kako je mali most niže dimenzionalnosti od velikog ?!Oboje su 3D, zar ne.
@amoeba: ovaj je izvadak iz papira koji sam pročitao, to nisu baš moje riječi.Već dugo nisam proučavao ovu temu i izgubio sam trag.
#21
+8
user2792
2011-01-15 18:25:13 UTC
view on stackexchange narkive permalink

Zašto tako vlastite vrijednosti / vlastiti vektori?

Kada radite PCA, želite izračunati neku ortogonalnu bazu maksimiziranjem projicirane varijance na svakom baznom vektoru.

Nakon izračunavanja prethodnih baznih vektora, želite da sljedeća bude:

  • ortogonalna prethodnoj
  • normi 1
  • maksimizirajući projiciranu varijancu, tj. s maksimalnom normom kovarijance

Ovo je ograničeni problem optimizacije, a Lagrangeovi multiplikatori (evo geometrijske intuicije, pogledajte stranicu wikipedia) kažu vam da bi gradijenti cilja (projicirana varijanca) i ograničenja (norma jedinice) trebali biti "paralelno" na optimiju.

To je isto kao kad bismo rekli da sljedeći bazni vektor treba biti vlastiti vektor matrice kovarijance. Najbolji izbor u svakom koraku je odabrati onaj s najvećom vlastitom vrijednošću među preostalim.

Definitivno * nije * objašnjenje laicima - ortogonalni osnovi vektora? maksimiziranje varijance projekcije? ograničeni problem optimizacije? Lagrangeov multiplikator? To su izrazito "žargonizirani" izrazi. Pokažite laiku koji razumije što ovo znači, a ja ću vam pokazati matematičara / statističara
#22
+8
shabbychef
2010-09-16 10:15:42 UTC
view on stackexchange narkive permalink

PCA gledam kao geometrijski alat. Ako vam je dana hrpa bodova u 3 razmaka koji su uglavnom svi na ravnoj liniji, a želite shvatiti jednadžbu te crte, dobit ćete je putem PCA (uzmite prvu komponentu). Ako imate gomilu točaka u 3-prostoru koje su uglavnom ravni, i želite otkriti jednadžbu te ravnine, učinite to putem PCA (uzmite najmanje značajni vektor komponente i to bi trebalo biti normalno na ravninu).

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

Zamislite da je baka upravo snimila svoje prve fotografije i filmove na digitalni fotoaparat koji ste joj poklonili za Božić, nažalost ona spušta desnu ruku pritiskajući gumb za fotografije, a prilično se trese i tijekom filmova. Primjećuje da ljudi, drveće, ograde, zgrade, vrata, namještaj itd. Nisu ravno gore-dolje, nisu okomiti i da pod, tlo, more i horizont nisu dobro vodoravni, a i filmovi su prilično klimavi. Pita možete li joj pomoći da ih popravi, svih 3000 fotografija s odmora i oko 100 videozapisa kod kuće i na plaži (ona je Australka), otvaranje poklona, ​​šetnja zemljom. Ona ima ovaj softver za fotografije koji vam omogućuje da to učinite kako ona kaže. Kažete joj da bi to trajalo danima i ionako neće raditi na videozapisima, ali znate tehnike zvane PCA i ICA koje bi mogle pomoći. Objašnjavate da vaše istraživanje zapravo uključuje upravo ovu vrstu rotacije podataka u prirodne dimenzije, da ove tehnike pronalaze najvažnije upute u podacima, u ovom slučaju fotografiji, i rotiraju pa je najvažnija vodoravna, druga je vertikalan (a može se nastaviti i za više dimenzija koje ne možemo dobro zamisliti, iako je vrijeme također dimenzija u filmovima).

-

Tehnička strana. U stvari, vjerojatno biste mogli zaraditi doktorat radeći to umjesto nje, a postoji važan članak Bell i Sejnowski (1997) o neovisnim komponentama slika koje odgovaraju rubovima. Da bi se ovo povezalo s PCA: ICA koristi PCA ili SVD kao prvi korak za smanjenje dimenzionalnosti i početne aproksimacije, ali ih zatim poboljšava uzimajući u obzir ne samo pogrešku drugog reda (SSE) poput PCA, već i pogreške visokog reda - ako je to istina ICA, svi viši redovi, iako se mnogi algoritmi ograničavaju na treći ili četvrti. Na komponente PCA niskog reda imaju tendenciju snažnog utjecaja horizontala i okomica. Bavljenje pokretima kamere za filmove također može koristiti PCA / ICA. I za 2D fotografije i za 2½D filmove potreban vam je nekoliko reprezentativnih trikova da biste to postigli.

Još jedna aplikacija koju biste mogli objasniti baki su vlastite površine - svojstveni vektori višeg reda mogu približiti '7 osnovnih emocija' ( prosječno lice za svakog od njih i 'skalirana rotacija' ili linearna kombinacija da se to usredsredi), ali često nalazimo komponente povezane sa spolom i rasom, a neke mogu razlikovati pojedince ili pojedinačne značajke (naočale, brada itd.). To se događa ako imate malo fotografija bilo kojeg pojedinca i mnogo emocija / izraza, ali drugačija je pristranost ako imate mnogo lica neutralnih izraza. Čini se da upotreba ICA umjesto PCA zapravo ne pomaže puno za osnovne emocije, ali Bartlett i Sejnowsiki (1997) pokazali su kako su pronađene korisne značajke za prepoznavanje lica.

Cijenim trud na komuniciranju primjerima i analogno. Korištenje slika je, pak, žalosno zbog velike vjerojatnosti da baka neće shvatiti da vaš osjećaj "rotiranja" nema nikakve veze sa stvarno okretanjem osi * slike *, niti će vjerojatno razumjeti da je koristite "dimenzija" u apstraktnom smislu u kojem fotografije imaju milijune dimenzija, a ne samo dvije.
Da, morate ga predstaviti kao oblak točaka, kao i na slikama u drugim odgovorima. Predobrada s nekim oblikom otkrivanja ruba i / ili postavljanjem praga vjerojatno bi bila dio "trikova" koje sam spomenula. No za operiranje složene fotografije potrebni su trikovi za doktorat.
@whuber Zapravo sam koristio PCA (dobro SVD) kako bih pronašao ove rotacije radeći stereo kalibraciju slike! Definitivno je to isti osjećaj rotacije.
#24
+7
Shlomo Argamon
2010-09-16 09:10:45 UTC
view on stackexchange narkive permalink

PCA u osnovi pronalazi nove varijable koje su linearne kombinacije izvornih varijabli, tako da u novom prostoru podaci imaju manje dimenzija. Zamislite skup podataka koji se sastoji od točaka u 3 dimenzije na površini ravne ploče podignute pod kutom. U izvornim osi x, y, z trebaju vam 3 dimenzije za predstavljanje podataka, ali s pravom linearnom transformacijom trebate samo 2.

U osnovi ono što je rekao @Joel, ali samo linearne kombinacije ulaza varijable.

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

Mislim da svi počinju objašnjavati PCA s pogrešnog kraja: iz vlastitih vektora. Moj odgovor započinje na pravom mjestu: koordinatni sustav. Vlastiti vektori i općenito vlastiti problem matematički su alat koji se koristi za rješavanje stvarnog problema koji je u pitanju, a to je pogrešan koordinatni sustav. Objasnit ću.

Počnimo s linijom. Što je crta? To je jednodimenzionalni objekt. Dakle, trebate samo jednu dimenziju za prelazak iz jedne točke u drugu. Na ravnini ipak pričvršćujete dvije koordinate bilo koje točke crte. To je zato što se s obzirom na samu liniju koordinatni sustav bira proizvoljno. Rekao bih da koordinatni sustav ne odražava unutarnju jednodimenzionalnu prirodu crte. Kad bih barem uvijek postavila ishodište svog kartezijanskog koordinatnog sustava na liniju i okrenula ga tako da njegova os x bude na crti, tada mi više ne bi trebala os y! Sve su moje točke na jednoj osi, jer je linija jednodimenzionalni objekt.

Tu bi trebala početi PCA objašnjenja. Svojstveni problem je alat koji vrši rotaciju koju sam opisao, a de-značenje varijabli stavlja ishodište na crtu. PCA pomaže u otkrivanju pravih dimenzija podataka , sve dok su odnosi između varijabli linearni.

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

Zapamtite da je svojstveni vektor vektor čija je transformacija paralelna istom ulaznom vektoru. Stoga svojstveni vektor s velikom vlastitom vrijednošću znači da svoj vlastiti vektor ima visok stupanj 'paralelnosti' s podacima, što znači da podatke možete predstavljati samo ovim vektorom i očekivati ​​malu pogrešku u novom predstavljanju. Ako odaberete dodatne vlastite vektore s nižim vlastitim vrijednostima, moći ćete predstaviti više detalja podataka jer ćete predstavljati druge "paralelnosti" - koje nisu toliko istaknute kao prva zbog nižih vlastitih vrijednosti.

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

PCA je u osnovi projekcija višedimenzionalnog prostora u prostor niže dimenzije uz očuvanje što više informacija.

Napisao sam blog post u kojem objašnjavam PCA kroz projekciju 3D-čajnika ...

enter image description here

... na 2D-ravninu uz očuvanje što više podataka:

enter image description here

Pojedinosti i puni R-kod mogu se naći u postu:
http://blog.ephorie.de/intuition-for-principal-component-analysis-pca

Bez obzira na slike, ovo je trenutno više komentar nego odgovor.Možete li ga proširiti, možda davanjem sažetka informacija na poveznici?Postovi u SE mreži trebali bi samostalno stajati.
@gung: dovoljno pošten - suština je u tome što je PCA u osnovi projekcija prostora veće dimenzije (u ovom slučaju 3D-čajnika) na prostor niže dimenzije (u ovom slučaju 2D-ravnina), uz istovremeno očuvanje što više informacija.Hoće li to promijeniti u odgovoru.
To je zasigurno točno (i objašnjeno u mnogim drugim postojećim odgovorima na ovu temu), ali općenito bi trebalo biti više odgovora objavljenih u SE sustavu, i trebali bi biti sposobni samostalno postojati ako npr. Veza umre.
Zanimljiv je primjer čajnika.Kažete da je PCA projekcija na niži dimenzionalni prostor uz očuvanje što više 'informacija'.Ali .... što su informacije?U slučaju PCA to znači zadržavanje ukupne varijance što je moguće veće.Primjer čajnika više sliči izjavi da su informacije "najočuvanije" korištenjem projekcije u određenoj ravnini, ali ovo malo objašnjava kako PCA to čini i jesu li to ujedno i "najbolji" izbor "informacija".Primjerice, LDA je također projekcija koja namjerava sačuvati informacije, ali nije ista kao PCA.
Da je vaš čajnik bio okrugliji / kružniji (manje visok) od PCA-e, 'izabrao' bi drugo raskrižje kako bi sačuvao većinu "informacija".
#28
-4
jcourtright
2014-05-31 17:26:43 UTC
view on stackexchange narkive permalink

Možda je kasno u ovim analizama implicitna pretpostavka da se podaci iz skupine I razlikuju od skupine II i pokušava se utvrditi koja je komponenta vjerojatno glavni faktor koji doprinosi razlici.

Izvođenje PCA analiza koja rezultira identičnim elipsoidima za 2 različita skupa tada vam govori da se ta dva niza ne razlikuju ni po jednom parametru koji ste izmjerili.

Zanima me mislite li na MANOVU. Ako ste pokrenuli dva odvojena PCA-a, pokazali biste samo da je korelacijska struktura slična.
-1.Ovo je potpuno obmanjujući odgovor iz razloga koji je istaknuo @gung.Također, niti ne pokušava objasniti što je PCA.


Ova pitanja su automatski prevedena s engleskog jezika.Izvorni sadržaj dostupan je na stackexchange-u, što zahvaljujemo na cc by-sa 2.0 licenci pod kojom se distribuira.
Loading...