Çekirdek PCA için bir çekirdek nasıl seçilir?


13

Çekirdek PCA (temel bileşen analizi) ile nihai veri çıktısında hangi çekirdeğin iyi veri ayrılmasına yol açacağını seçmenin yolları nelerdir ve çekirdeğin parametrelerini optimize etmenin yolları nelerdir?

Layman'ın mümkünse terimleri çok takdir edilecek ve bu yöntemleri açıklayan makalelere bağlantılar da iyi olurdu.


1
"İyi veri ayrımı" dediğinizde tam olarak neyi kastediyorsunuz? Aklınızda hangi PCA uygulaması var? "Veri ayırma" ile ilgili bir şey varsa, o zaman kPCA yerine bazı sınıflandırma tekniği (çekirdek destek vektör makinesi gibi) kullanıyor olabilir misiniz? Bunların dışında iyi soru +1. Çekirdek seçimi konusunda deneyimim yok, bu yüzden burada size yardım edemem.
amip

@amoeba Doğrusal Olmayan Boyutsallık Azaltımı için kullanılır. Destek vektörleri hakkındaki bilgim biraz sınırlı çünkü daha önce hiç CS dersi almadım; Ben bir lisans öğrencisiyim ve çevrimiçi makaleler aracılığıyla öğreniyorum. "İyi veri ayrımı" derken, bu yazıda çizilen örneklerle gösterilenleri kastediyorum . Matlab ile çalışıyorum ve çekirdek PCA kodum basit, poli, radyal temel ve sigmoid çekirdekler için çalışıyor ve çalışıyor, ancak en iyi sonuçlar için ne zaman kullanılacağını bilmek yararlı olacaktır.
Chives

Ben bir çekirdek seçmek için en iyi (tek?) Yolu çapraz doğrulama kullanmak olduğunu düşünüyorum, buraya bakın: SVM için çekirdek nasıl seçilir? Çapraz doğrulamayı kullanmak için kPCA'nız için bir performans ölçüsüne sahip olmanız yeterlidir. O ABA / kpca tasarlanmış olmadığını not Sonra ne olduğunu, ancak eğer Sınıf ayrımı iyi ölçü olabilir hiç iyi sınıf ayrılık sonuçlanması; yakalanan varyansı maksimuma çıkarıyor.
amip

Biraz okuma yaptım ve sonuçta sorunuza cevap verebilirim. Ama bu biraz zaman alabilir (gün).
amip

@amoeba Varyansı en üst düzeye çıkarmak şimdi bahsettiğiniz için benim için anlamlı. Kendimi çapraz doğrulamaya bakacağım, ama zaman bulabilirsen biraz da baksan harika olurdu! Teşekkür ederim.
Chives

Yanıtlar:


8

Herhangi bir çekirdek tabanlı yöntemde en uygun çekirdeği (çekirdek türü veya çekirdek parametreleri) seçmeye yönelik genel yaklaşım çapraz doğrulamadır. Destek vektör makineleri için çekirdek seçimi tartışması için buraya bakın: SVM için çekirdek nasıl seçilir?

Çapraz doğrulamanın arkasındaki fikir, bazı "test" verilerini dışarıda bırakıp, kalan "eğitim" verilerine göre modele uyacak şekilde algoritmamızı çalıştırmamız ve elde edilen modelin test verilerini ne kadar iyi tanımladığını (ve hatanın ne kadar büyük olduğunu) kontrol etmemizdir. dır-dir). Bu, farklı kalan veriler için tekrarlanır, ortalama çapraz onaylı bir hata oluşturmak için hataların ortalaması alınır ve daha sonra en düşük hatayı veren birini seçmek için farklı algoritmalar karşılaştırılabilir. SVM'de model performansının ölçüsü olarak örneğin sınıflandırma doğruluğu (veya ilgili önlemler) kullanılabilir. Daha sonra test verilerinin en iyi sınıflandırmasını veren bir çekirdek seçilecektir.

O zaman soru şu olur: kPCA'da hangi model performans ölçüsü kullanılabilir? "İyi veri ayrımı" (muhtemelen iyi sınıf ayrımı) elde etmek istiyorsanız, bunu bir şekilde eğitim verileri üzerinde ölçebilir ve en iyi çekirdeği bulmak için kullanabilirsiniz. Ancak, PCA / kpca iyi bir veri ayrımı elde etmek için tasarlanmış değildir (bunlar dikkate sınıf etiketleri yapmayız hiç ). Yani genel olarak konuşursak, kişi başka, sınıfla ilgisiz bir model performans ölçüsü isteyecektir.

Standart PCA'da test setindeki performans ölçüsü olarak yeniden yapılandırma hatası kullanılabilir . Çekirdek PCA'da da yeniden yapılandırma hatası hesaplanabilir, ancak sorun farklı çekirdekler arasında karşılaştırılabilir olmamasıdır: yeniden yapılandırma hatası, hedef özellik alanında ölçülen mesafedir; ve farklı çekirdekler farklı hedef alanlara karşılık gelir ... Yani bir sorunumuz var.

Bu sorunu çözmenin bir yolu, hedef alanda değil, orijinal alanda yeniden oluşturma hatasını bir şekilde hesaplamaktır. Açıkça, test dışı bırakılan veri noktası orijinal alanda yaşıyor. Ancak kPCA rekonstrüksiyonu hedef alanın [düşük boyutlu altuzayında] yaşar. Bununla birlikte, orijinal alanda bu yeniden yapılandırma noktasına mümkün olduğunca yakın eşlenecek bir nokta ("ön görüntü") bulmak ve daha sonra test noktası ile bu ön görüntü arasındaki mesafeyi ölçmektir. imar hatası olarak.

Burada tüm formülleri vermeyeceğim, bunun yerine sizi bazı makalelere yönlendireceğim ve buraya sadece birkaç rakam ekleyeceğim.

KPCA'da "ön görüntü" fikri bu makalede ortaya konmuştur:

Mika ve diğ. çapraz doğrulama yapmıyorlar, ancak gürültü giderme amaçlı ön görüntülere ihtiyaçları var, bu şekle bakın

Mika ve ark.

Denoised (kalın) noktalar, kPCA projeksiyonlarının ön görüntüleridir (burada test ve eğitim yoktur). Bu ön görüntüleri bulmak önemsiz bir iş değildir: bir kişinin degrade iniş kullanması gerekir ve kayıp işlevi çekirdeğe bağlı olacaktır.

Ve burada çapraz geçerlilik amaçları ve çekirdek / hiperparametre seçimi için ön görüntüleri kullanan çok yeni bir makale:

Bu onların algoritması:

Alam ve Fukumizu

Ve işte bazı sonuçlar (bence oldukça açıklayıcı):

Alam ve Fukumizu


1
(+1) Bu ön görüntünün, belirli bir kümeye atanan noktaların Fréchet / Karcher araçları seti olduğunu, bunun herhangi bir şeye yardımcı olması gerektiğini not etmek yararlı olabilir.
Dougal

xxyyzz

İkinci düşüncede, sanırım daha önce yeterince dikkat etmedim; benim yorumum kPCA için değil, çekirdek k-araçları için geçerlidir. Bu önyargı kesinlikle bu kavramla ilgilidir, ama aynı şey değildir. Gürültü için üzgünüm. :)
Dougal
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.