Algorithme K-Nearest Neighbours (KNN) pour l’apprentissage automatique

Madison Schott

Suivre

22 avril 2019 · 5 min de lecture

Partie 1 d’une série sur les algorithmes d’introduction à l’apprentissage automatique

Si vous êtes familier avec l’apprentissage automatique et les algorithmes de base utilisé sur le terrain, vous avez probablement entendu parler de l’algorithme des k-plus proches voisins, ou KNN. Cet algorithme est l’une des techniques les plus simples utilisées dans l’apprentissage automatique. C’est une méthode préférée par beaucoup dans l’industrie en raison de sa facilité d’utilisation et de son temps de calcul réduit.

Qu’est-ce que KNN? KNN est un modèle qui classe les points de données en fonction des points qui lui ressemblent le plus. Il utilise des données de test pour faire une « estimation éclairée » sur ce qu’un point non classifié doit être classé.

Avantages:

  • Facile à utiliser.
  • Temps de calcul rapide.
  • Ne fait pas d’hypothèses sur les données.

Inconvénients:

  • La précision dépend de la qualité des data.
  • Doit trouver une valeur k optimale (nombre de voisins les plus proches).
  • Mauvaise classification des points de données dans une limite où ils peuvent être classés d’une manière ou d’une autre.

KNN est un algorithme considéré à la fois non paramétrique et un exemple de paresseux Que signifient exactement ces deux termes?

  • Non-paramétrique signifie qu’il ne fait aucune hypothèse. Le modèle est entièrement constitué des données qui lui sont données plutôt que de supposer que sa structure est normale.
  • L’apprentissage paresseux signifie que l’algorithme ne fait aucun ge néralisations. Cela signifie qu’il y a peu de formation impliquée lors de l’utilisation de cette méthode. Pour cette raison, toutes les données d’entraînement sont également utilisées dans les tests lors de l’utilisation de KNN.

Où utiliser KNN

KNN est souvent utilisé dans de simples systèmes de recommandation, image technologie de reconnaissance et modèles de prise de décision. Ce sont les algorithmes que les sociétés comme Netflix ou Amazon utilisent pour recommander différents films à regarder ou des livres à acheter. Netflix a même lancé le concours du prix Netflix, attribuant 1 million de dollars à l’équipe qui a créé l’algorithme de recommandation le plus précis!

Vous vous demandez peut-être: « Mais comment ces entreprises font-elles cela? » Eh bien, ces entreprises appliqueront KNN à un ensemble de données recueillies sur les films que vous avez regardés ou les livres que vous avez achetés sur leur site Web. Ces entreprises entreront ensuite vos données client disponibles et les compareront à celles d’autres clients qui ont regardé des films similaires. ou acheté des livres similaires. Ce point de données sera ensuite classé comme un certain profil en fonction de leur passé en utilisant KNN. Les films et les livres recommandés dépendront alors de la façon dont l’algorithme classifie ce point de données.

L’image ci-dessus montre comment KNN fonctionne lorsque vous essayez de classer un point de données en fonction d’un ensemble de données donné. Il est comparé à ses points les plus proches et classé en fonction des points auxquels il est le plus proche et le plus similaire. Ici, vous pouvez voir que le point Xj sera classé comme W1 (rouge) ou W3 (vert) en fonction de sa distance par rapport à chaque groupe de points.

Le Ma thematics Derrière KNN

Comme presque tout le reste, KNN fonctionne grâce aux théories mathématiques profondément enracinées qu’il utilise. Lors de la mise en œuvre de KNN, la première étape consiste à transformer les points de données en vecteurs de caractéristiques, ou leur valeur mathématique. L’algorithme fonctionne ensuite en trouvant la distance entre les valeurs mathématiques de ces points. Le moyen le plus courant de trouver cette distance est la distance euclidienne, comme indiqué ci-dessous.

KNN exécute cette formule pour calculer la distance entre chaque point de données et les données de test. Il trouve ensuite la probabilité que ces points soient similaires aux données de test et les classe en fonction des points partageant les probabilités les plus élevées.

Pour visualiser cette formule, cela ressemblerait à ceci:

Conclusion

Vous connaissez maintenant les principes de base de l’un des algorithmes d’apprentissage automatique les plus élémentaires .C’est un excellent point de départ lorsque vous apprenez à créer des modèles basés sur différents ensembles de données. Si vous avez un ensemble de données avec de nombreux points différents et des informations précises, c’est un excellent endroit pour commencer à explorer l’apprentissage automatique avec KNN.

Lorsque vous souhaitez commencer à utiliser cet algorithme, gardez ces trois points à l’esprit:

  • Tout d’abord, trouvez un ensemble de données avec lequel il sera facile de travailler, idéalement un avec beaucoup de points différents et des données étiquetées.
  • Deuxièmement, déterminez quelle langue sera plus facile à utiliser pour résoudre le problème. Je suis plus familier avec l’utilisation de KNN dans R, mais Python est également un langage populaire auprès des professionnels de l’apprentissage automatique.
  • Troisièmement, faites vos recherches. Il est important d’apprendre les bonnes pratiques d’utilisation de cet algorithme afin de trouver les résultats les plus précis de votre ensemble de données.

Plusieurs études ont été menées sur la façon dont cet algorithme peut être amélioré. Ces études visent à faire en sorte que vous puissiez peser les catégories différemment afin de faire une classification plus précise. La pondération de ces catégories varie en fonction de la façon dont la distance est calculée.

En conclusion, il s’agit d’un algorithme d’apprentissage automatique fondamental qui est fiable pour de nombreuses raisons telles que la facilité d’utilisation et le temps de calcul rapide. C’est un bon algorithme à utiliser pour commencer à explorer le monde de l’apprentissage automatique, mais il reste encore à améliorer et à modifier.

Write a Comment

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *