Temel bileşen analizi, özvektörler ve özdeğerlerin anlaşılması


976

Günümüz örüntü tanıma sınıfında profesörüm PCA, özvektörler ve özdeğerler hakkında konuştu.

Bunun matematiğini anladım. Özdeğerleri vs. bulmam istenirse, bir makine gibi doğru yaparım. Ama anlamadım . Bunun amacını anlamadım. Hissetmedim.

Aşağıdaki alıntıya şiddetle inanıyorum:

Büyükannene anlatamazsan, gerçekten bir şey anlamıyorsun. -- Albert Einstein

Bu kavramları bir meslekten olmayan ya da büyükanneme açıklayamam.

  1. Neden PCA, özvektörler ve özdeğerler? Bu kavramlara ihtiyaç neydi ?
  2. Bunları bir meslekten olmayanlara nasıl açıklarsınız?

95
İyi soru. Ben de alıntıya katılıyorum. İstatistikler ve matematikte oldukça zeki ve işlerinin derinliklerine inebilen çok sayıda insan olduğuna inanıyorum, ancak üzerinde çalıştıkları şeyleri derinden anlamıyorum. Ya da yaparlar, ancak bunu başkalarına açıklamaktan acizlar. Burada İngilizce'yi düz İngilizce olarak cevaplayabilmek için yolumu kapatıyorum ve İngilizce cevapları gerektiren sorular soruyorum.
Neil McGuigan

7
Bu Temmuz ayında Matematik sitesinde sorulmuştu, ama aynı zamanda pek fazla cevap alamadı (şaşırtıcı değil, orada farklı odaklar verildiğinde). math.stackexchange.com/questions/1146/…
whuber

6
Zuur ve arkadaşlarının ekolojik verileri analiz etme konusundaki açıklamasına benzer şekilde, elinizi tepegöz projektöre yansıtmaktan bahsederler. Elinizi, duvardaki çıkıntı, bir elin nasıl görünmesi gerektiğini düşündüğünüze çok benzeyecek şekilde döndürmeye devam edersiniz.
Roman Luštrik

12
Bu soru beni iyi bir makaleye yönlendirdi ve bunun harika bir alıntı olduğunu düşünmeme rağmen Einstein'dan değil. Bu yaygın bir yanlış anlama ve daha muhtemel orijinal alıntı muhtemelen "Eğer fiziklerinizi bir kız arkadaşa açıklayamazsanız, muhtemelen çok iyi bir fizik değil" diyen Ernest Rutherford'dan gelen alıntıdır. Bu konuya başladığınız için teşekkürler.
gavaletz

23
Alice Calaprice, Nihai alıntılanabilen Einstein , Princeton UP 2011, buradaki alıntıyı, "Muhtemelen Einstein tarafından değil" olarak adlandırıyor. Bkz.
Nick Cox

Yanıtlar:


1293

Herkesin size PCA hakkında sorular sormaya başladığı büyük bir aile yemeğini hayal edin. İlk önce büyük annene anlatırsın; o zaman sana büyükannem; sonra annene; sonra eşinize; Sonunda kızına (bir matematikçi olan). Bir sonraki kişi her defasında bir meslekten azdır. Konuşma nasıl gidebilir.

Büyük büyükanne: "Çiş See-Ay" okuduğunu duydum. Bunun ne olduğunu merak ediyorum ...

Siz: Ah, bu sadece bazı verileri özetlemenin bir yöntemi. Bak, burada masanın üzerinde duran şarap şişelerimiz var. Her bir şarabı renginden, ne kadar güçlü olduğundan, kaç yaşında olduğundan vb. Açıklayabiliriz ( buradan alınan şarap özelliklerinin bu çok güzel görselleştirmesine bakın ). Bodrumumuzdaki her bir şarabın farklı özelliklerinin bir listesini oluşturabiliriz. Ancak birçoğu ilgili özellikleri ölçecek ve bu yüzden fazlalık olacaktır. Eğer öyleyse, her şarabı daha az özellikle özetleyebilmeliyiz! PCA'nın yaptığı budur.

Büyükanne: Bu ilginç! Öyleyse bu PCA meselesi hangi özelliklerin gereksiz olduğunu kontrol ediyor ve onları yok ediyor?

Sen: Mükemmel soru büyükanne! Hayır, PCA bazı özellikleri seçmiyor ve diğerlerini atmıyor. Bunun yerine, şarap listemizi iyi özetleyen bazı yeni özellikler inşa ediyor. Tabii ki bu yeni özellikler eskileri kullanarak inşa edilmiştir; örneğin, yeni bir özellik, şarap yaşı eksi şarap asitlik seviyesi veya buna benzer başka bir kombinasyon olarak hesaplanabilir (onlara doğrusal kombinasyonlar diyoruz ).

Aslında, PCA, mümkün olan en iyi özellikleri, şarap listesini sadece mümkün olduğu kadar özetleyen özellikleri (akla gelebilecek tüm lineer kombinasyonlar arasında) bulur. Bu yüzden bu kadar faydalı.

Anne: Hmmm, bu kesinlikle kulağa hoş geliyor, ama anladığımdan emin değilim. Bu yeni PCA özelliklerinin şarap listesini "özetlediğini" söylerken aslında ne demek istiyorsun?

Siz: Sanırım bu soruya iki farklı cevap verebilirim. İlk cevap, şaraplar arasında kuvvetle farklılık gösteren bazı şarap özellikleri (özellikleri) aradığınızdır. Gerçekten de, çoğu şarap için aynı olan bir özellik bulduğunuzu hayal edin. Bu çok faydalı olmaz, değil mi? Şaraplar çok farklı, ancak yeni mülkünüz hepsinin aynı görünmesini sağlıyor! Bu kesinlikle kötü bir özet olurdu. Bunun yerine PCA, şaraplar arasında mümkün olduğu kadar çok çeşitlilik gösteren özellikler arar.

İkinci cevap, orijinal şarap özelliklerini tahmin etmenize veya "yeniden yapılandırmanıza" olanak tanıyan özellikleri aramanızdır. Yine, orijinal özelliklerle hiçbir ilgisi olmayan bir özellik ortaya çıkardığınızı hayal edin; Sadece bu yeni özelliği kullanırsanız, orijinal olanları yeniden inşa etmenin bir yolu yoktur! Bu, yine kötü bir özet olur. Bu nedenle PCA, orijinal özelliklerin mümkün olduğunca yeniden oluşturulmasına izin veren özellikleri arar.

Şaşırtıcı bir şekilde, bu iki amacın eşdeğer olduğu ve PCA'nın iki taşı bir taşla öldürebileceği ortaya çıktı.

Eş: Ama sevgilim, PCA'nın bu iki "hedefi" çok farklı! Neden eşdeğer olsunlar?

Siz: Hmmm. Belki biraz çizim yapmalıyım (bir peçete alır ve karalamaya başlar) . İki şarap özelliğini, belki de şarap karanlığını ve alkol içeriğini seçelim. İşte farklı şaraplardan oluşan bir dağılım grafiği:

PCA örnek verileri

Bu "şarap bulutundaki" her nokta belirli bir şarabı gösterir. İki özelliğin ( bu şekildeki ve ) ilişkili olduğunu görüyorsunuz . Bu şarap bulutunun merkezinden bir çizgi çizerek ve tüm noktaları bu çizgiye yansıtarak yeni bir mülk inşa edilebilir. Bu yeni özellik, doğrusal bir kombinasyonuyla verilecek olup , her satır ve belirli belirli değerlerine karşılık gelir .xyw1x+w2yw1w2

Şimdi buraya çok dikkatlice bakın - bu projeksiyonlar farklı çizgiler için nasıl göründüğüdür (kırmızı noktalar mavi noktaların projeksiyonlarıdır):

PCA animasyonu: varyans ve yeniden yapılanma hatası

Daha önce de söylediğim gibi, PCA “en iyi” olanın iki farklı kriterine göre “en iyi” satırı bulacaktır. İlk olarak, bu çizgi boyunca değerlerin değişmesi maksimum olmalıdır. Satır dönerken kırmızı noktaların "yayılması" (buna "sapma" diyoruz) nasıl değiştiğine dikkat edin; maksimum ulaştığında görebiliyor musun? İkincisi, orijinal iki özelliği (mavi bir noktanın konumu) yenisinden (kırmızı bir noktanın konumu) yeniden yapılandırırsak, yeniden yapılanma hatası bağlantı kırmızı çizgisinin uzunluğu ile verilecektir. Çizgi dönerken bu kırmızı çizgilerin uzunluğunun nasıl değiştiğini gözlemleyin; toplam uzunluk minimum seviyeye ulaştığında görebiliyor musunuz?

Bir süre bu animasyona bakarsanız, "maksimum varyans" ve "asgari hata" nın aynı anda, yani macenta işaretinin işaret ettiği çizgiyi şarap bulutunun her iki tarafına da işaret ettiğimde göreceksiniz. . Bu çizgi PCA tarafından inşa edilecek yeni şarap mülküne tekabül ediyor.

Bu arada, PCA “temel bileşen analizi” anlamına gelir ve bu yeni özelliğe “ilk temel bileşen” denir. Ve "özellik" veya "karakteristik" demek yerine genellikle "özellik" veya "değişken" diyoruz.

Kızı: Çok hoş baba! İki hedefin neden aynı sonucu verdiğini anlayabildiğimi düşünüyorum: temelde Pisagor teoremi yüzünden değil mi? Neyse, PCA'nın bir şekilde özvektörler ve özdeğerlerle ilgili olduğunu duydum; Bu resimde neredeler?

Siz: Mükemmel gözlem. Matematiksel olarak, kırmızı noktaların yayılması, şarap bulutunun merkezinden her bir kırmızı noktaya ortalama kare mesafe olarak ölçülür; bildiğiniz gibi, varyans denir . Öte yandan, toplam rekonstrüksiyon hatası, karşılık gelen kırmızı çizgilerin ortalama kare uzunluğu olarak ölçülür. Ancak, kırmızı çizgilerle siyah çizgi arasındaki açı her zaman , bu iki miktarın toplamı, şarap bulutunun merkezi ile her mavi nokta arasındaki ortalama kare mesafeye eşittir; bu kesinlikle Pisagor teoremidir. Elbette, bu ortalama mesafe siyah çizginin yönüne bağlı değildir, bu yüzden varyans ne kadar yüksekse hata o kadar düşük olur (çünkü toplamları sabittir). Bu el dalgalı argüman kesin yapılabilir (90buraya bakınız ).

Bu arada, siyah çizginin sağlam bir çubuk ve her kırmızı çizginin bir yay olduğunu hayal edebilirsiniz. Yayın enerjisi kare uzunluğuyla orantılıdır (bu, Hooke kanunu olarak fizikte bilinir), böylece çubuk bu kare mesafelerin toplamını en aza indirecek şekilde yönelecektir. Bazı viskoz sürtünme varlığında nasıl görüneceği konusunda bir simülasyon yaptım:

PCA animasyonu: sarkaç

Özvektörler ve özdeğerler hakkında. Bir kovaryans matrisinin ne olduğunu biliyorsunuz ; Benim tarafından verilen matrisidirBunun anlamı, değişkeninin varyansının , değişkeninin varyansının ve aralarındaki kovaryansın . Kare simetrik bir matris olduğundan, özvektörleri tarafından verilen yeni bir ortogonal koordinat sistemi seçilerek köşegenleştirilebilir (bu arada, buna spektral teorem denir)2×2

(1.070.630.630.64).
x1.07y0.640.63( 1,52 0 0 0,19 ) , 1,52); Karşılık gelen özdeğerler diyagonal üzerinde bulunacaktır. Bu yeni koordinat sisteminde, kovaryans matrisi köşegendir ve şöyle görünür: yani noktalar arasındaki korelasyon artık sıfırdır. Herhangi bir çıkıntının varyansının, özdeğerlerin ağırlıklı ortalaması ile verileceği açıktır (sadece sezgiyi burada çiziyorum). Sonuç olarak, projeksiyonu ilk koordinat ekseninde basitçe alırsak , maksimum olası varyans ( ) elde edilir. Birinci ana bileşenin yönünün kovaryans matrisinin ilk özvektörü tarafından verildiğini izler. ( Daha fazla ayrıntı burada. )
(1.52000.19),
1.52

Bunu dönen figürde de görebilirsiniz: orada siyah olana dik olan gri bir çizgi var; birlikte dönen bir koordinat çerçevesi oluştururlar. Bu dönen çerçevede mavi noktaların ne zaman ilişkili olmadığını fark etmeye çalışın. Cevap, yine, macentadaki siyah çizgi işaretlendiğinde kesin olarak gerçekleşmesidir. Şimdi size onları nasıl bulduğumu söyleyebilirim: kovaryans matrisinin ilk özvektörünün yönünü işaretler, bu durumda buna eşit .(0.81,0.58)


Popüler istek üzerine, yukarıdaki animasyonları üretmek için Matlab kodunu paylaştım .


79
+1 Güzel hikaye ve çizimler. ...then to your mother; then to your wife; finally, to your daughter (who is a mathematician)...Devam edecektim: ve yemekten sonra - kendine. Ve burada aniden sıkışıp
kaldınız

68
Bu cevaplar için yaptığınız çizimleri kesinlikle seviyorum.
shadowtalker

57
Normalde bazı şeyleri okumak için Cross Validated'e göz atarım, ancak bir hesap oluşturmak için hiçbir nedenim olmadı ... temelde buradaki soru türleri benim uzmanlığımın dışında olduğu ve hiçbirine gerçekten cevap veremediğim için. Genelde yalnızca StackOverflow'dayım ve yaklaşık bir senedir StackExchange ağındayım. Bununla birlikte, bugün yalnızca öncelikle hesabınızı kaldırmak için bir hesap oluşturmaya karar verdim. Bu muhtemelen şimdiye kadar okuduğum en iyi PCA anlatımı ve çok okudum. Bu harika yazı için teşekkür ederiz - mükemmel hikaye anlatımı, grafikler ve okunması çok kolay! +1
rayryeng

14
Kendim için not: Cevabım şu anda 100, JDLong'un 220 oy hakkı var; Eğer sürekli bir büyüme varsayarsak, o zaman benim yılda 100 artı / yıl ve 40 artı / yıl olur. Veya daha doğrusu, Ocak 2014'te 100 yükseliş [altın bir rozet aldı] 'dan bu yana hesaplanırsa 55 yıl. Bu, 2018 yılı sonuna kadar 2.5-3 yıl içinde yetişeceğim anlamına geliyor. Bakalım :-)
amip

3
Kendim için not devamı .: Tahminimi güncellemeliyim. Bir ay sonra bu cevap, JDLong'ın 5'inden 5'şer oy aldı. Bu, bundan bir yıl sonra yetişebileceğimi gösteriyor. İlginç bir şekilde, 5 / ay 55 / yıl benim yukarıdaki tahminime çok yakın, ancak 18 / ay 100 / yıl'ın iki katından fazla. Cevabım değişmediğinden, ikinci sıraya çıkmanın yükselişi hızlandırdığı görülüyor (muhtemelen artan görünürlük nedeniyle).
amip,

376

Lindsay I Smith tarafından "Asıl Bileşenler Analizi Üzerine Bir Eğitim " yazması gerçekten PCA'da yardımcı oldu. Büyükannene açıklamak için hala çok karmaşık olduğunu düşünüyorum, ama fena değil. Eigens vb. Hesaplamada ilk birkaç bit atlanmalıdır. Bölüm 3'teki örneğe atlayın ve grafiklere bakın.

PCA ile OLS lineer regresyonunu anlayabilmem için bazı oyuncak örnekleriyle çalıştığım bazı örneklerim var. Bunları kazmaya ve göndermeye çalışacağım.

düzenleme: Gerçekten Sıradan En Küçük Kareler (OLS) ve PCA arasındaki farkı sormadım ama notlarımı topladığımdan beri blog yazısı yaptım . Çok kısa versiyon OLS in y ~ x, bağımsız eksene dik hatayı en aza indirir (sarı çizgiler iki hatanın örnekleridir):

alt metin

Eğer x ~ y'ye (ilk örnekte y ~ x'in tersine) gerileme yapacak olsaydınız, bu hatayı en aza indirirdi:

alt metin

ve PCA, modele göre dikey olan hatayı etkin bir şekilde azaltır:

alt metin

Daha önemlisi, başkalarının söylediği gibi, bir BÜTÜN bağımsız değişken BUNCH'iniz olduğu bir durumda, PCA, bu değişkenlerin hangi lineer kombinasyonlarının en önemli olduğunu bulmanıza yardımcı olur. Yukarıdaki örnekler, ilk temel bileşenin gerçekten basit bir durumda neye benzediğini görselleştirmeye yardımcı olur.

Blog postamda yukarıdaki grafikleri oluşturmak ve ilk ana bileşeni hesaplamak için R kodum var. Sezginizi PCA etrafında oluşturmak için oynamaya değer olabilir. Ben gerçekten eğilimindedir kendi bunu yeniden üretir kod yazmak kadar bir şey. 


9
Lindsay I Smith el yazması iyi çağrı - sadece bugün okuyun; çok yararlı.
Stedy

7
Öyleyse PCA, noktalardan fit çizgisine dik mesafeleri optimize ediyorsa, Toplam En Küçük Karelere eşdeğer midir?
Marcin,

3
@Marcin - bu doğru. Sen yeniden ifade edebilir PCA iyi rütbe bulma gibi tahminini ( orijinalin) değişkenleri ( ), . PC sayısını seçmek, tahmin sıralamasını seçmekle eşdeğerdir. 1 m p s x i jm1mppΣ n i = 1 Σ p j = 1 ( x i j - x i j ) 2x^iji=1,,nj=1,,pi=1nj=1p(xijx^ij)2
Olasılık

3
Smith'te küçük matematik hatası: "bir matrisin tüm özvektörleri diktir ... kaç boyutunuz olursa olsun" sadece simetrik matrisler için geçerlidir, işte bunlardan 45 derece aralarında bir tane var . Smith, daha önce kovaryans matrislerinin simetrisini not eder, ancak ima değil - simetri ndik özvektörleri sağlar . Aslında, gerçek n x nmatrislerin tümü gerçek özdeğerlere sahip değildir (örneğin, {{0,1}, {- 1,0}}) ve bunu yapanların hepsinde nbağımsız özvektörler yoktur (örneğin {{1,1}, {0). 1}})! Simetri önemlidir!
Silverfish

8
Matematikçi öğretim özvektörleri olarak, bu Lindsay Smith el yazmasını okurken sıkı sıkıya sarılmam gerekiyor. "... elde edilen vektör, orijinalin tamsayıdır katıdır ..." - tamsayıdan bahsetmenin amacı nedir? A matrisinin bir özvektörü, AX'in X'in bir katı olduğu herhangi bir X vektörüdür. Tamsayı olmayan bir çoklu değil, sadece çoklu! Tamsayı olmayan bir çoklu de tamam! Tanrım, neden gereksiz kafa karışıklığı yaratıyor?
Dmitri Zaitsev

144

İlk önce (2) yapalım. PCA verilere elipsoidi sığdırıyor. Bir elipsoid, puro, krep ve yumurta gibi çarpık küresel şekillerin çok boyutlu bir genellemesidir. Bunların hepsi, puro veya yumurta ekseni veya gözleme düzlemi gibi ana (yarı) eksenlerinin yönleri ve uzunluklarıyla düzgün bir şekilde tarif edilmiştir. Elipsoidin nasıl çevrildiğinin önemi yok, özvektörler bu ana yönlere işaret eder ve özdeğerler size uzunlukları verir. En küçük özdeğerler en az değişkenliğe sahip en ince yönlere karşılık gelir, bu nedenle onları yok saymak (onları düz bir şekilde çökertir) nispeten az bilgi kaybeder: bu PCA.

(1) Sadeleştirme dışında (yukarıda), özlü açıklama, görselleştirme ve içgörü için ihtiyaçlarımız var. Boyutları küçültmek iyi bir şeydir: verileri tanımlamayı kolaylaştırır ve onları üçe veya altına düşürdüğümüz için şanslıysak, bir resim çizmemize izin verir. Bazen, resimdeki koordinatlarla temsil edilen ve değişkenlerin ortak davranışları hakkında fikir sahibi olabilecek veri kombinasyonlarını yorumlamanın faydalı yollarını bile bulabiliriz.


Şekil bazı bulutları göstermektedir ana yönü ile uyumlu her bulut ve eksen 50 içeren% elipsoidler ile birlikte, her puan. İlk sırada, bulutlar, varyansın% 95'ini içeren esas olarak bir ana bileşene sahiptir: bunlar puro şekilleridir. İkinci sırada, bulutlar esasen iki temel bileşene sahiptir, biri diğerinin yaklaşık iki katı büyüklüğündedir, birlikte bütün varyansın% 95'ini oluştururlar: bunlar gözleme şekilleridir. Üçüncü sırada, üç ana bileşen oldukça büyüktür: bunlar yumurta şekilleridir.200

Rakamlar

Kümeleri veya dalları ya da aykırı öğeleri göstermemesi anlamında "tutarlı" olan herhangi bir 3B nokta bulutu bunlardan biri gibi görünecektir. Herhangi bir 3B nokta bulutu - bütün puanların çakışmadığı kanıtlanmamış - bu kümelerden biriyle, daha fazla kümelenmeyi veya kalıbı tanımlamak için başlangıç ​​noktası olarak tanımlanabilir.

Bu tür yapılandırmaları düşünerek geliştirdiğiniz sezgi, bu boyutları görselleştirmek zor ya da imkansız olsa bile, yüksek boyutlara uygulanabilir.


2
Buna ek olarak, eşit semiax'lara (yani elipsoidin (yakın) bir dairesel dilime sahip olması durumunda), bu eksenlere karşılık gelen iki veri parçasının (yakın) bağımlılığa sahip olduğunu; biri bir elips için ana eksenlerden bahsedebilir, ancak dairelerde sadece bir yarıçap bulunur. :)
JM, istatistikçi değil

6
Burada daha temkinli olurdum, JM İlk önce, açıklığa kavuşturmak için "yakın bağımlılık" ile "neredeyse bağımsız" demek zorundasınız. Bu multinormal bir değişken için geçerli olabilir, ancak çoğu durumda PCA normal olmayan belirgin verilerle gerçekleştirilir. Gerçekten de, bazı PCA hesaplamaları takip eden kümeleme analizleri, normal olmayan normalliğin güçlü bir biçimini değerlendirmenin bir yolu olarak görülebilir. Matematiksel olarak çevreler do ana eksenleri var, ama onlar sadece benzersiz belirlenir değildir: Onların ana eksen olarak yarı çapları herhangi ortogonal çifti seçebilirsiniz.
whuber

1
Evet, üzgünüm, sanırım "bir dairenin ana eksenleri belirsizdir", onu koymak için daha iyi bir yol olurdu.
JM,

2
Çok güzel yorumlama! Daha iyi anlamaya çalışmak .. PCA matematiğinde “PCA'nın verilere elipsoit uyduğunu” nerede görebilir?
Kochede

4
@Kochede Bir elipsoid, ikinci dereceden bir biçimin konturudur. Kovaryans matrisi ikinci dereceden bir formdur. PCA, eksenlerini ve uzunluklarını tanımlar.
whuber

106

Hmm, işte PCA'da tamamen matematiksel olmayan bir yaklaşım için ...

