Quelqu'un pourrait-il m'expliquer pourquoi vous devez normaliser les données lors de l'utilisation de K voisins les plus proches.
J'ai essayé de chercher ça, mais je n'arrive toujours pas à le comprendre.
J'ai trouvé le lien suivant:
https://discuss.analyticsvidhya.com/t/why-it-is-necessary-to-normalize-in-knn/2715
Mais dans cette explication, je ne comprends pas pourquoi une plus grande plage dans l'une des fonctionnalités affecte les prédictions.
k-nearest-neighbour
bugsyb
la source
la source
Réponses:
L'algorithme k-plus proche voisin repose sur le vote majoritaire basé sur l'appartenance à la classe des échantillons «k» les plus proches pour un point de test donné. La proximité des échantillons est généralement basée sur la distance euclidienne.
Considérons un problème de classification simple à deux classes, où un échantillon de classe 1 est choisi (noir) avec ses 10 voisins les plus proches (vert rempli). Dans la première figure, les données ne sont pas normalisées, alors que dans la seconde, elles le sont.
Remarquez, comment sans normalisation, tous les voisins les plus proches sont alignés dans la direction de l'axe avec la plage la plus petite, c'est-à-dire conduisant à une classification incorrecte.x1
La normalisation résout ce problème!
la source
Supposons que vous disposiez d'un ensemble de données (m "exemples" par n "entités") et que toutes les dimensions d'entité sauf une avaient des valeurs strictement comprises entre 0 et 1, tandis qu'une dimension d'entité unique avait des valeurs comprises entre -1000000 et 1000000. Lors de la prise de la distance euclidienne entre des paires d '"exemples", les valeurs des dimensions de caractéristiques qui varient entre 0 et 1 peuvent devenir non informatives et l'algorithme se fonderait essentiellement sur la dimension unique dont les valeurs sont sensiblement plus grandes. Il suffit de trouver quelques exemples de calculs de distance euclidienne et vous pouvez comprendre comment l'échelle affecte le calcul du voisin le plus proche.
la source