Dans les domaines de l’apprentissage machine et de l’intelligence artificielle, la classification des données est fondamentale. L’objectif est d’attribuer des étiquettes aux points de données en fonction de leurs caractéristiques. Cela implique d’analyser des données connues (données d’entraînement), dans lesquelles chaque exemple est marqué avec une catégorie ou une valeur. Ces étiquettes permettent d’établir des schémas et des relations au sein des données, afin que le modèle fasse des prévisions précises sur les nouveaux points de données inconnus. Malheureusement, travailler avec des données étiquetées comporte un certain nombre de problèmes : les processus manuels impliqués dans l’étiquetage peuvent s’avérer longs et complexes, et l’investissement en ressources peut rendre cette option inenvisageable pour certaines entreprises.
L’algorithme KNN offre une solution simple et efficace à ce problème. Au lieu de nécessiter des calculs complexes en amont, il stocke toutes les données, puis fait des prédictions pour de nouvelles données en fonction de leur similarité avec les données existantes. Cette approche permet d’obtenir des prévisions précises sans réglages approfondis, une approche particulièrement utile lorsque l’on travaille avec des ensembles de données plus petits et une puissance de calcul limitée.
Les vecteurs font partie intégrante de la fonctionnalité de l’algorithme KNN. Un vecteur est une séquence de nombres représentant un point dans un espace multidimensionnel. Les modèles d’apprentissage machine doivent pouvoir transformer des données brutes non structurées en représentations digitales, appelées « plongements ». Ces plongements capturent l’essence sémantique ou structurelle des données d’entrée, les relations entre les plongements étant représentées par leur proximité spatiale (à quelle distance ils se trouvent les un des autres) dans l’espace vectoriel.
L’algorithme KNN utilise cette disposition spatiale en identifiant les « voisins » d’un point de requête, c’est-à-dire les autres plongements positionnés à proximité dans l’espace multidimensionnel. Ces voisins reflètent des points de données avec des caractéristiques partagées ou des fonctions similaires.
Par exemple, deux documents avec des thèmes semblables auront des plongements plus proches les uns des autres, ce qui permettra à l’algorithme KNN de reconnaître les similitudes et les associations afin de classer de nouvelles données ou de prédire les résultats en fonction de ces relations.
L’algorithme KNN utilise des vecteurs pour identifier les « k » (points de données ou voisins les plus proches) d’un nouveau point de données, et fait des prédictions basées sur ces voisins. Par exemple, si l’objectif est de classer ou non des e-mails dans les spams, il examine les « k » e-mails les plus similaires et classe le nouvel e-mail en fonction de la classification majoritaire de ses voisins.
Imaginez une entreprise disposant de données sur différents clients, avec des caractéristiques telles que l’âge, les centres d’intérêt et l’historique des achats. L’algorithme KNN peut regrouper ces clients dans des catégories (par exemple, acheteurs fréquents, acheteurs occasionnels ou simples curieux), en comparant leurs caractéristiques. Si un nouveau client consulte le site web, l’algorithme KNN peut prédire son comportement d’achat en évaluant quel groupe lui ressemble le plus.
L’adaptabilité de l’algorithme est encore plus grande lorsqu’il est utilisé avec des ensembles de données multimodales. Ici, les informations sont combinées à partir de plusieurs sources à la fois, telles que du texte, des images ou du son. L’algorithme KNN peut analyser ces plongements dans un espace vectoriel partagé, en identifiant les similitudes entre différentes modalités. Son application aux données multimodales permet de trouver le voisin le plus similaire, quels que soient les types de données. Cela en fait donc un algorithme polyvalent qui permet de gérer des scénarios de données de plus en plus complexes et variés.
- Reconnaissance de schémas
L’algorithme KNN est largement utilisé dans les tâches de reconnaissance de schémas, telles que la reconnaissance d’image et d’écriture manuscrite. En comparant de nouvelles images ou de nouveaux échantillons à un ensemble de données étiquetées, il peut classer avec précision des objets, des caractères ou des visages en fonction de leurs similitudes avec des schémas connus.
- Traitement de données
L’algorithme KNN est efficace pour le prétraitement des données, comme l’entrée des valeurs manquantes ou la détection des valeurs aberrantes. En analysant les voisins les plus proches, il peut estimer quelles sont les valeurs manquantes en fonction des points de données les plus similaires, améliorant ainsi la qualité et la cohérence des données.
- Moteurs de recommandations
L’algorithme KNN aide à créer des systèmes de recommandations en analysant le comportement et les préférences des utilisateurs. En trouvant des personnes ayant des intérêts similaires, il peut suggérer des produits, des films ou du contenu que d’autres utilisateurs au profil semblable ont appréciés, améliorant ainsi l’expérience et l’engagement des clients.
- Transformation d’image en texte
L’algorithme KNN est de plus en plus utilisé dans les tâches de transformation d’image en texte au sein des systèmes multimodaux. En comparant les plongements d’images à ceux des descriptions textuelles, il permet aux systèmes d’IA d’effectuer des tâches complexes telles que le sous-titrage automatisé, où les correspondances les plus proches fournissent un texte adapté au contexte pour une image donnée.
Dans chaque approche répertoriée ci-dessus, la précision des prédictions de l’algorithme KNN repose fortement sur les mesures de distance utilisées pour évaluer la similitude entre les points des données. C’est essentiel pour effectuer des prévisions précises. Ces mesures déterminent la façon dont l’algorithme calcule la « proximité » des points de données pour classer ou prévoir efficacement les nouveaux points de données.
La distance euclidienne est la mesure la plus courante utilisée dans l’algorithme KNN. Elle calcule la distance en ligne droite entre deux points dans l’espace euclidien. Imaginez une carte et une règle pour mesurer le chemin le plus court entre deux emplacements. Plus la distance est courte, plus les points sont considérés comme similaires. Par exemple, lors de la comparaison de la taille et du poids de différents individus, la distance euclidienne permet de savoir quelles personnes sont les plus similaires en déterminant les deux caractéristiques séparées par la distance euclidienne la plus courte.
La distance de Manhattan mesure les différences absolues entre les points le long de chaque dimension, un peu comme lorsqu’on navigue dans une grille des rues de la ville. Imaginez une grille urbaine où vous ne pouvez vous déplacer que le long des rues (et non en diagonale à travers les bâtiments). Cette mesure est utile lorsque les points de données sont structurés sous forme de grille, par exemple pour des itinéraires de livraison ou des scénarios d’aménagement urbain.
La distance de Minkowski est une généralisation des distances euclidienne et Manhattan. En ajustant un paramètre « p », elle peut se comporter comme ces deux mesures. Considérez la distance de Minkowski comme un outil flexible, capable de s’adapter à différents scénarios en fonction des besoins spécifiques de l’analyse des données. Par exemple, si on devait comparer des propriétés avec des dimensions différentes (comme le prix, la surface et le nombre de chambres), ajuster la valeur « p » permettrait de mettre l’accent sur certaines dimensions par rapport à d’autres, ce qui en ferait une mesure polyvalente pour différents types de comparaisons de données.
Si l’on ne définit pas la bonne valeur pour « k », l’algorithme KNN ne fonctionnera pas comme prévu. Choisir une valeur trop petite pour « k » peut rendre les prédictions trop sensibles au bruit dans les données, ce qui entraîne une forte variance et des prévisions moins stables. D’un autre côté, une valeur trop élevée peut lisser les prévisions, mais rendre le modèle trop général, si bien qu’il risque de passer à côté de schémas spécifiques.
Pour trouver la valeur optimale pour « k », les professionnels utilisent généralement la validation croisée (technique dans laquelle l’ensemble de données est divisé en ensembles d’entraînement et de validation plusieurs fois, pour tester différentes valeurs « k »). Cela permet d’identifier un « k » qui réduit les erreurs de prédiction tout en maintenant la capacité de généralisation de l’algorithme.
Ce processus est fait d’essais et d’erreurs. Trouver le bon « k » implique de tester différentes valeurs pour s’assurer que le modèle fonctionne bien sur des données connues et inconnues, afin d’obtenir l’équilibre optimal entre stabilité et spécificité.
L’établissement de connexions, de similitudes et de relations entre les points de données est l’objectif global de l’algorithme KNN. Ce qui fait de ce modèle un choix si populaire auprès des entreprises, ce sont les avantages qu’il apporte, à savoir :
L’algorithme KNN est facile à mettre en œuvre et à comprendre, même pour les débutants en apprentissage machine. Il ne nécessite pas de phase d’entraînement complexe. Il mémorise l’ensemble de données d’entraînement et l’utilise directement pour faire des prédictions.
Qu’il soit utilisé pour les tâches de classification ou de régression, l’algorithme KNN peut gérer les différentes structures de données et relations nécessaires pour regrouper les points de données. Cette flexibilité permet de l’appliquer à plusieurs domaines : finance, santé, e-commerce, etc.
L’algorithme KNN ne nécessite que quelques hyperparamètres, principalement la valeur « k » et la mesure de distance. Cela réduit la complexité liée au réglage du modèle par rapport à d’autres algorithmes qui requièrent parfois une optimisation approfondie des paramètres. Par conséquent, il simplifie le processus global de développement de modèle et offre plus facilement des performances supérieures avec un minimum de réglages.
Bien que l’algorithme KNN offre plusieurs avantages, il présente également certains points faibles notables, à savoir :
La haute dimensionnalité fait référence à l’augmentation exponentielle des données requises pour maintenir le même niveau de performances à mesure que les caractéristiques (ou dimensions) s’accroissent. Dans les espaces à haute dimensionnalité, la distance entre les points de données est moins significative. L’algorithme KNN a alors des difficultés à identifier les voisins vraiment « plus proches ». Ce problème peut réduire considérablement sa précision et son efficacité dans les ensembles de données comportant de nombreuses caractéristiques.
L’algorithme KNN peut être influencé par le bruit et les valeurs aberrantes dans l’ensemble de données, en particulier lorsque la valeur de « k » est faible. Cette sensibilité peut entraîner un ajustement excessif, où l’algorithme capture le bruit et les anomalies comme s’il s’agissait de véritables schémas. Cela entraîne une mauvaise généralisation des nouvelles données invisibles, ce qui réduit les performances prédictives du modèle.
La complexité du calcul augmente avec la taille de l’ensemble de données. L’algorithme KNN est donc inefficace pour les ensembles trop volumineux. Chaque prédiction nécessite de calculer la distance entre le nouveau point de données et tous les points existants de l’ensemble d’entraînement, ce qui cause une utilisation élevée de la mémoire et des temps de calcul longs. Cette limite entrave l’application de l’algorithme KNN à des scénarios impliquant de grands volumes de données.
Comme indiqué précédemment, l’algorithme KNN classe les points de données en fonction de leur proximité avec d’autres points de l’ensemble de données. Pour ce faire, l’algorithme doit suivre des étapes spécifiques :
1. Choisir le nombre de voisins (k)
Définissez la valeur de « k » à prendre en compte lors de la classification ou de la régression. Cette valeur influence la manière dont l’algorithme évalue la similitude entre les points de données.
2. Calculer la distance
Pour chaque point de données de l’ensemble d’entraînement, calculez la distance entre celui-ci et le nouveau point de données à l’aide d’une des mesures de distance standard (distance euclidienne, de Manhattan ou de Minkowski). Cette mesure de distance permet d’identifier ce qui doit être considéré comme les voisins les plus proches du nouveau point de données.
3. Identifier les voisins les plus proches
Triez les distances calculées à l’étape 2 et déterminez les « k » voisins les plus proches. Il s’agit des points de données les plus proches du nouveau point de données en fonction de la mesure de distance choisie.
4. Faire une prédiction
Pour les tâches de classification, attribuez le nouveau point de données à la classe la plus commune parmi ses « k » voisins les plus proches. Pour les tâches de régression, calculez la valeur moyenne ou médiane des « k » voisins les plus proches et utilisez cette valeur comme prédiction pour le nouveau point de données.
5. Évaluer le modèle
Évaluez l’exactitude et les performances du modèle KNN à l’aide de techniques de validation croisée. Ajustez la valeur de « k » et la mesure de distance selon les besoins, pour optimiser les prévisions du modèle.
Il existe plusieurs méthodes pour exécuter l’algorithme KNN, chacune ayant ses avantages et ses applications adaptées. Les méthodes suivantes permettent d’optimiser le processus de recherche des voisins les plus proches, ce qui fait de l’algorithme KNN une option efficace pour différents types d’ensembles de données.
- Force brute
La méthode de force brute calcule la distance entre le point de requête et tous les autres points de l’ensemble de données. Elle est simple, mais coûteuse en termes de calcul, et convient donc mieux aux petits ensembles de données.
- Arbre k-dimensionnel (arbre k-d)
L’arbre k-dimensionnel organise les points dans un espace k-d en divisant celui-ci en hyperrectangles de manière récursive. Il réduit les calculs de distance et accélère les recherches de l’algorithme KNN pour les données à dimensionnalité modérément forte.
- Arbre à billes
Un arbre à billes partitionne l’espace en hypersphères imbriquées, ce qui permet de rechercher efficacement les voisins les plus proches en éliminant les parties non pertinentes de l’ensemble de données. Il est particulièrement performant pour les données à forte dimensionnalité et obtient souvent de meilleurs résultats que les arbres k-d dans ces scénarios.
L’algorithme KNN est précieux pour sa capacité à classer les points de données et à quantifier les relations pour les systèmes d’IA. ServiceNow, leader dans le domaine des solutions IT d’entreprise, intègre l’IA avancée et l’algorithme KNN, fournissant ainsi des outils puissants pour la transformation digitale. La Now Platform® primée de ServiceNow exploite l’IA et l’apprentissage machine pour automatiser, optimiser et moderniser les workflows sur toutes les fonctions métiers, offrant ainsi une optimisation intelligente et globale.
En intégrant l’algorithme KNN et d’autres algorithmes avancés, ServiceNow permet aux entreprises de tirer parti de l’IA pour améliorer la prise de décision, réduire les délais d’exécution et adopter une approche plus efficace des activités. Découvrez la puissance de transformation de l’IA et de la Now Platform. Essayez ServiceNow dès aujourd’hui !