Yeni bir elma şarabı dükkanı açtığını hayal et. 50 çeşit elma şarabınız var ve bunları raflara nasıl tahsis edeceğinizi öğrenmek istiyorsunuz, böylece benzer tadımı elma şarabı aynı rafa yerleştirilir. Elma şarabında çok farklı tatlar ve dokular var - tatlılık, ekşilik, acılık, maya, meyvellik, berraklık, gazlılık vb.

1) Elma şarabı gruplarını tespit etmek için en önemli nitelikler nelerdir? Örn: tatlılığa dayalı sınıflandırma, elma türlerini meyveliğe dayalı sınıflandırmadan benzer tat gruplarına ayırmayı kolaylaştırır mı?

2) Değişken listemizi bir kısmını birleştirerek azaltabilir miyiz? Örneğin, aslında bir miktar "maya ve berraklık ve fiziğin birleşimi" olan ve çeşitlerin sınıflandırılması için gerçekten iyi bir ölçek yapan bir değişken var mı?

Temelde PCA'nın yaptığı budur. Temel bileşenler, bir veri setindeki varyasyonu faydalı bir şekilde açıklayan değişkenlerdir - bu durumda, gruplar arasında faydalı bir şekilde farklılaşan değişkenler. Her ana bileşen, açıklayıcı orijinal değişkenlerinizden biri veya orijinal açıklayıcı değişkenlerinizden bazılarıdır.


4
Özvektörler ve özdeğerler ne durumda?
Ηλ'ας

3
Tamam: Her bir temel bileşenle ilişkilendirilen Özdeğer, size, veri setindeki açıklamasında ne kadar değişiklik olduğunu açıklar (örneğime göre, şişelerinizi gruplara ne kadar açık bir şekilde ayırır). Genellikle veri kümesindeki toplam varyasyonun yüzdesi olarak ifade edilirler. Özvektörlere gelince, peki, pençelerin makine gibi bir analizin çıktısını izlediğimi söylediği yer;) Kafamda, Vince'in cep telefonunu 'en iyi' yönüne nasıl döndürdüğünüzle ilgili, ancak bu olmayabilir. onları düşünmenin doğru yolu.
Freya Harrison,

17
Özvektörler sadece orijinal değişkenlerin doğrusal kombinasyonlarıdır (basit veya döndürülmüş faktör uzayda); Değişkenlerin her faktör eksenine nasıl "katkıda bulunduğunu" açıkladılar. Temel olarak, PCA'yı, özdeğer tarafından ifade edildiği gibi, maksimum varyansın yönlerine (orijinal değişken uzayında) işaret eden yeni eksenler inşa etmenin bir yolu olarak ve değişkenlerin katkılarının bu yeni alanda nasıl ağırlıklandırıldığını veya doğrusal olarak dönüştürüldüğünü düşünün.
Kasım'da

Bu problemin kovaryans matrisi nasıl olurdu? bize değişkenler hakkında ne söyler (tatlılık, ekşilik, acılık, maya, meyvellik, berraklık, gazlılık vb.)?
JustCurious

1
İstatistikçiler ve alkollü içecekler hakkında ne olduğunu bilmiyorum, ancak Whiskey Classified , Scotch viskileri için tam olarak bunu yapıyor ...
nekomatic 21:18

96

PCA'nın veri noktalarına düz çizgiler koymayı hedeflediğini (herkes düz çizginin ne olduğunu bilir) diyerek "meslekten olmayanların terimleri" ile cevap veririm. Bu düz çizgilere "temel bileşenler" diyoruz. Değişkenler kadar çok temel bileşenler vardır. İlk ana bileşen, verilere sığdırabileceğiniz en iyi düz çizgidir. İkinci ana bileşen, birinci ana bileşenden gelen hatalara uyabileceğiniz en iyi düz çizgidir. Üçüncü ana bileşen, birinci ve ikinci ana bileşenlerden vb. Kaynaklanan hatalara en uygun düz çizgidir.

Birisi "en iyi" veya "hatalar" derken ne demek istediğinizi sorarsa, bu durum size "meslekten olmayan" olmadıklarını söyler, bu nedenle dikey hatalar gibi biraz daha teknik ayrıntılara gidebilir, hatanın nerede olduğunu bilmeyin. x veya y yönü, 2 veya 3 boyuttan fazla, vb. Ayrıca, OLS regresyonuna ("layman" ın muhtemelen her ikisini de anlayamayacağı) referans vermekten kaçınırsanız, açıklama daha kolaydır.

Özvektörler ve özdeğerler kendi başlarına kavramlara ihtiyaç duymaz, aksine var olan matematiksel kavramlardır. PCA'nın matematik problemini çözdüğünüzde, kovaryans matrisinin özdeğerlerini ve özvektörlerini bulmakla eşdeğerdir.


8
+1, bu gerçekten "layman'ın terimi" nde, ve eğer istersen çok titizlikle türetebileceğini biliyorum !
gung

2
Şimdiye kadarki en iyi cevap diyebilirim. Ve PCA'yı çok kullanıyorum.
a11msp

2
Vay - bu gerçekten harika ve basit bir açıklama! Teşekkür ederim!
Nick,

52

Size gerçekten basit ve zarif olduğunu düşündüğüm PCA hakkında kendi açıklamamı / kanıtını verebilirim ve temel lineer cebir bilgisi dışında bir şey gerektirmez. Oldukça uzun çıktı, çünkü basit erişilebilir bir dilde yazmak istedim.

Diyelim ki boyutlu bir uzaydan bazı veri örneklerimiz var . Şimdi bu verileri -boyutlu uzayda birkaç satırda yansıtmak istiyoruz , mümkün olduğu kadar değişkenlik gösterecek şekilde (yani, yansıtılan verilerin varyansı, orijinal verilerin varyansına kıyasla daha büyük olmalıdır) mümkün).n , nMnn

Şimdi, tüm noktaları bir vektör ile çevirirsek (hareket ettirirsek) , varyansın aynı kalacağını gözlemleyelim , çünkü tüm noktaları hareket ettirmek, aritmetik ortalamalarını da olarak taşıyacaktır ve varyans doğrusal olarak orantılıdır için . Dolayısıyla tüm noktaları , böylece hesaplama rahatlığı için aritmetik ortalamaları olur . Çevrilen noktaları olarak gösterelim . Ayrıca, varyansın şimdi basitçe olarak ifade edilebileceğini gözlemleyelim .p p Σ M i = 1x i - μ 2βββi=1Mxiμ20 x i = x i - μ M i = 1x i2μ0xi=xiμi=1Mxi2

Şimdi çizginin seçimi. Herhangi bir satırı , vektörleri için, denklemini sağlayan nokta kümesi olarak tanımlayabiliriz . Çizgiyi bir vektör ortogonal , o zaman çizgideki tüm projeksiyonların da ile taşınacağını , bu nedenle projeksiyonların ortalamanın , yani projeksiyonların varyansının taşınacağını unutmayın. değişmeden kalacaktır. Bu, çizgiyi kendisine paralel hareket ettirebileceğimiz ve bu çizgideki çıkıntıların varyansını değiştiremeyeceğimiz anlamına gelir. Yine kolaylık sağlamak için kendimizi yalnızca sıfır noktasından geçen satırlarla sınırlayalım (bu, tanımlanan satırlar anlamına gelir ).v , w γ v γ γ x = α vx=αv+wv,wγvγγx=αv

Tamam, şimdi aradığımız hat için olası bir aday olan bir hattın yönünü tanımlayan bir vektörümüz olduğunu varsayalım . satırındaki çıkıntıların varyansını hesaplamamız gerekir . İhtiyacımız olan şey, yansıtma noktaları ve anlamları. Lineer cebir itibaren bu basit durumda izdüşümü olduğunu biliyoruz üzerinde ise . Bundan sonra kendimizi sadece birim vektörlerle sınırlayalım . Biz de nokta çıkıntısının uzunluğu yazmak anlamına gelir üzerinde basitçe .vαvxiαvxi,v/v2vxivxi,v

Önceki cevapların bazılarında birisi PCA'nın seçilen çizgiden uzaklıkların karelerinin toplamını en aza indirdiğini söyledi. Artık bunun doğru olduğunu görebiliyoruz, çünkü projeksiyonların karelerinin toplamı artı seçili çizgideki uzaklıkların karelerinin toplamı, noktasından uzaklıkların karelerinin toplamına eşittir . İzdüşümlerin karelerinin toplamını maksimize ederek, uzaklıkların karelerinin toplamını en aza indiririz ve bunun tersi de geçerlidir, ancak bu şimdiki ispatına kadar düşünceli bir kazaydı.0

İzdüşümlerin ortalaması için, alanımızın ortogonal temelinin bir parçası olduğunu ve veri noktalarımızı bu temeldeki her vektöre yansıtırsak toplamlarının iptal edileceğini göz önünde bulunduralım. temeldeki vektörler veri noktalarını yeni ortogonal temelde yazmak gibidir). Bu nedenle vektöründeki tüm projeksiyonların toplamı (hadi ) ve diğer vektörlerdeki projeksiyonların toplamı (hadi ) 0'dır, çünkü veri noktalarının ortalamasıdır. Ama ortogonaldir ! Bunun anlamı .vvSvSoSvSoSo=Sv=0

Bu yüzden tahminlerimizin ortalaması . 0Bu uygun, çünkü varyans sadece projeksiyonların uzunluğunun karelerinin toplamı veya sembollerinde

i=1M(xiv)2=i=1MvTxiTxiv=vT(i=1MxiTxi)v.

Peki, aniden kovaryans matrisi ortaya çıktı. Basitçe gösterelim . Bu, şimdi bazı yarı-pozitif kesin matris için maksimize eden bir birim aradığımız anlamına gelir .XvvTXvX

Şimdi, matrisinin özvektörlerini ve özdeğerlerini alalım ve bunları sırasıyla sırasıyla ve , . değerleri kopyalanmazsa, özvektörler ortonormal bir temel oluşturur. Eğer öyleyse, özvektörleri ortonormal bir temel oluşturacak şekilde seçiyoruz.Xe1,e2,,enλ1,,λnλ1λ2,λ3λ

Şimdi bir özvektör için hesaplayalım . BizvTXvei

eiTXei=eiT(λiei)=λi(ei2)2=λi.

Oldukça iyi, bu bize için . Şimdi keyfi bir vektör alalım . Özvektörler ortonormal bir temel oluşturduğundan, yazabiliriz ve . gösterelim .λ1e1vv=i=1neiv,eii=1nv,ei2=1βi=v,ei

Şimdi . Bu yeniden lineer bir kombinasyonu olarak ve elde:vTXvvei

(i=1nβiei)TX(i=1nβiei)=(i=1nβiei)(i=1nλiβiei)=i=1nλi(βi)2(ei2)2.

Son denklem, özvektörlerin çift ortogonal olarak seçildikleri konumdan gelir, bu yüzden nokta ürünleri sıfırdır. Şimdi, tüm özvektörler aynı zamanda birim uzunluğa sahip olduğundan, , burada tümü ve toplayın .vTXv=i=1nλiβi2βi21

Bu, projeksiyonun varyansının ağırlıklı bir özdeğerler ortalaması olduğu anlamına gelir. Kuşkusuz, her zaman en büyük özdeğerden daha küçüktür, bu yüzden ilk PCA vektörünü seçmemiz gerekir.

Şimdi başka bir vektör istediğimizi varsayalım. Onu ortogonal uzaydan önceden seçilmiş bu da alt alan . Analog çıkarımla, şu an , en iyi vektör . Ve benzeri vb...lin(e2,e3,,en)e2

Bu arada, şimdi anlaşılmalı, tutulan varyansın neden .i=1kλi/i=1nλi

