Kernelised k En Yakın Komşu


12

Ben çekirdeklerde yeniyim ve kNN'yi çekirdeklemeye çalışırken bir engelle karşılaştım.

Hazırlıklar

Bir polinom çekirdek kullanıyorum:
K(x,y)=(1+x,y)d

Tipik Öklid kNN'niz aşağıdaki mesafe metriğini kullanır:
d(x,y)=||xy||

Let haritası x bazı yüksek boyutlu özellik uzaya. Daha sonra Hilbert uzayında yukarıdaki mesafe metriğinin karesi iç ürünlerle ifade edilebilir: d 2 ( f ( x ) , f ( y ) ) = K ( x , x ) - 2 K ( x , y ) + K ( y , y )f(x)xd2(f(x),f(y))=K(x,x)2K(x,y)+K(y,y)

izin verirsek , yukarıdakilerin standart Öklid mesafenize dejenere olacağını unutmayın.d=1


Soru

Temel problemim, kNN'nin çekirdekleştirmenin deneysel olarak gösterildiği gibi nasıl daha iyi sonuçlar verdiğini göremememdir, örneğin, bu yazı (uyarı, doğrudan pdf bağlantısı!).

Yanıtlar:


25

Kapağın Teoremi: Kabaca belirtildiği gibi, rastgele herhangi bir sonlu nokta kümesi (rastgele etiketlerle) verildiğini, daha sonra yüksek olasılıkla bu noktalar daha yüksek bir boyuta [2] eşlenerek doğrusal olarak ayrılabilir hale getirilebileceğini [1] söylüyor.

Sonuç: Harika, bu teoremin bana söylediği şey, veri setimi alıp bu noktaları daha yüksek bir boyuta eşlersem, o zaman kolayca doğrusal bir sınıflandırıcı bulabilirim. Bununla birlikte, çoğu sınıflandırıcı nokta ürünü gibi bir tür benzerliği hesaplamak zorundadır ve bu, bir sınıflandırma algoritmasının zaman karmaşıklığının veri noktasının boyutuyla orantılı olduğu anlamına gelir. Bu nedenle, daha yüksek boyut, daha büyük zaman karmaşıklığı anlamına gelir (bu büyük boyutlu noktaları saklamak için alan karmaşıklığından bahsetmiyoruz).

nfN(>>n)KxyK(x,y)=f(x),f(y)O(n)O(N)

f

Doğrusal ayrılabilirlik, aynı sınıftan puanların farklı sınıflardan puanlara yaklaşacağını ima ediyor mu? Hayır, böyle bir garanti yoktur. Doğrusal ayrılabilirlik, aynı sınıftaki noktanın daha yakınlaştığı ya da iki farklı sınıftan puanların daha da arttığı anlamına gelmez.

Öyleyse kNN neden işe yarar? Gerek yok! Ancak, eğer öyleyse, sadece çekirdek yüzünden olur.

x=(x1,x2)x(x12,2x1x2,x22)

Öyleyse neden çekirdek kNN kullanıyorsunuz? Çekirdek kullanmanın hesaplama karmaşıklığının her zamanki kNN'den biraz daha fazla olduğunu gösterdik ve eğer veri çekirdeği kullanmaktan yarar sağlıyorsa, neden onları yine de kullanmıyorsunuz?

KNN'deki çekirdeklerden hangi veri sınıfının yararlanabileceğini inceleyen herhangi bir makale var mı? Bildiğim kadarıyla, Hayır.

[1] http://en.wikipedia.org/wiki/Linear_separability
[2] http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4038449&tag=1

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.