Özellik seçimi için çekirdek PCA'yı kullanmak mümkün müdür?


9

Latent Semantik İndeksleme (LSI) için çekirdek ana bileşen analizini (kPCA) PCA ile aynı şekilde kullanmak mümkün müdür?

prcompPCA işlevini kullanarak R'de LSI gerçekleştiriyorum ve ilkinden en yüksek yüklemelere sahip özellikleri çıkarıyorumkbileşenler. Böylece bileşeni en iyi açıklayan özellikleri elde ediyorum.

kpcaFonksiyonu ( kernlibpaketten) kullanmaya çalıştım ancak özelliklerin ağırlıklarına temel bir bileşene nasıl erişileceğini göremiyorum. Genel olarak çekirdek yöntemleri kullanılırken bu mümkün müdür?


Princomp işlevini denediniz mi?
mariana soffer

Yanıtlar:


6

Sorunuzun cevabının olumsuz olduğunu düşünüyorum: bu mümkün değil.

Özellik seçimi için standart PCA kullanılabilir, çünkü her ana bileşen orijinal özelliklerin doğrusal bir kombinasyonudur ve bu nedenle hangi orijinal özelliklerin en önemli ana bileşenlere en çok katkıda bulunduğunu görebilir, bkz. Örneğin: Ana bileşen analizi (PCA) kullanma özellik seçimi .

Ancak çekirdek PCA'da her bir temel bileşen, hedef uzaydaki özelliklerin doğrusal bir kombinasyonudur ve örneğin Gauss çekirdeği (genellikle kullanılır) için hedef alan sonsuz boyutludur. Dolayısıyla, "yüklemeler" kavramı kPCA için gerçekten anlamlı değildir ve aslında, çekirdek ana bileşenleri doğrudan hesaplanır ve ana eksenlerin (standart PCA için R tarafından verilen prcomp$rotation) tamamen hesaplanır. çekirdek hilesi . Örneğin buraya bakın: Doğrusal çekirdekli Çekirdek PCA, standart PCA'ya eşdeğer mi?daha fazla ayrıntı için.

Yani hayır, bu mümkün değil. En azından kolay bir yolu yok.


2
(+1) Bence SVM'lere bir benzetmeyle açıklamak daha kolay, burada doğrusal alanda her değişkenin ayırma hiper düzlemine katkıda bulunduğu ağırlıkları hesaplayabilirsiniz (tür en azından özellik seçimi için kullanılabilir) en azından çekirdek boşluklarında çok karmaşık ya da açıkça imkansız. Burada da aynı mantık.
Firebug

2

Aşağıdaki örnek (kernlab başvuru kılavuzundan alınmıştır), çekirdek PCA'nın çeşitli bileşenlerine nasıl erişeceğinizi gösterir:

data(iris)
test <- sample(1:50,20)
kpc <- kpca(~.,data=iris[-test,-5],kernel="rbfdot",kpar=list(sigma=0.2),features=2)

pcv(kpc)        # returns the principal component vectors
eig(kpc)        # returns the eigenvalues
rotated(kpc)    # returns the data projected in the (kernel) pca space
kernelf(kpc)    # returns the kernel used when kpca was performed

Bu sorunuza cevap veriyor mu?


i prcomp $ döndürme ile aynı olduğunu düşünerek döndürülmüş (kpca) çalıştı; ki bu (R yardımı (prcomp) formundan alınır): "döndürme: değişken yüklerin matrisi (yani sütunları özvektörleri içeren bir matris)." Ancak öyle değil. Ancak soru da çok geneldir çünkü LSA / LSI'nin doğrusal olmayan boyutsallık azaltma kullanarak mümkün olup olmadığından emin değilim.
user3683 14:11

üzgünüm, ama soruyu kaçırıyor olabilirim; Neden LSA / LSI'da doğrusal olmayan boyutsallık azalmasının mümkün olmadığını düşünüyorsunuz?
Lalas

1
çünkü boyutların doğrusal bir kombinasyonu değil, çekirdek fonksiyonuna bağlı olan bir kombinasyon vardır. Bu ortamda, bir boyutun (doğrusal olmayan) bir ana bileşen için ağırlığını belirlemek mümkün müdür?
user3683

2
(-1) Bu yararlı bir kod snippet'i olabilir, ancak orijinal soruya hiç cevap vermediğini sanmıyorum.
amoeba
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.