Kernelized k le plus proche voisin


12

Je suis nouveau dans les noyaux et j'ai rencontré un problème en essayant de noyauer kNN.

Préliminaires

J'utilise un noyau polynomiale:
K(x,y)=(1+x,y)d

Votre kNN euclidien typique utilise la métrique de distance suivante:
d(x,y)=||xy||

Soit mapper x dans un espace d'entité de dimension supérieure. Le carré de la métrique de distance ci-dessus dans l'espace de Hilbert peut être exprimé par les produits internes: 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)

Notez que si nous laissons ce qui précède dégénérera à votre distance euclidienne standard.d=1


La question

Le principal problème que j'ai est que je ne vois pas comment la kernelisation de kNN produit de meilleurs résultats comme le montre expérimentalement, par exemple, cet article (avertissement, lien pdf direct!).

Réponses:


24

Théorème de Cover: En gros, dit-il, étant donné tout ensemble aléatoire de points finis (avec des étiquettes arbitraires), alors avec une forte probabilité, ces points peuvent être rendus linéairement séparables [1] en les mappant à une dimension supérieure [2].

Implication: génial, ce que ce théorème me dit, c'est que si je prends mon jeu de données et mappe ces points à une dimension supérieure, je peux facilement trouver un classificateur linéaire. Cependant, la plupart des classificateurs doivent calculer une sorte de similitude comme le produit scalaire, ce qui signifie que la complexité temporelle d'un algorithme de classification est proportionnelle à la dimension du point de données. Ainsi, une dimension plus élevée signifie une plus grande complexité temporelle (sans parler de la complexité de l'espace pour stocker ces grands points dimensionnels).

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

f

La séparabilité linéaire implique-t-elle que les points d'une même classe seront plus proches que les points de différentes classes? Non, il n'y a pas de telle garantie en tant que telle. La séparabilité linéaire n'implique pas vraiment que le point de la même classe s'est rapproché ou que les points de deux classes différentes se sont éloignés.

Alors pourquoi kNN fonctionnerait-il? Ce n'est pas nécessaire! Cependant, si c'est le cas, c'est uniquement à cause du noyau.

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

Alors pourquoi utiliser le noyau kNN? Nous avons montré que la complexité de calcul de l'utilisation des noyaux est légèrement supérieure à celle du kNN habituel et si les données bénéficient de l'utilisation des noyaux, alors pourquoi ne pas les utiliser de toute façon?

Y a-t-il un article qui a étudié quelle classe de données peut bénéficier des noyaux dans kNN? Pour autant que je sache, non.

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.