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, S., Schölkopf, B., Smola, AJ, Müller, KR, Scholz, M. ve Rätsch, G. (1998). Çekirdek PCA ve Unsur Alanlarında Gürültü Giderme . NIPS'de (Cilt 11, sayfa 536-542).
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
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ı:
Ve işte bazı sonuçlar (bence oldukça açıklayıcı):