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,f21,...,fM1)x2=(f12,f22,...,fM2)fi1ix1
d(x1,x2)=(f11−f12)2+(f21−f22)2+...+(fM1−fM2)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.