9
votes

Valeur de k in k in k voisin le plus proche voisin d'algorithme

J'ai 7 cours qui doivent être classés et j'ai 10 caractéristiques. Existe-t-il une valeur optimale pour K que je dois utiliser dans ce cas ou dois-je exécuter le KNN pour des valeurs de K entre 1 et 10 (environ 10) et déterminer la meilleure valeur à l'aide de l'algorithme lui-même?


5 Réponses :


13
votes

En plus de L'article < / a> J'ai posté dans les commentaires Il y a Celui-ci également suggère:

Choix de K est très critique - une petite valeur de k signifie que le bruit aura une influence plus élevée sur le résultat. Une valeur importante le permet de calculer le calcul et de vaincre un peu la philosophie de base derrière KNN (que des points qui se trouvent à proximité peuvent avoir des densités ou des classes similaires). Une approche simple pour sélectionner K est définie k = n ^ (1/2).

Cela dépend beaucoup de vos cas individuels, il est parfois préférable de courir à travers chaque valeur possible pour K et de décider pour vous-même.


5 commentaires

Pourriez-vous s'il vous plaît dites-moi si N signifie nombre de classes?


Vous classer en fonction des fonctionnalités, donc n signifie nombre de fonctionnalités.


Si j'ai 93 fonctionnalités que 97 seront un choix apte ou je devrais choisir 93 ^ 1/2?


Comme indiqué, vous devez avoir pris n ^ 0,5 (où n = n ° d'instances de données, pas de fonctionnalités) comme une valeur de départ pour K et la modifier en conséquence.


Qu'est-ce que cela signifie si le "optimal k" ne nous a pas donné les meilleurs résultats?



10
votes

Une chose importante à noter dans l'algorithme K-nn est que le nombre de caractéristiques et le nombre de classes ne joue pas à la détermination la valeur de k dans l'algorithme K-nn. L'algorithme K-NN est un classificateur ad-hoc utilisé pour classer les données de test basés sur la métrique à distance, c'est-à-dire qu'un échantillon de test est classé comme classe 1 s'il existe plus de numéros d'échantillons de formation de classe-1 plus proches de l'échantillon de test par rapport à d'autres classes par rapport à d'autres classes par rapport à d'autres classes échantillons de formation. Par exemple: Si la valeur des échantillons K = 5, les 5 échantillons de formation les plus proches sont sélectionnés en fonction d'une métrique à distance, puis un vote pour la plupart des échantillons par classe est effectué. Donc, si 3 échantillons appartiennent à la classe-1 et 2 appartiennent à la classe 5, cet échantillon de test est classé comme classe 1. Donc, la valeur de k indique le nombre d'échantillons de formation nécessaires pour classer l'échantillon de test.

Venir à votre question, la valeur de k est non paramétrique et une règle générale dans le choix de la valeur de k est k = sqrt ( N) / 2 , où n signifie le nombre d'échantillons dans votre jeu de données de formation . Un autre conseil que je suggère est d'essayer de conserver la valeur de K impair, de sorte qu'il n'y ait pas d'égalité entre choisir une classe, mais que cela indique que les données de formation sont fortement corrélées entre les classes et en utilisant un simple algorithme de classification telle que K- NN entraînerait une performance de classification médiocre.


0 commentaires

4
votes

En Knn, trouver la valeur de k n'est pas facile. Une petite valeur de K signifie que le bruit aura une influence plus élevée sur le résultat et une grande valeur le rendre coûteux.

Les scientifiques de données choisissent généralement:

1. Nombre impair si le nombre de classes est 2

2.Autre approche simple pour sélectionner K est défini K = SQRT (N). où n = nombre de points de données dans les données de formation.

J'espère que cela vous aidera.


1 commentaires

La dépense de calcul d'un grand k n'est normalement pas la question la plus importante. Grand k sera excessivant la structure locale ignorer.



3
votes

Vous voudrez peut-être essayer cela comme une approche pour parcourir différentes valeurs K et la visualiser pour aider votre prise de décision. J'ai utilisé cela assez de fois et cela m'a donné le résultat que je voulais: xxx


0 commentaires

1
votes

Il n'y a pas de méthodes statistiques prédéfinies pour trouver la valeur la plus favorable de K. Choisir une très petite valeur de K conduit à des limites de décision instable. La valeur de k peut être sélectionnée comme k = sqrt (n). où n = nombre de points de données dans les données de formation Le nombre impair est préféré comme k valeur k.

La plupart du temps sous l'approche est suivie dans l'industrie. Initialiser une valeur K aléatoire et commencer à calculer. Dériver une parcelle entre le taux d'erreur et k dénotant des valeurs dans une plage définie. Choisissez ensuite la valeur K comme ayant un taux d'erreur minimum. Dériver une parcelle entre précision et k dénotant des valeurs dans une plage définie. Choisissez ensuite la valeur K comme ayant une précision maximale. Essayez de trouver une valeur de transaction de K entre la courbe d'erreur et la courbe de précision.


0 commentaires