Contenu du cours
Classification Avec Python
Classification Avec Python
K-NN avec Plusieurs Caractéristiques
Vous comprenez maintenant comment fonctionne k-NN lorsqu'il n'y a qu'une seule caractéristique. Passons à un exemple un peu plus complexe avec deux caractéristiques, le poids et la largeur.
De cette façon, nous devons trouver des voisins en ce qui concerne à la fois la largeur et le poids. Mais il y a un petit problème avec cela. Traçons les bonbons et voyons ce qui ne va pas :
Vous pouvez voir que le poids varie de 12 à 64 tandis que la largeur est seulement entre 5 et 12. Étant donné que la plage de la largeur est beaucoup plus petite, les bonbons semblent presque alignés verticalement. Et si nous calculons les distances maintenant, elles seront proches des différences de poids, comme si nous n'avions jamais pris en compte la largeur :'( Il y a cependant une solution – mettre à l'échelle les données.
Maintenant, le poids et la largeur sont sur la même échelle et centrés autour de zéro. Cela est réalisable en utilisant la classe StandardScaler
de sklearn
. Voici la syntaxe :
Vous devriez toujours mettre à l'échelle les données avant d'utiliser k-Nearest Neighbors.
Remarque
StandardScaler
rend les données centrées autour de zéro. Le centrage n'est pas obligatoire pour k-NN et peut même vous dérouter "comment le poids peut-il être négatif"... Mais c'est juste une façon de présenter les données à un ordinateur, et certains autres modèles nécessitent un centrage, donc il est préférable d'utiliserStandardScaler
pour le redimensionnement par défaut.
Avec les données mises à l'échelle, nous pouvons maintenant trouver les voisins !
Dans le cas de k-NN à deux caractéristiques, nous trouvons le voisinage circulaire avec le nombre souhaité de voisins. Avec trois caractéristiques impliquées, nous recherchons un voisinage sphérique.
Avec plus de trois caractéristiques, la forme d'un voisinage est plus complexe, donc nous ne pouvons pas le visualiser, mais mathématiquement c'est la même chose.
Merci pour vos commentaires !