Ayrıca açgözlü vektör seçimini de haklı çıkarmalıyız. Üzerine yansıtılacak vektörleri seçmek istediğimizde , önce en iyi vektörü seçmek, sonra kalanlardan en iyisini seçmek en iyi fikir olmayabilir. Bu durumda haklı olduğunu ve hiçbir fark yaratmadığını iddia etmek isterim. İfade Lets biz tarafından üzerine yansıtmak isteyen vektör . Ayrıca, vektörlerin çift yönlü ortogonal olduğunu varsayalım. Zaten bildiğimiz gibi, bu vektörler üzerindeki çıkıntıların toplam farkı neredek v 1 , , v k k j = 1 n i = 1 λ i β 2 i j = n i = 1 λ i γ ikkv1,,vk

j=1ki=1nλiβij2=i=1nλiγi
γi=j=1kβij2.

Şimdi, yazalım içeren bazı ortonormal bazda . Geri kalan temeli olarak . Biz görebilmesi . Çünkü , biz var ve dolayısıyla için .eiv1,,vku1,,unkei=j=1kβijvj+j=1nkθjei,ujei2=1j=1kβij2+j=1nkθj2=1γi1i

Şimdi sadece, şimdi projeksiyonların toplam varyans olduğunu bildiğimiz bir vektör benzer durum var ile ve . Bu, başka bir ağırlıklı ortalamadır ve kesinlikle en büyük özdeğerlere tekabül eden özvektörleri yansıtmaya karşılık gelen değerinden daha fazla değildir .i=1nλiγiγi1i=1nγi=ki=1kλik


2
+1 Çok güzel cevap! Henüz tam olarak okumamışsınız, ancak cevabınız aradığım tür.
Açıklanan

9
Bana temel lineer cebiri bilen bir Layman göster, sana bir matematik lisansı göstereyim.
Olasılık

Lineer cebir itibaren bu basit durumda izdüşümü olduğunu biliyoruz üzerinde ise a v x i , h /hac 2xiαvxi,v/v2 (5 paragraf). gereken? Başka bir deyişle, skaler projeksiyon? xi,v/v
Antoni Parellada

1
Bunun şimdiye kadar gördüğüm PCA için en iyi açıklama olduğunu düşünüyorum. Teşekkür ederim.
Nimitz14

1
Bu , özvektörlerin neden varyansı maksimize ettiğini gösteren en sevdiğim açıklama .
Romwell

47

Tamam, bunu deneyeceğim. Birkaç ay önce istatistikçi olmayanlara açıklayabileceğim sezgisel bir açıklama bulmak için çok miktarda literatür taradım. En sezgisel Lagrange çarpanları kullanan türevleri buldum.

Diyelim ki yüksek boyut verilerimiz var - bir böcek üzerinde yapılan 30 ölçüm diyelim. Böceklerin, bu boyutların bazılarında farklı genotipleri ve biraz farklı fiziksel özellikleri vardır, ancak bu yüksek boyut verileriyle, hangi böceklerin hangi gruba ait olduğunu söylemek zordur.

PCA, boyutu azaltan bir tekniktir:

  1. Orijinal değişkenlerin doğrusal kombinasyonlarını alarak.
  2. Her bir doğrusal kombinasyon, verideki en büyük farkı açıklar.
  3. Her doğrusal kombinasyon diğerleriyle ilişkili değildir

Veya matematiksel olarak:

  1. İçin (j bileşen için lineer birleşimi)Yj=ajx
  2. İçin , (ilk parçalar daha fazla varyasyon açıklamak)V ( Y k ) < V ( Y j )k>jV(Yk)<V(Yj)
  3. akaj=0 (diklik)

Bu kısıtlamaları sağlayan doğrusal kombinasyonları bulmak bizi özdeğerlere yönlendirir. Neden?

Tam türev için Çok Değişkenli Veri Analizine Giriş (s. 50) adlı kitabı incelemenizi öneririm , ancak temel fikir ardışık optimizasyon problemleridir (varyansı maksimize etmek), a '= 1 katsayısı (kısıtlamayı önlemek için) varyans sonsuz olabileceği zaman) ve katsayıların dik olduğundan emin olmak için kısıtlanmalıdır.

Bu, Lagrange çarpanları ile optimizasyona neden olur ve bu da özdeğerlerin neden kullanıldığını ortaya çıkarır. Yazmak için çok tembelim (özür dilerim!), Ancak bu PDF bu noktadan itibaren ispatları iyi yapıyor.

Bunu büyükanneme asla açıklamaya çalışmam, ancak genel olarak boyut küçültme teknikleri hakkında konuşmak zorunda kalırsam, bu önemsiz projeksiyon örneğine işaret ederdim (PCA değil). Çok karmaşık bir Calder cep telefonunuz olduğunu varsayalım. 3-d uzayda bazı noktalar birbirine yakın, diğerleri değil. Eğer bu cep telefonunu tavandan asar ve ışığı bir açıyla parlatırsak, daha düşük boyutlu bir düzlemin (2 boyutlu duvar) bir izdüşümü alırız. Şimdi, eğer bu mobil esas olarak bir yönde genişse, ancak diğer yönde zayıfsa, kullanışlılığı farklı olan projeksiyonlar elde etmek için onu döndürebiliriz. Sezgisel olarak, duvara yansıtılan bir boyuttaki sıska bir şekil daha az kullanışlıdır - tüm gölgeler örtüşür ve bize fazla bilgi vermez. Ancak, eğer onu döndürürsek, ışık geniş taraftan parlarsa, küçültülmüş boyut verilerinin daha iyi bir resmini elde ediyoruz - noktalar daha yaygın. Bu genellikle istediğimiz şey. Sanırım büyükannem bunu anlayabilir :-)


6
Bu çok layman ;-)

2
Bu biraz matematik, ama bir şeyi anlamanın en iyi yolu onu türetmek.
Vince

29
Son derece iyi eğitimli bir büyükannen var :-).
whuber


(+1) Hepsi harika cevaplar ama bu benim de vereceğim cevap.
Digio

37

Teknik olmayan olmaya çalışıyorum ... Çok değişkenli bir veriye sahip olduğunuzu, çok boyutlu bir nokta bulutu olduğunu hayal edin. Aslında sizin (a) kovaryans matrisini hesapladığınızda (a) bulutu ortalar, yani orijini çok boyutlu bir ortalama olarak koyarsanız, koordinat sistemi eksenleri şimdi bulutun ortasına geçer, (b) bulutun şekli hakkındaki bilgileri şifreler ve varyans-kovaryans girişleri vasıtasıyla uzayda nasıl yönlendirildiği. Böylece, verilerin bir bütün olarak şekli hakkında önemli bilgilerin çoğu kovaryans matrisinde depolanır.

Daha sonra bu martrix'in öz ayrıştırmasını yapar ve özdeğerlerin listesini ve karşılık gelen özvektör sayısını elde edersiniz. Şimdi, birinci ana bileşen , başlangıç ​​noktasından geçen ve bulutun maksimum varyansının (kalınlık) yönü boyunca yönlendirilen eksen olarak görüntülenebilen yeni, gizli değişkendir. Bu eksen boyunca varyans içerdiği tüm noktalarının koordinatları varyansı, yani birilk özdeğer ve eksenin orijinal eksenlere (değişkenler) gönderme yapılan uzayda yönlendirilmesi, 1. özvektör tarafından tanımlanır: girişleri, kendisiyle o orijinal eksenler arasındaki kosinüslerdir. 1. bileşendeki yukarıda belirtilen veri noktalarının koordinatları, 1. temel bileşen değerleri veya bileşen puanlarıdır; (merkezlenmiş) veri matrisinin ve özvektörün ürünü olarak hesaplanırlar.

"Sonra" 1. pr. Bileşenin ölçülen, yani hesapladığı tüm varyans ile buluttan "kaldırıldığı" ve bulutun boyutluluğunun bir azaldığı. Daha sonra, her şey ikinci özdeğer ve ikinci özvektör ile tekrarlanır - 2. pr. bileşen kaydediliyor ve ardından "kaldırıldı". Vb.

Böylece, bir kez daha: özvektörler ana bileşenler için yön kosinüsleri iken, özdeğerler ana bileşenlerde büyüklüktür (varyans). Tüm özdeğerlerin toplamı, varyans-kovaryans matrisinin köşegenindeki varyansların toplamına eşittir. Özdeğerlerde depolanan "büyüklük" bilgisini özvektörlere devrederseniz, burada bulunan "oryantasyon" bilgisine eklemek için ana bileşen yükleri denir ; Bu yüklemeler - her iki bilgi türünü de taşıdıkları için - orijinal değişkenler ile ana bileşenler arasındaki kovaryanslardır.

Daha sonra PS, burada özellikle iki kere vurgulayarak özvektörler ve yükler arasındaki terminolojik farkı vurgulamak istiyorum . Pek çok insan ve bazı paketler (bazıları dahil R) iki terimi birbiriyle değiştirerek kullanır. Bu kötü bir uygulamadır çünkü nesneler ve anlamları farklıdır. Özvektörler, kosinüs yönüdür, PCA'nın tuttuğu ortogonal "dönme" açısını gösterir. Yükler, döndürülen verinin değişkenliği veya büyüklüğü hakkında bilgi ile aşılanan özvektörlerdir. Yüklemeler, bileşenler ve değişkenler arasındaki ilişkilendirme katsayılarıdır ve değişkenler - kovaryanslar, korelasyonlar veya diğer skaler ürünler arasında hesaplanan ilişkilendirme katsayıları ile doğrudan karşılaştırılabilirler., PCA'nızı temel aldığınızdan. Hem özvektörler hem de yükler, değişkenlerin bileşenlerin öngörülmesinde regresyonel katsayılara hizmet etmeleri bakımından benzerdir (tersi!1). Özvektörler değişkenleri ham bileşen puanlarına göre tahmin etme katsayılarıdır. Yüklemeler, ölçeklendirilmiş (normalleştirilmiş) bileşen puanları ile değişkenleri tahmin etme katsayılarıdır (hiç şüphesiz: Yüklemeler değişkenlik hakkında bilgi biriktirmiştir, dolayısıyla kullanılan bileşenler bundan mahrum bırakılmalıdır). Özvektörleri ve yükleri karıştırmamak için bir neden daha, PCA'nın yanı sıra bazı Faktör analizi türleri gibi başka boyutsallık azaltma tekniklerinin de özvektörleri atlayarak doğrudan yükleri hesaplamalarıdır. Özvektörler, öz-ayrışmanın veya tekil değer ayrışmasının ürünüdür; Bazı faktör analizi formları bu ayrışımları kullanmaz ve yüklere başka bir şekilde ulaşır. Son olarak, bileşenleri ya da faktörleri yorumladığınız özvektörler değil yükler (onları yorumlamanız gerekiyorsa). Yükleme, bileşenin bir değişkene katkısı hakkındadır: PCA'da (veya faktör analizinde) bileşen / faktör, kendisini tersine değil değişkene yükler. Kapsamlı bir PCA sonuçlarında, gösterildiği gibi hem özvektörleri hem de yükleri rapor etmelidir.burada ya da burada .

Ayrıca özvektörlere karşı yüklemeler hakkında da bilgi edinin.


1 PCA'daki özvektör matrisi ortonormal ve bunun tersi transpozit olduğundan, aynı özvektörlerin aynı zamanda bileşenleri değişkenler tarafından tahmin edebilecekleri katsayılar olduğunu söyleyebiliriz. Yine de, yüklemeler için öyle değil.


@ amoeba, ısrar etmiyorum ve alıştığınız herhangi bir terminolojiyi kullanabilirsiniz. “Yükler” ve “özvektörler” terimlerinin neden ayrı tutulmasının daha iyi olduğunu düşündüğümü açıkça açıkladım. Harman'daki gibi klasik geleneği takip ediyorum. Modern Faktör analizi, eğer geleneği doğru hatırlarsam.
ttnphns

