Quel type de normalisation de données doit être utilisé avec KNN?


9

Je sais qu'il existe plus de deux types de normalisation.

Par exemple,

1- Transformer les données en utilisant un z-score ou un t-score. Ceci est généralement appelé standardisation.

2- Redimensionner les données pour avoir des valeurs comprises entre 0 et 1.

La question maintenant si j'ai besoin de normaliser

Quel type de normalisation de données doit être utilisé avec KNN? et pourquoi?

Réponses:


11

Pour k-NN, je suggère de normaliser les données entre et .01

k-NN utilise la distance euclidienne comme moyen de comparaison des exemples. Pour calculer la distance entre deux points et , où est la valeur de la -ième fonction de :x1=(f11,f12,...,f1M)x2=(f21,f22,...,f2M)f1iix1

d(x1,x2)=(f11f21)2+(f12f22)2+...+(f1Mf2M)2

Pour que toutes les entités soient d' égale importance lors du calcul de la distance, les entités doivent avoir la même plage de valeurs. Cela n'est possible que par la normalisation.

S'ils n'étaient pas normalisés et par exemple, la caractéristique avait une plage de valeurs dans ), tandis que avait une plage de valeurs dans . Lors du calcul de la distance, le deuxième terme serait fois plus important que le premier, ce qui amènerait k-NN à s'appuyer davantage sur la deuxième caractéristique que sur la première. La normalisation garantit que toutes les entités sont mappées sur la même plage de valeurs.f1[0,1f2[1,10)10

La normalisation, en revanche, a de nombreuses propriétés utiles, mais ne peut pas garantir que les entités sont mappées sur la même plage. Alors que la normalisation peut être mieux adaptée à d'autres classificateurs, ce n'est pas le cas pour k-NN ou tout autre classificateur basé sur la distance.


4
Votre réponse sera-t-elle la même si j'ai utilisé une distance différente au lieu d'une distance euclidienne (par exemple la distance de Manhattan ou une autre distance, même une distance fractionnelle)? Aussi, si la plage des variables est approximativement proche l'une de l'autre.
jeza

7
Oui, je viens de montrer la distance euclidienne à titre d'exemple, mais toutes les mesures de distance souffrent de la même chose. Si les plages sont proches les unes des autres, cela n'affecterait pas beaucoup le calcul de la métrique , mais cela le serait quand même. Par exemple, si et , serait toujours plus important que . Une chose que j'ai oublié de mentionner était que la standardisation, bien sûr, est bien meilleure que de ne pas effectuer de mise à l'échelle des fonctionnalités; c'est tout simplement pire que la normalisation. f1[0,1)f2[0,1.2)f220%f1
Djib2011

Ah, je vois. "c'est tout simplement pire que la normalisation" !?
jeza
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.