PCA özvektörleri olmayan vektörlerin “özdeğerleri” (açıklanan varyans yüzdeleri) nasıl elde edilir?


10

PCA tarafından sağlanan koordinat alanında değil, biraz farklı (döndürülmüş) vektörlere karşı bir veri kümesinin varyans yüzdesini nasıl elde edebileceğimi anlamak istiyorum.

resim açıklamasını buraya girin

set.seed(1234)
xx <- rnorm(1000)
yy <- xx * 0.5 + rnorm(1000, sd = 0.6)
vecs <- cbind(xx, yy)
plot(vecs, xlim = c(-4, 4), ylim = c(-4, 4))
vv <- eigen(cov(vecs))$vectors
ee <- eigen(cov(vecs))$values
a1 <- vv[, 1]
a2 <- vv[, 2]
theta = pi/10
rotmat <- matrix(c(cos(theta), sin(theta), -sin(theta), cos(theta)), 2, 2)
a1r <- a1 %*% rotmat
a2r <- a2 %*% rotmat
arrows(0, 0, a1[1], a1[2], lwd = 2, col = "red")
arrows(0, 0, a2[1], a2[2], lwd = 2, col = "red")
arrows(0, 0, a1r[1], a1r[2], lwd = 2, col = "green3")
arrows(0, 0, a2r[1], a2r[2], lwd = 2, col = "green3")
legend("topleft", legend = c("eigenvectors", "rotated"), fill = c("red", "green3"))

Yani temel olarak, veri kümesinin PCA tarafından verilen kırmızı eksenlerin her biri boyunca varyansının öz değerler ile temsil edildiğini biliyorum. Ancak, aynı miktarı toplayan eşdeğer varyansları nasıl elde edebilirim, ancak temel bileşen eksenlerinin pi / 10'una göre bir dönüş olan iki farklı ekseni yeşil olarak yansıtırım. IE menşeinden iki dikey birim vektörü verildiğinde, bu varyansın (ancak dik) eksenlerinin her biri boyunca bir veri kümesinin varyansını nasıl alabilirim, böylece tüm varyans hesaplanır (yani "özdeğerler" toplamı, PCA).


Yanıtlar:


7

Vektörler dikey ise, verilerin her bir vektör üzerindeki skaler izdüşümünün varyansını alabilirsiniz. Diyelim ki veri matrisimiz ( nokta x boyutlar) ve bir grup ortonormal sütun vektörü . Verilerin ortalandığını varsayın. Her bir vektör yönü boyunca veri varyans verilir .Xnd{v1,...,vk}viVar(Xvi)

Orijinal boyutlar ( ) kadar çok vektör varsa , projeksiyonların varyanslarının toplamı, orijinal boyutlar boyunca varyansların toplamına eşit olacaktır. Ancak, orijinal boyutlardan ( ) daha az vektör varsa , varyansların toplamı genellikle PCA'dan daha az olacaktır. PCA'yı düşünmenin bir yolu, bu miktarı en üst düzeye çıkarmasıdır (vektörlerin dik olduğu kısıtlamasına bağlı olarak).k=dk<d

Ayrıca , belirli bir PCA boyutunun verileri ne kadar iyi temsil ettiğini ölçmek için kullanılan (açıklanan varyans oranı açıklanmıştır) hesaplamak da isteyebilirsiniz . , verilerin her bir orijinal boyutu boyunca varyansların toplamını temsil edelim . Sonra:R2S

R2=1Si=1kVar(Xvi)

Bu sadece projeksiyonların toplanan varyanslarının ve orijinal boyutlar boyunca toplanan varyansların oranıdır.

hakkında düşünmenin bir başka yolu , verileri projeksiyonlardan yeniden oluşturmaya çalışırsak uyumun iyiliğini ölçmesidir. Daha sonra diğer modeller için kullanılan tanıdık formu alır (örn. Regresyon). Ki inci veri noktası satır vektörüdür . Temel vektörlerin her birini matrisi sütunları boyunca . İzdüşümü tüm vektörler üzerine inci veri noktası ile verilir . Orijinal boyutlardan daha az vektör olduğunda ( ı x ( i ) V i V p ( i ) = x ( i ) V k < d x ( i ) = p ( i ) V TR2ix(i)ViVp(i)=x(i)Vk<d) bunu, verileri doğrusal olarak azaltılmış boyutluluğa sahip bir alana eşleme olarak düşünebiliriz. Yaklaşık orijinal veri alanı içine eşleme geri düşük boyutlu temsil veri noktasını yeniden yapılandırabilir: . Ortalama kare yeniden yapılandırma hatası, her orijinal veri noktası ile yeniden yapılandırılması arasındaki ortalama kare Öklid mesafesidir:x^(i)=p(i)VT

E=1nx(i)x^(i)2

Uyum iyiliği , diğer modellerle aynı şekilde tanımlanır (yani bir eksi açıklanamayan varyansın bir kısmı). Modelin ortalama kare hatası ( ) ve modellenen miktarın toplam varyansı ( ) göz önüne alındığında , . Verilerimiz yeniden bağlamında, ortalama kare hatası (rekonstrüksiyon hatası). Toplam varyans (verinin her boyutu boyunca varyansların toplamı). Yani:R2MSEVartotalR2=1MSE/VartotalES

R2=1ES

S ayrıca her veri noktasından tüm veri noktalarının ortalamasına ortalama kare Öklid mesafesine eşittir, bu nedenle yeniden yapılandırma hatasını her zaman döndüren 'en kötü durum modelinin' ile karşılaştırmak olarak düşünebiliriz. rekonstrüksiyon demek.R2

için iki ifade eşdeğerdir. Yukarıdaki gibi, orijinal boyutlar ( ) kadar çok vektör varsa, olacaktır. Ancak, , genellikle PCA için olandan daha az olacaktır. PCA hakkında düşünmenin başka bir yolu, kare imar hatasını en aza indirmesidir.R2k=dR2k<dR2


+1, çok açık bir açıklama. Sadece tam olarak söylemek gerekirse , yazdığınız şey olduğunu belirtmek isterim, ancak " " ile projeksiyon için kullanılan aynı üzerinden yeniden yapılandırmayı anlarsak . Genel olarak, keyfi bir projeksiyon vektörü , daha yüksek sağlayan daha iyi bir yeniden yapılandırma olacaktır . Bunu ayrıntılı olarak açıkladığım bir cevabım var . Yine de, bu özel soru için yazdıklarınızın tam olarak gerekli olan şey olduğuna katılıyorum. R2try[ing] to reconstruct the data from the projectionsVvR2
amip

Evet, bu iyi bir nokta ve güzel bir açıklama
user20160

Bir veri matrisim yoksa sadece bir kovaryans matrisim varsa ne olur? Kovaryans matrisinin köşegeninin toplamı bana toplam varyansı verir ve eğer PCA'yı bu kovaryans matrisine uygularsam, özdeğerler her yeni yön boyunca varyansı verir, böylece açıklanan varyant özdeğer / toplam varyans olur. Ama vektörlerim özvektör değil nedir?
Şaşkın

... Anlayabildiğim kadarıyla, eğer bir kovaryans matrisi C ile başlarsak , o zaman bu durumda bir | Cv_i | / sum (diag ( C ))% varyansı açıklamak için.
Şaşkın
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.