(Devam) Her neyse, gerçekten çok şüpheli olsa da "yükleme" teriminin, örneğin ayrımcı analizler gibi diğer çok değişkenli analizlerde "özvektör" ile karıştırılmamasına rağmen, kendiniz biliyorsunuz. Bir kez daha söylediğim gibi, PCA yüklemelerinde 1) varyasyonun büyüklüğü hakkında bilgi içerir; 2) Kovaryans / korelasyon vardır ve bu nedenle yorumlama için kullanılır. Özvektör değerleri - değildir.
ttnphns

2
+1 PCA ve diğer ilgili konulardaki yazılarınızı okudum ve çok şey öğrendim.
Antoni Parellada

29

Tamam, tamamen matematik dışı bir cevap:

Bir konu üzerinde bir grup değişkeniniz varsa ve aynı konular üzerinde daha az sayıda değişkene indirgemek istiyorsanız, mümkün olduğunca az bilgi kaybederken, PCA bunu yapmak için bir araçtır.

Faktör analizinden farklıdır, ancak çoğu kez benzer sonuçlar vermesine rağmen, FA, gizli değişkenlerle ilişkili olduğuna inanılan daha fazla sayıda gözlemlenen değişkenden az sayıda gizli değişkeni kurtarmaya çalışır.


Hey Peter! Seni burada görmek güzel. Bu gerçekten iyi, basit, matematiksel bir cevap yok.
JD Long

3
FA'den bahsettiği için + 1, kimsenin tartışmayacağı ve bazılarının açıklamalarının birbiriyle uyum içinde olduğu görülüyor.
gung

PCA ve FA hedeflerinde fark yok gibi görünüyor - her ikisi de dönmeyi amaçlıyor; böylece en önemli faktörleri (gizli vektörler veya eigendimensions veya tekil vektörler veya her neyse) görebiliyorsunuz. Fakat FA, bir algoritma değil, birbiriyle ve SVD ve PCA ile ilgili tekniklerin bir ailesi gibi, uygun olmayan tanımlanmış amaçları (farklı ve karşılıklı olarak tutarsız, bu nedenle farklı değişkenler farklı şeyleri “optimize eder”) gösterir.
David MW

PCA'nın faktör analizi yapmanın birçok yolundan biri olduğunu söylemek doğru olur mu?
abalter

Bu alandaki terminoloji bilinen bir şekilde tutarsızdır.
Peter Flom

29

2-D'de matematik yapmak en kolay yoldur.

Her matris doğrusal bir dönüşüme karşılık gelir. Doğrusal dönüşümler, düzlemde unutulmaz bir rakam alınarak ve bu rakamın doğrusal dönüşümle nasıl çarpıtıldığını görerek görselleştirilebilir:

doğrusal dönüşümler (resim: Flanigan & Kazdan )

  • Özvektörler aynı vektörlerdir. Dönüşümden sonra eskisi gibi aynı yöne işaret ederler. mona lisa özvektörleri(mavi aynı kaldı, böylece yönnın bir özvektörüdür.)shear
  • Özdeğerler , aynı kalma vektörlerinin ne kadar büyüdüğü veya küçüldüğüdür. (mavi, aynı boyutta kaldı, bu nedenle özdeğer olacaktı .)×1
  • PCA , eksenlerinizi verilerinizle daha iyi "hizaya" almak için döndürür. (kaynak: weigend.com ) PCA, verileri nasıl döndürmeniz gerektiğini bulmak için kovaryans matrisinin özvektörlerini kullanır. Çünkü dönme doğrusal dönüşümün bir tür , yeni boyutlar gibi eskilerin toplamı olacaktır .PCA futbol
    1=23%[1]+46%[2]+39%[3]

Gerçek verilerle çalışan insanların özvektörler ve doğrusal dönüşümlerle ilgilenmesinin nedeni, farklı bağlamlarda "doğrusal" ( ) gerçekten ilginç şeyleri kapsayabilir. Örneğin, ve yeni anlamlar verildiğinde veya ve ilginç bir alandan veya ve ilginç bir alandan gelmesi durumunda ne anlama geldiğini düşünün . Örneğin :f(ax+by)=af(x)+bf(y)+abxy

yüzleri

PCA'nın kendisi istatistikçilere en aşina olan başka bir örnektir. Freya'nın diğer cevaplarından bazıları PCA'nın gerçek dünyaya uygulamalarını veriyor .

"Döndürme" kadar basit bir şeyin farklı alanlarda pek çok şey yapabileceğini tamamen şaşırtıcı buluyorum, örneğin bir öneri sistemi için ürün sıralamak Jeopolitik çatışmayı açıklayanAncak fizik hakkında daha iyi bir temel seçerek (örneğin, eksenini hareket yönünü anlaşılmaz denklemleri basit olanlara dönüştürecektir).similar how?x42.8%[x]57.2%[y]


2
Aslında, rotasyonların doğrusal olması ve geometrik olmayan veriler için neler olduğunu açıklamanın uygun bir yolu olması tesadüfidir. Tesadüf, hem Kartezyen / Öklid uzayının hem de Merkezi Sınır Teoremi / Gaussian'ların ikinci dereceden doğası ile ilgilidir. Yani. sigmas, kuadratik olarak ortogonal boyutlar oluşturur; bu, ND rotasyonel / ortogonal terminolojimizin, 2B ve 3B uzayla analojiden kaynaklandığı yerdir.
David MW

@DavidMWPowers İlginç. Doğrusal bir cebir açısından rotasyonlar hakkında düşünüyorum.
izomorfizmalar

27

JD Long'un bu konudaki mükemmel mesajından sonra, basit bir örnek aradım ve PCA'yı üretmek için gerekli olan R kodu ve ardından orijinal verilere geri döndüm. Bana bazı ilk elden geometrik sezgiler verdi ve bende olanı paylaşmak istiyorum. Veri kümesi ve kod doğrudan kopyalanabilir ve R form Github'a yapıştırılabilir .

Burada yarı iletkenlerde çevrimiçi olarak bulduğum bir veri setini kullandım ve grafiği çizmeyi kolaylaştırmak için sadece iki boyuta ("atom numarası" ve "erime noktası") kestim.


Bir uyarı olarak, fikir yalnızca hesaplama sürecini açıklar. PCA ikiden fazla değişkeni birkaç türetilmiş ana bileşene indirgemek veya çoklu özellikler söz konusu olduğunda eşdüzeliği tanımlamak için kullanılır. Dolayısıyla iki değişken durumunda çok fazla uygulama bulamazdı, ne de @amoeba'nın işaret ettiği gibi korelasyon matrislerinin özvektörlerini hesaplamaya gerek kalmazdı.


Ayrıca, bireysel noktaları izleme görevini kolaylaştırmak için gözlemleri 44'ten 15'e düşürdüm. Nihai sonuç iskelet veri çerçevesi ( dat1) idi:

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

"Bileşikler" sütunu, yarı iletkenlerin kimyasal yapılarını gösterir ve sıra adının rolünü oynar.

Bu, şu şekilde çoğaltılabilir (R konsolunda kopyalayıp yapıştırmaya hazır):

dat              <- read.csv(url("http://rinterested.github.io/datasets/semiconductors"))
colnames(dat)[2] <- "atomic.no"
dat1             <- subset(dat[1:15,1:3])
row.names(dat1)  <- dat1$compounds
dat1             <- dat1[,-1]

Veriler daha sonra ölçeklendi:

X <- apply(dat1, 2, function(x) (x - mean(x)) / sd(x))
# This centers data points around the mean and standardizes by dividing by SD.
# It is the equivalent to `X <- scale(dat1, center = T, scale = T)`  

Doğrusal cebir adımlarını takip etti:

C <- cov(X)                                           # Covariance matrix (centered data)

[at_nomelt_pat_no10.296melt_p0.2961]

Korelasyon işlevi cor(dat1), ölçeklenmemiş verilerdeki aynı çıktıyı ölçeklenen verilerdeki işlevle verir cov(X).

lambda        <- eigen(C)$values                      # Eigenvalues
lambda_matrix <- diag(2)*eigen(C)$values              # Eigenvalues matrix

[λPC1λPC21.296422000.7035783]

e_vectors     <- eigen(C)$vectors                     # Eigenvectors

12[PC1PC21111]

İlk özvektör başlangıçta olarak döndüğünden , aşağıdaki formülleri yerleşik formüllerle tutarlı hale getirmek için olarak değiştirmeyi seçiyoruz :[0.7,0.7][0.7,0.7]

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

Elde edilen özdeğerler ve . Daha az minimalist koşullar altında, bu sonuç hangi özvektörlerin dahil edileceğine karar verilmesine yardımcı olacaktı (en büyük özdeğerler). Örneğin, ilk özdeğerin göreceli katkısı : yani değişkenliğin oluşturur. İkinci özvektörün yönündeki değişkenlik . Bu genellikle, özdeğerlerin değerini gösteren bir kayşat grafiği üzerinde gösterilmektedir:1.29642170.703578364.8%eigen(C)$values[1]/sum(eigen(C)$values) * 10065%35.2%

görüntü tanımını buraya girin

PCA'nın ardındaki fikir, bu oyuncak veri kümesi örneğinin küçük boyutu göz önüne alındığında her iki özvektörü de içereceğiz;

Puanı matrisi matris çarpımı olarak tayin edildi ölçekli veriler ( Xgöre) özvektör (veya "rotasyon") matrisi :

score_matrix <-  X %*% e_vectors    
# Identical to the often found operation: t(t(e_vectors) %*% t(X))

