Pourquoi avez-vous besoin de mettre à l'échelle des données dans KNN


15

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.


Je pense que la normalisation doit être justifiée du point de vue du sujet. Essentiellement, ce qui importe, c'est ce qui définit la distance entre les points. Vous devez trouver une définition arithmétique pratique de la distance qui reflète la définition du sujet de la distance. Dans mon expérience limitée, je me suis normalisé dans certaines directions, mais pas dans toutes, en fonction de considérations liées au sujet.
Richard Hardy

1
Pour un exemple instructif, veuillez consulter stats.stackexchange.com/questions/140711 .
whuber

Réponses:


27

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.

Données sans normalisation Données avec normalisation

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!


1
Cette réponse est exacte, mais je crains que les illustrations ne soient trompeuses en raison des distorsions impliquées. Le point pourrait être mieux fait en les dessinant tous les deux afin que les deux axes de chacun soient à la même échelle.
whuber

1
J'ai trouvé difficile d'adapter tous les points de données à la même échelle pour les deux figures. Par conséquent, j'ai mentionné dans une note que les échelles des axes sont différentes.
kedarps

1
Cette difficulté est en fait le point de votre réponse! Une façon de le surmonter est de ne pas utiliser une gamme d'échelles aussi extrême. Une différence de 5: 1 dans les échelles, plutôt qu'une différence de 1000: 1, ferait quand même bien ressortir votre argument. Une autre façon consiste à dessiner l'image fidèlement: le nuage de points supérieur semblera être une ligne verticale de points.
whuber

2
@whuber, j'ai mal compris votre premier commentaire. Correction des parcelles, j'espère que c'est mieux maintenant!
kedarps

1
@Undertherainbow C'est exact!
kedarps

6

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.

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.