K Algorithme Du Plus Proche Voisin

peut-être que je suis un peu stupide mais je n'arrive pas à trouver une réponse satisfaisante: En utilisant L'algorithme KNN, disons k=5. Maintenant j'essaie de classer un objet inconnu en obtenant ses 5 voisins les plus proches. Que faire si, après avoir déterminé les 4 voisins les plus proches, les 2 (ou plus) objets suivants les plus proches ont la même distance? Quel objet parmi ces 2 ou plus devrait être choisi comme le 5e plus proche voisin?

Merci d'avance :)

17
demandé sur Abdullah Khan 2011-02-03 21:37:27

4 réponses

quel objet de ces 2 ou plus devrait être choisi comme cinquième voisin le plus proche?

cela dépend vraiment de la façon dont vous voulez l'implémenter.

la Plupart des algorithmes faire une des trois choses:

  1. incluez tous les points de distance égaux, donc pour cette estimation, ils utiliseront 6 points, pas 5.
  2. utilisez le" premier " point trouvé des deux distances égales.
  3. choisir au hasard (généralement avec une graine cohérente, donc les résultats sont reproductibles) point à partir des 2 points trouvés.

cela étant dit, la plupart des algorithmes basés sur la recherche radiale ont une hypothèse inhérente de la stationnarité, dans ce cas, il ne devrait vraiment pas importe laquelle des options ci-dessus vous choisissez. En général, n'importe lequel d'entre eux devrait, théoriquement, fournir des valeurs par défaut raisonnables (d'autant plus qu'ils sont les points les plus éloignés dans l'approximation, et devraient avoir les pondérations effectives les plus basses).

17
répondu Reed Copsey 2011-02-03 18:40:38

une autre option intéressante est d'utiliser le voisin le plus proche comme ceci:

  • calculer la distance des 5 plus proches voisins de chaque classe de l'échantillon: vous aurez 5 distances de chaque classe.

  • puis vous obtenez la distance moyenne pour chaque classe.

  • cette distance moyenne inférieure sera la classe que vous assignerez à l'échantillon.

cette façon est efficace pour les ensembles de données de classes qui se chevauchent.

6
répondu Jav_Rock 2011-05-09 11:54:43

Si vous avez une autre fonction de distance, vous pouvez l'utiliser pour briser l'égalité. Même un mauvais peut faire le travail, le mieux si vous avez quelques heuristiques. Par exemple, si vous savez que l'une des caractéristiques considérées pour calculer votre distance principale est plus significative, utilisez seulement celle-ci pour résoudre la cravate.

si ce n'est pas le cas, choisissez au hasard. Le lancer plusieurs fois votre programme sur le même jeu de test, pour vérifier si le choix aléatoire compte.

5
répondu paradigmatic 2011-07-06 07:42:57

Peut-être que vous pouvez essayer floue knn. Pour le choix de k, je pense que beaucoup d'expériences devrait être fait afin d'obtenir le meilleur résultat de la classification.

2
répondu Boy Xiaolong 2011-11-22 03:11:43