Konsept , her bir özvektörün sıralarının ağırlıklandırdığı ortalanmış (ve bu durumda ölçeklendirilmiş) verilerin her bir girişinin (bu durumda sıra / konu / gözlem / süper iletken) doğrusal bir kombinasyonunu gerektirir ; puanı matrisi, biz (tüm verilerin her bir değişken (sütun) bir katkı bulacaksınız ), ama sadece karşılık gelen özvektör (hesaplama yer almış olur yani birinci özvektör olacak katkıda (Ana Bileşen 1) ve için olduğu gibi,:X PC[0.7,0.7]T[ 0.7 , - 0.7 ] T PCPC1[0.7,0.7]TPC2

görüntü tanımını buraya girin

Bu nedenle, her bir özvektör, her değişkeni farklı şekilde etkileyecek ve bu, PCA'nın "yüklemelerine" yansıyacaktır. Bizim durumumuzda, ikinci özvektörün ikinci bileşenindeki negatif işaret, PC2'yi üreten doğrusal kombinasyonlardaki erime noktası değerlerinin işaretini değiştirecek, oysa birinci özvektörün etkisi sürekli olarak pozitif olacaktır: [0.7,0.7]

görüntü tanımını buraya girin

Özvektörler ölçeklendirilir :1

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

oysa ( yükler ) özdeğerler tarafından ölçeklendirilen özvektörlerdir (aşağıda gösterilen yerleşik R fonksiyonlarındaki kafa karıştırıcı terminolojiye rağmen). Sonuç olarak, yükler şu şekilde hesaplanabilir:

> e_vectors          %*% lambda_matrix
          [,1]      [,2]
[1,] 0.9167086  0.497505
[2,] 0.9167086 -0.497505

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

Döndürülmüş veri bulutunun (puan grafiği) her bir bileşen (PC) boyunca özdeğerlere eşit olarak farklılık göstereceğini not etmek ilginçtir:

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

Yerleşik işlevler kullanılarak sonuçlar tekrarlanabilir:

# For the SCORE MATRIX:
  prcomp(X)$x
# or...
  princomp(X)$scores # The signs of the PC 1 column will be reversed.

# and for EIGENVECTOR MATRIX:
  prcomp(X)$rotation
# or...
  princomp(X)$loadings

# and for EIGENVALUES:
  prcomp(X)$sdev^2
# or...
  princomp(covmat = C)$sd^2

Alternatif olarak, PCA'yı manuel olarak hesaplamak için tekil değer ayrıştırma ( ) yöntemi uygulanabilir; Aslında, bu kullanılan yöntemdir . Adımlar şöyle yazılabilir:UΣVTprcomp()

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

Sonuç, ilk olarak, tek tek noktalardan birinci özvektöre olan mesafeler ve ikinci bir arsa üzerinde, ortogonal ikinci özvektöre olan uzaklıklar:

görüntü tanımını buraya girin

Bunun yerine, skor matrisinin (PC1 ve PC2) değerlerini çizersek - artık "melting.point" ve "atomic.no" değil, gerçekte özvektörlerle nokta koordinatlarının temelindeki bir değişiklik, bu mesafeler olacaktır. korunmuş, ancak doğal olarak xy eksenine dik olur:

görüntü tanımını buraya girin

Püf noktası şimdi orijinal verileri kurtarmaktı . Noktalar, özvektörler tarafından basit bir matris çarpımı ile dönüştürüldü. Şimdi veri, özvektörlerin matrisinin tersi ile çarpılarak veri noktalarının bulunduğu yerde meydana gelen belirgin bir değişiklik ile geri döndürüldü . Örneğin, sol üst kadrandaki (aşağıda soldaki siyah daire) pembe nokta "GaN" 'daki değişikliğe dikkat edin, sol alt kadrandaki ilk konumuna geri dönün (aşağıdaki sağdaki siyah daire).

Şimdi nihayet "döndürülmüş" matriste orijinal veriler geri yüklendi:

görüntü tanımını buraya girin

PCA'da verinin dönme koordinatlarının değişmesinin ötesinde, sonuçların yorumlanması gerekir ve bu işlem biplot, yeni özvektör koordinatlarına göre veri noktalarının çizildiği ve orijinal değişkenlerin şimdi üst üste getirildiği bir a'yı içerir. vektörler. Yukarıdaki ikinci dönme grafik sırasındaki grafikler arasındaki noktaların pozisyonundaki denkliği not etmek ilginçtir ("xy Eksenli Skorlar = Özvektörler") (takip eden grafiklerde sola) ve biplot( sağ):

görüntü tanımını buraya girin

Kırmızı oklar olarak orijinal değişkenlerin süperimpozisyon yorumlanması için bir yol sunar PC1hem (pozitif korelasyon veya birlikte) yönde bir vektörü olarak atomic nove melting point; ve PC2artan değerlerin bir bileşeni olarak, atomic noancak melting pointözvektörlerin değerleriyle tutarlı olarak negatif bir korelasyon gösterir :

PCA$rotation
                    PC1        PC2
atomic.no     0.7071068  0.7071068
melting.point 0.7071068 -0.7071068

Victor Powell'ın bu etkileşimli öğreticisi , veri bulutu değiştirilirken özvektörlerdeki değişiklikler hakkında anında geri bildirim veriyor.


1
Çaba ve özellikle animasyon için +1! Ancak iki değişkenin korelasyon matrisi üzerindeki PCA'nın özel bir durum olduğu akılda tutulmalıdır, çünkü iki değişkenin tüm korelasyon matrislerinin özdeş vektörleri vardır : bunlardan biri daima [0.7 0.7] (0.7 1 / sqrt olacaktır) (2)). Bu kovaryans matrisleri veya daha yüksek boyutlarda korelasyon matrisleri için geçerli değildir.
amip

14

PCA'yı çok fazla kullanan (ve bunu birkaç kişiye da açıklamaya çalışan) birinden kendi sinirbilim alanımdan bir örnek.

Bir kişinin kafa derisinden kayıt yaparken 64 elektrotla yapıyoruz. Dolayısıyla, aslında kafa derisi tarafından verilen gerilimi temsil eden bir listede 64 numaramız var. Şimdi, mikrosaniye hassasiyetinde kayıt yaptığımızdan beri, 1 saatlik bir denememiz varsa (genellikle 4 saattir) o zaman bu bize her elektrotta bir voltajın kaydedildiği 1e6 * 60 ^ 2 == 3.600.000.000 zaman noktasını verir. 3.600.000.000 x 64'lük bir matris var. PCA'nın büyük bir varsayımı değişkenlerinizin ilişkilendirildiği olduğu için, bu gülünç veri miktarını izlenebilir bir miktara düşürmek harika bir tekniktir. Daha önce birçok kez söylendiği gibi, özdeğerler değişkenler (sütunlar) tarafından açıklanan varyans miktarını temsil eder. Bu durumda, bir özdeğer, belirli bir elektrotun katkıda bulunduğu zamandaki belirli bir noktada voltajdaki varyansı temsil eder. Şimdi diyebiliriz ki, "Ah, iyi elektrotxZaman noktasında y, daha fazla analiz için odaklanmamız gereken şey budur çünkü en çok değişimin gerçekleştiği yer burasıdır. ”Umarım bu yardımcı olur.


12

Bunu cevaplamak için kötü bir insan olabilirim çünkü kavramı bana açıklayan ve çok da fazla olmayan, meşhur büyükannemim ama burada:

Bir nüfusunuz olduğunu varsayalım. Nüfusun büyük bir kısmı kalp krizinden ölüyor. Kalp krizine neyin sebep olduğunu bulmaya çalışıyorsun.

İki veri parçanız var: boy ve kilo.

Şimdi, ağırlık ve kalp krizi arasında SOME bir ilişki olduğu açık, ancak korelasyon gerçekten güçlü değil. Çok fazla kalp krizi geçiren ağır insanlar var, ancak bazıları yok.

Şimdi, bir PCA yapıyorsunuz ve bu size kilonun boyuna (“vücut kütlesi”) bölünmesinin kalp krizine göre daha muhtemel bir belirleyici olduğunu, ağırlık veya boydan daha muhtemel bir tahminci olduğunu söylüyor, çünkü “gerçek” kalp krizine neden olan vücut kitlesi.

Temel olarak, PCA'yı yapıyorsunuz çünkü bir çok şeyi ölçüyorsunuz ve bunların gerçekten ana bileşenler olup olmadığını veya ölçemediğiniz daha derin bir bileşen olup olmadığını bilmiyorsunuz.

[Tamamen temelsiz ise bunu düzenlemek için çekinmeyin. Bu kavramı gerçekten bundan daha derinden anlamıyorum].


1
@Joel istatistik sitesine hoş geldiniz! Şansınız varsa, önerilen dağıtılmış StackExchange veri analizi projemizdeki tartışmaya da katkıda bulunabilirsiniz: stats.stackexchange.com/questions/2512/… .
Shane

9
Mükemmel bir örnek, ancak teknik olarak PCA vücut kitle açıklamasını bulamıyor çünkü orijinal değişkenlerin ağırlıklı toplamları olan yalnızca doğrusal açıklamalar bulabiliyor. Bununla birlikte, girdi değişkenlerinizi kaydederseniz, oran fark yaratır ve doğru açıklama ise, PCA bunu bulabilir.
David MW,

10

İşte büyükannem için bir tane:

Kasabamızda kuzeye ve güneye, bazıları doğuya ve batıya, hatta kuzeybatı ve güneydoğuya giden caddeler, bazıları güney batıya. Bir gün bir adam bütün sokaklardaki tüm trafiği ölçüyor, en fazla trafiğin çapraz olarak gittiğini, kuzeybatıdan güneydoğuya, ikinci en büyüğünün bu kuzeydoğuya ve güneybatıya doğru gittiğini ve geri kalanının oldukça küçük olduğunu görüyor. Böylece büyük bir kare çizer ve soldan sağa doğru büyük bir çizgi koyar ve bunun SE ile NW olduğunu söyler, sonra ortada yukarı ve aşağı dikey olarak başka bir çizgi çizer. Trafik için ikinci en kalabalık yolun (NE'den SW'ye) olduğunu söylüyor. Gerisi küçüktür, göz ardı edilebilir.

Soldaki sağ çizgi ilk özvektör ve yukarı doğru hattı ikinci özvektördür. Sola ve sağa giden toplam otomobil sayısı ilk özdeğerdir ve yukarı ve aşağı gidenler ikinci özdeğerdir.


1
Bu benzetme inceleme altında bozuluyor gibi görünüyor. Ya en büyük ve ikinci en büyük trafik yönü dikey değilse ne olur? Analojiniz böyle bir durumda bir PCA'yı anlamamıza nasıl yardımcı olur?
whuber

Sanırım büyükanne ortogonalın ne demek olduğunu anladı? Evet, bazı kusurlar var ama bu bir başlangıç. Bence burada çok fazla cevap olması harika.
BajaBob

2
"Büyükanne" bir yazıyı anlasa da anmasa da anlayabilse de, oldukça açık ve doğru olması gerekiyor. Analojiniz bu amaçlardan herhangi birini yerine getirmiyor gibi görünüyor. Bunun nedeni analojiyi anlamadığımdır: PCA'nın ne olduğu veya yaptığı ile bağlantı kuramıyorum. Belki analojinin nasıl çalıştığını açıklayabilir, böylece diğer okuyucular da benim kadar gizemli olmaz.
whuber

Ortogonal olmamaları PCA'ya değil ICA'ya veya FA'ye ihtiyacınız olduğu anlamına gelir. Eğer büyükannem Star Trek'i izliyor olsaydı (evet, o kuşaktır) engelli gemiyi belli bir açıyla gösterirlerse - PCA, ölçek ve görünümle ilgili referans düzlemini (galaktik düzlem veya geminin eksenleri) kurtarma eğilimine girer.
David MW

-1. @Whuber ile bu analojinin işe yaramadığına katılıyorum. Buradaki veriler ne olmalı, bu "özvektörler" hangi kovaryans matrisidir? Ben hiç anlamıyorum.
amip

10

Bu cevap sezgisel ve matematiksel olmayan bir yorum verir:

PCA, size yüksek boyutlu bir nokta bulutu içinde bir dizi ortogonal vektör verecek. Vektörlerin sırası, tüm noktaları vektörlere yansıtan daha sonra iletilen bilgilerle belirlenir.

Farklı bir deyişle: İlk ana bileşen vektörü, tüm noktaları vektöre yansıttıktan sonra size en fazla nokta bulutu hakkında bilgi verecektir. Bu elbette sezgisel bir yorumdur.

Şu elipsoide bakın (bir 3D model için bağlantıyı izleyin) :

görüntü tanımını buraya girin

Elipsoid noktalarının noktalarının üzerine yansıtılacağı tek boyutlu bir alt-alan oluşturan bir vektör seçmeniz gerekiyorsa. Orijinali hakkında en çok bilgiyi 3 boyutta aktardığı için hangisini seçerdiniz?

Sanırım en uzun eksen boyunca kırmızı olanı. Ve bu aslında hesaplanan 1. temel bileşendir! Hangisi - bir sonraki en uzun eksen boyunca mavi olanı seçerdim.

Tipik olarak, bir nokta kümesini yüksek boyutlu bir uzaydan iki boyutlu bir düzleme veya üç boyutlu bir uzaya yansıtmak istersiniz .

görüntü tanımını buraya girin


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


10

PCA'nın sezgisel bir şekilde anlaşılmasını sağlamak için verilen pek çok örnek olmasına rağmen, bu gerçek başlangıçta kavramayı neredeyse zorlaştırabilir, en azından benim için öyleydi.

“PCA ile ilgili farklı disiplinlerden gelen bütün bu farklı örneklerin ortak noktası olan şey neydi?”

Sezgisel olarak anlamamda bana yardımcı olan birkaç matematik paralellikiydi, çünkü matematiğin sizin için kolay kısmı olduğu anlaşılıyordu, ancak bu büyükannenize açıklamaya yardımcı olmuyordu ...

Düzenleme problemini düşünmeye çalışın

||XBY||=0

Veya İngilizce olarak, verilerinizi , bir şekilde verilere ışık tutacak diğer iki matrise böldünüz mü? Bu iki matris iyi çalışıyorsa, o zaman ile arasındaki hata çok fazla olmamalıdır.YY

PCA, diğer insanların söylediği tüm nedenlerden dolayı size için faydalı bir faktör sunar . Sahip olduğunuz veri matrisini, , diğer iki yararlı matrise böler . Bu durumda, , sütunların ilk PC'ler olduğu bir matris olur ve , sütunlarını kullanarak matris sütunlarını yeniden oluşturmak için size bir reçete veren bir matris olur . , ilk sırasıdır ve devrik yapısının tümüdür. köşegenindeki özdeğerlerYYXkBYXBkSVStemel olarak hangi PC'lerin en önemli olduğunu belirler. Bu matematik size hangi bilgisayarların en önemli olduğunu açıkça söyleyiş şeklidir: her biri özdeğerlerine göre ağırlıklandırılır. Ardından, matrisi , PC'lere nasıl birleştirileceğini söyler. VT

Bence insanlar birçok sezgisel örnek verdi, ben de bunu paylaşmak istedim. Bunu görmek, nasıl çalıştığını anlamama yardımcı oldu. PCA ile benzer şeyler yapan ilginç algoritmalar ve yöntemler dünyası var. Seyrek kodlama bütün matris faktoring hakkında makine öğrenimi üst disiplinidir desenleri yansıtan iki diğer faydalı ve ilginç olanları içine . AA


9

İşte bir matematik cevabı: birinci ana bileşen verinin en uzun boyutudur. Şuna bak ve sor: veri en geniş nerede? Bu ilk bileşen. Bir sonraki bileşen dikeydir. Yani bir veri purou bir uzunluk ve genişliğe sahiptir. Bir tür dikdörtgen olan her şey için mantıklı.


6
Ne yazık ki, bu cevabın doğruluğu "en uzun" belirsiz ifadesinin nasıl yorumlandığına bağlıdır. Çap gibi birçok doğal ve konuyla ilgili yorum yanlıştır.
whuber

PCA aslında boyut / büyüklüğü ölçmek için farklı türde doğal yollarla gayet iyi çalışıyor. Kovaryans matrisini herhangi bir yönde "boyut" ölçmek için bir matris ile değiştirmeniz yeterlidir (matrisin sadece pozitif olarak tanımlanmış veya simetrik olması gerekir). farklı sipariş operatörleri için.
James LI,

9

Temel bileşenleri anlama yöntemim şudur: Birden fazla değişkenli veriler (yükseklik, ağırlık, yaş, sıcaklık, dalga boyu, hayatta kalma yüzdesi, vb.), İlişkiyi çizmek için üç boyutlu olarak sunulabilir.

Şimdi bir şekilde "3B veri" anlamında bir şeyler yapmak istiyorsanız, bu 3B verinin hangi 2B düzleminin (kesitlerin) belirli bir değişkenler grubu için en fazla bilgiyi içerdiğini bilmek isteyebilirsiniz. Bu 2B düzlemler, her değişkenin bir oranını içeren ana bileşenlerdir.

Asıl bileşenleri, orijinal değişkenlerin bileşik özelliklerine sahip değişkenler olarak düşünün (bu yeni değişken, parça ağırlığı, parça yüksekliği, parça yaşı, vb. Olarak tanımlanabilir). Bir ana bileşeni (X) diğerine (Y) karşı çizdiğinizde, yaptığınız şey orijinal değişkenler arasındaki korelasyonu geometrik olarak tanımlayan bir 2D harita oluşturmaktır. Şimdi yararlı kısım: karşılaştırılmakta olan her konu (gözlem), her değişken için değerlerle ilişkilendirildiğinden, konular (gözlemler) de bu XY haritasında bir yerde bulunur. Konumları, her bir temel değişkenin göreceli katkılarına dayanır (yani, bir gözlem yaş ve sıcaklıktan ağır şekilde etkilenebilir, bir diğeri boy ve ağırlıktan daha fazla etkilenebilir).


8

İkinci kısımda matematik dışı bir cevap ve matematiğe motivasyona ilişkin daha ayrıntılı bir kuş bakışı görünümü vereceğim.


Sigara Mathy:

Matematiksel olmayan açıklama, PCA'nın, verilerinizin en çok hangi yönlerde bulunduğunu görmenizi sağlayarak yüksek boyutlu veriler için yardımcı olduğudur. Bu yönler ana bileşenlerdir . Bu bilgilere sahip olduğunuzda, bazı durumlarda, temel bileşenleri kendileri olarak anlamlı değişkenler olarak kullanmaya karar verebilir ve verilerinizin boyutsallığını yalnızca ana bileşenleri en fazla değişkenlikle ( açıklayıcı güçle ) tutarak büyük ölçüde azaltabilirsiniz .

Örneğin, 30 sorudan oluşan bir siyasi oylama anketi verdiğinizi varsayalım, her birine 5 ( kesinlikle katılıyorum ) ile 5 ( kesinlikle katılmıyorum ) arasında bir yanıt verilebilir . Tonlarca yanıt alıyorsunuz ve şimdi 30 boyutlu verileriniz var ve bundan baş ya da sonuç alamıyorsunuz. Öyleyse çaresizlik içinde PCA'yı çalıştırmayı ve varyansınızın% 90'ını tek bir yönden geldiğini düşünürsünüz ve bu yön sizin hiçbir eksene karşılık gelmez. Verilerin daha ayrıntılı incelenmesinden sonra, bu yeni hibrit eksenin demokratik / cumhuriyetçi spektrum gibi siyasi sol-sağ spektrumuna tekabül ettiği sonucuna varır ve verilerdeki daha ince yönlere bakmaya devam edersiniz.


Mathy:

Bazen anlamı hafifletmek için matematik motivasyonunu uzaklaştırmaya ve incelemeye yardımcı olur.

Koordinat ekseninizi değiştirerek köşegen matrislere dönüştürülebilen özel bir matris ailesi vardır . Doğal olarak, köşegenleştirilebilir matrisler denir ve yeterince zarif, bunu yapmak için gereken yeni koordinat ekseni aslında özvektörlerdir.

Görünüşe göre kovaryans matrisi simetriktir ve daima köşegenleştirilebilir olacaktır ! Bu durumda, özvektörler ana bileşenler olarak adlandırılır ve özvektör koordinatlarında kovaryans matrisini yazdığınızda, köşegen girişler (yalnızca kalanlar) özvektörlerinizin yönündeki farklılığa karşılık gelir. Bu, hangi yönlerin en fazla varyansa sahip olduğunu bilmemizi sağlar. Dahası, kovaryans matrisi bu koordinatlarda köşegen olduğundan, değişkenleriniz arasındaki tüm korelasyonu zekice ortadan kaldırdınız.

Pratik uygulamalarda yaygın olduğu gibi, değişkenlerimizin normal şekilde dağıldığını ve bu nedenle en basit resmi görmek için koordinatlarımızı değiştirmeyi denemek için oldukça doğal olduğunu varsayıyoruz. Temel bileşenlerinizi ve bunların özdeğerlerini (varyansı) bilmeniz gerekirse, verilerinizin boyutsallığını azaltabilecek ve ayrıca verilerinizdeki değişimin nerede olduğuna dair hızlı bir genel özete sahip olacaksınız.

Ancak günün sonunda, tüm bu arzu edilebilirliğin kökü, diyagonal matrislerin , daha karmaşık, daha genel kuzenlerine kıyasla başa çıkmanın daha kolay olduğu gerçeğinden geliyor .


2
Katkınız için teşekkürler. Bununla birlikte, PCA'nın gereksiz yere dar bir yorumuna değinildiği görülüyor. (1) PCA, Gauss olmayan veri kümelerine oldukça verimli bir şekilde uygulanmıştır. (2) PCA resmi bir parametrik işlem değildir; belki de bunu ruhu araştırıcı olarak düşünmek daha iyidir. (3) Her çeşit çok değişkenli dağılım veya verinin tüm kovaryans matrisleri köşegenleştirilebilirdir. Gaussianity (Normallik) ve dejenerasyon olmayan ne şarttır. (Matrisin simetri sahip olan ve gerçek komponentler köşegenselleştirilebilme garanti .)
whuber

Kabul etmeliyim ki, unutmuş olmaktan utanıyorum, ama kovaryans matrislerinin genel olarak köşegenleştirilebilir olması konusunda iyi bir nokta. Bunu yansıtacak şekilde düzenleme yapacağım. Ayrıca, (2) noktasında detaylandırabilir misiniz? Parametrik veya parametrik olmayan prosedürler arasındaki farkı bilmiyorum.
Christian Bueno

7

PCA'yı geometrik bir araç olarak görüyorum. 3-uzayda hemen hemen düz bir çizgide olan bir sürü puan verilirse ve bu çizginin denklemini bulmak istiyorsanız, PCA üzerinden alırsınız (ilk bileşeni alın). 3-uzayda çoğunlukla düzlemsel olan ve o düzlemin denklemini keşfetmek istediğiniz bir sürü noktanız varsa, bunu PCA ile yapın (en az önemli bileşen vektörünü alın ve bu düzlem için normal olmalıdır).


7

Neden bu kadar özdeğerler / özvektörler?

PCA yaparken, her temel vektörde yansıtılan varyansı en üst düzeye çıkararak bazı ortogonal bir temel hesaplamak istiyorsunuz.

Önceki temel vektörleri hesapladıktan sonra, bir sonrakinin olmasını istersiniz:

  • öncekine dik
  • norm 1
  • tahmini varyansı maksimize etmek, yani maksimum kovaryans normu ile

Bu, kısıtlanmış bir optimizasyon problemidir ve Lagrange çarpanları (burada geometrik sezgiler için bkz. Wikipedia sayfası), objektifin (öngörülen varyans) ve kısıtlamanın (ünite normu) gradyanlarının optimyumda "paralel" olması gerektiğini söyler.

Bu, bir sonraki temel vektörün kovaryans matrisinin bir özvektörü olması gerektiğini söylemekle aynıdır. Her adımda en iyi seçim, kalanlar arasında en büyük özdeğere sahip olanı seçmek.


5
Kesinlikle bir meslekten olmayan - ortogonal temel vektörlerine bir açıklama değil mi? projeksiyon varyansını maksimize etmek? kısıtlı optimizasyon problemi? Lagrange çarpanı? Bunlar oldukça "jargonize" terimlerdir. Bunların ne anlama geldiğini anlayan bir mesleğe gösterin, size bir matematikçi / istatistikçi
olasılık olabilirim

6

Temel olarak PCA, orijinal değişkenlerin doğrusal kombinasyonları olan yeni değişkenleri bulur; öyle ki, yeni alanda veri daha az boyuttadır. Bir açıyla tutulan düz bir plakanın yüzeyinde 3 boyutlu noktalardan oluşan bir veri seti düşünün. Orijinal x, y, z eksenlerinde verileri temsil etmek için 3 boyuta ihtiyacınız vardır, ancak doğru doğrusal dönüşümde sadece 2'ye ihtiyacınız vardır.

Temelde @Joel ne dedi, ama sadece girdi değişkenlerinin doğrusal kombinasyonları.


6

Bir süre önce bu PCA algoritmasını anlamaya çalıştım ve öz vektörler ve öz değerleri hakkında not almak istedim. Bu belge, EV'lerin amacının büyük boyutlu modelin modelini çok küçük boyutlu bir modele dönüştürmek olduğunu belirtti.

Örneğin, ilk önce tam boyutlu köprüyü inşa etmek ve daha sonra üzerinde deneyler ve testler yapmak yerine, tüm faktörlerin / miktarların aynı oranda azaltılacağı çok küçük bir köprü oluşturmak için EV'leri kullanmak mümkündür. Testlerin gerçek sonucu ve üzerinde yapılan strese bağlı testler, orijinal model için gerektiği şekilde hesaplanabilir ve genişletilebilir. Bir şekilde, EV'ler, orijinalin özetlerini oluşturmaya yardımcı olur .

Bana göre, bu açıklamanın yapmaya çalıştığım şeyin derin anlamı vardı! Umarım size de yardımcı olur!


-1. Belki de analojiyi tam olarak anlamadım, ama bu bana oldukça yanıltıcı görünüyor. PCA gerçekten (bir şekilde) “büyük” bir modeli “küçük” bir modele “dönüştürmeye” izin veriyor, ancak bunu veri setinin boyutsallığını azaltarak yapıyor. Fakat küçük boyuttan küçük köprü, büyük olandan nasıl? İkisi de 3B, değil mi?
amip

@ amoeba: bu alıntı okuduğum bir makaleden çıktı, bunlar tam olarak benim kelimelerim değil. Uzun zamandan beri bu konuyu incelemedim ve izini kaybettim.
Rorschach

6

Büyükannenin Noel'de verdiğiniz dijital fotoğraf makinesindeki ilk fotoğraflarını ve filmlerini yeni çektiğini hayal edin, ne yazık ki fotoğraflar için düğmeye basarken sağ elini bıraktı ve filmler sırasında da biraz sallandı. İnsanların, ağaçların, çitlerin, binaların, kapıların, mobilyaların, vb. Düz ve aşağı olmadıklarını, dikey olmadıklarını ve zeminin, yerin, denizin, ufkun yatay olmadığını fark eder. Filmler de oldukça titrek. Onları tamir etmenize, 3000 tatil fotoğrafının tamamını ve evinizde ve kumsalda (Avustralya'da) yaklaşık 100 videoya, hediyeleri açıp, ülkede yürümeye, yaklaşık 100 video çekmenize yardım edip edemeyeceğinizi soruyor. Söylediğini yapmana izin veren bu fotoğraf yazılımına sahip. Ona bunun günler alacağını ve yine de videolar üzerinde çalışmayacağını söyle. ancak PCA ve ICA adında yardımcı olabilecek teknikleri biliyorsunuz. Araştırmanızın aslında bu tür verilerin doğal boyutlara döndürülmesini içerdiğini, bu tekniklerin verilerdeki en önemli yönleri bulduğunu, bu durumda fotoğrafı ve en önemlisi yatay olanı döndürdüğünü açıklarsınız. dikeydir (ve ayrıca zamanın filmlerde bir boyut olmasına rağmen, çok fazla hayal bile edemeyeceğimiz boyutlar için devam edebilir).

-

Teknik Kenara Aslında, doktora derecesini onun için yaparak kazanabilirsin ve Bell ve Sejnowski'nin (1997) kenarlarına karşılık gelen görüntülerin bağımsız bileşenleri hakkında önemli bir makalesi var. Bunu PCA ile ilişkilendirmek için: ICA, boyutsallığı ve ilk yaklaşımları azaltmak için ilk adım olarak PCA veya SVD'yi kullanır, ancak daha sonra PCA gibi yalnızca ikinci dereceden hata (SSE) değil, aynı zamanda yüksek dereceli hataları da dikkate alır - bu doğrudur. ICA, tüm yüksek emirler, ancak birçok algoritma kendilerini 3. veya 4. ile sınırlandırıyor. Düşük dereceli PCA bileşenleri, yatay çizgiler ve dikeyler tarafından güçlü şekilde etkilenme eğilimindedir. Filmler için kamera hareketi ile ilgilenmek PCA / ICA'yı da kullanabilir. Hem 2B fotoğraflar hem de 2 moviesD filmler için, bunu başarabilmek için birkaç örnek numaraya ihtiyacınız var.

Büyükanneme açıklayabileceğiniz diğer bir uygulama özyüzlerdir - daha yüksek dereceli özvektörler '7 temel duyguya' (her biri için ortalama yüz ve 'ölçeklendirilmiş döndürme' veya bu ortalamayı yapmak için doğrusal bir kombinasyon) yaklaşabilir, ancak çoğu zaman bileşenleri buluruz. cinsiyet ve ırkla ilgilidir ve bazıları bireyleri veya bireysel özellikleri (gözlük, sakal vb.) ayırt edebilir. Bu, herhangi bir bireyin birkaç fotoğrafının ve birçok duygu / ifadenizin olması durumunda gerçekleşen şeydir, ancak tarafsız ifadeleri olan birçok yüzünüz varsa, farklı bir önyargı elde edersiniz. PCA yerine ICA kullanmak, temel duygular için pek de yardımcı görünmüyor, ancak Bartlett ve Sejnowsiki (1997) yüz tanıma için yararlı özellikler bulduğunu gösterdi.


1
Örneklerle ve analojiyle iletişim kurma çabasını takdir ediyorum. Görüntülerin kullanımı büyük olasılıkla büyük olasılıkla büyük olasılıkla büyük olasılıkla, "döndürme" duygunuzun bir görüntünün eksenlerini döndürme ile aslında çok az ilgisi olmadığını , ne de muhtemelen sizin kullandığınızı anlamayacağını anlamıyor “fotoğrafların sadece iki değil, milyonlarca boyutta olduğu soyut anlamda.
whuber

Evet, diğer cevaplardaki resimlerde olduğu gibi bunu bir nokta bulutu olarak göstermeniz gerekir. Bir çeşit kenar algılama ve / veya eşikleme ile ön işleme muhtemelen bahsettiğim "püf noktaları" nın bir parçası olabilir. Ancak karmaşık bir fotoğraf üzerinde işlem yapmak için doktora değerinde hileler gerekir.
David MW,

@whuber Stereo görüntü kalibrasyonu yaparken bu rotasyonları bulmak için PCA'yı (iyi SVD) kullandım! Kesinlikle aynı döndürme duygusudur.
David MW

2

Herkesin PCA'yı yanlış uçtan açıklamaya başladığını düşünüyorum: özvektörlerden. Cevabım doğru yerde başlıyor: koordinat sistemi. Özvektörler ve genel olarak özdeğer sorunu, eldeki yanlış bir koordinat sistemi olan asıl konuyu ele almak için kullanılan matematiksel araçtır. Açıklayacağım.

Bir çizgi ile başlayalım. Çizgi nedir? Bu tek boyutlu bir nesne. Yani, bir noktadan diğerine geçmek için sadece bir boyuta ihtiyacınız var. Bir düzlemde, bir çizginin herhangi bir noktasını iki koordinat eklediniz. Bunun sebebi bir hattın kendisiyle ilgili olarak koordinat sisteminin keyfi olarak seçilmesidir. Koordinat sisteminin iddia edeceğim gibi çizginin içsel bir boyutsal doğasını yansıtmıyor. Keşke Kartezyen koordinat sistemimin kökenini her zaman çizgiye koyacak ve x ekseni çizgide olacak şekilde çevirmiş olsaydım, artık y eksenine ihtiyacım olmazdı! Tüm puanlarım tek eksende çünkü çizgi tek boyutlu bir nesne.

PCA açıklamalarının başlaması gereken yer burasıdır. Öz problem, tarif ettiğim dönüşü yapan ve değişkenlerin anlamsızlığını kökenleri çizgiye koyan bir araçtır. PCA , değişkenler arasındaki ilişkiler doğrusal olduğu sürece verilerin gerçek boyutlarını ortaya çıkarmaya yardımcı olur .


1

Bir özvektörün, dönüşümü aynı giriş vektörüne paralel olan bir vektör olduğunu unutmayın. Dolayısıyla, yüksek bir özdeğere sahip bir özvektör, özvektörün verilere yüksek derecede "paralelliğine" sahip olduğu anlamına gelir; bu, verileri yalnızca bu vektörle temsil edebileceğiniz ve yeni sunumda düşük bir hata bekleyebileceğiniz anlamına gelir. Daha düşük özdeğerlere sahip ek özvektörler seçerseniz, verinin daha fazla detayını gösterebileceksiniz çünkü daha düşük özdeğerler nedeniyle ilki kadar belirgin olmayan diğer 'paralellikleri' temsil ediyor olacaksınız.


0

PCA temel olarak daha yüksek boyutlu bir boşluğun mümkün olduğu kadar fazla bilgiyi koruyarak daha düşük boyutlu bir boşluğa yansımasıdır.

PCA'yı 3B-demlik projeksiyonu ile açıkladığım bir blog yazısı yazdım ...

görüntü tanımını buraya girin

... olabildiğince fazla bilgiyi koruyarak 2B düzlem üzerine:

görüntü tanımını buraya girin

Ayrıntılar ve tam R-kodu yazıda bulunabilir:
http://blog.ephorie.de/intuition-for-principal-component-analysis-pca


1
Buna rağmen, görüntüler şu anda bir cevaptan çok bir yorumdan ibarettir. Belki bağlantıdaki bilgilerin bir özetini vererek genişletebilir misiniz? SE ağındaki yayınların kendi başlarına durmaları beklenir.
gung

@gung: yeterince adil - esas, PCA'nın temelde daha yüksek boyutlu bir alanın (bu durumda bir 3D-demlik) daha düşük boyutlu bir alana (bu durumda bir 2D-düzlem) projeksiyonunu olduğu kadar bilgi kadar korur. mümkün. Cevapta değişecek.
17'de

Bu kesinlikle doğrudur (ve bu konudaki diğer birçok cevapta açıklanmıştır), ancak genellikle SE sisteminde yayınlanan cevaplardan daha fazlası olmalı, ve örneğin bağlantı kesilirse kendi başlarına durabilmeliler.
gung

1
Çaydanlık örneği ilginç. PCA'nın 'bilgi' kadar korurken, boyutsal alanı azaltmaya yönelik bir projeksiyon olduğunu söylüyorsunuz. Ama .... bilgi nedir? PCA söz konusu olduğunda bu toplam varyansı mümkün olduğu kadar yüksek tutmak anlamına gelir. Çaydanlık örneği, bilginin belirli bir düzlemde bir izdüşüm kullanarak "en fazla korunmuş" olduğunu belirtmek gibidir, ancak bu PCA'nın bunu nasıl yaptığını ve aynı zamanda 'en iyi' 'bilgi' seçimi olup olmadığını çok az açıklar. Örneğin, LDA ayrıca bilgiyi korumaya niyetli, ancak PCA ile aynı olmayan bir projeksiyondur.
Martijn Weterings,

Çaydanızın PCA'dan daha yuvarlak / dairesel (daha az yüksek) olması durumunda, "bilgilerin" çoğunu korumak için farklı bir kesişim seçmiş olur.
Martijn Weterings,

-4

Belki de bu analizlerin sonlarında, grup I'den elde edilen verilerin grup II'den farklı olduğu ve birinin hangi bileşenin farklılığa en büyük katkı sağlayan faktör olduğunu bulmaya çalıştığı varsayımı açıktır.

Daha sonra 2 farklı set için aynı elipsoidlerle sonuçlanan bir PCA analizi yapmak, iki grubun ölçtüğünüz parametrelerin hiçbirinden farklı olmadığını söyler.


2
MANOVA'yı düşünüyor musunuz merak ediyorum. İki sepa4ate PCA çalıştırdıysanız, sadece korelasyon yapısının benzer olduğunu gösterirdiniz.
gung

2
-1. Bu tamamen yanıltıcı bir cevap, çünkü @gung tarafından ana hatlarıyla belirtildi. Ayrıca, PCA'nın ne olduğunu açıklamaya bile çalışmıyor.
amip
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.