Introduction à l'algorithme KNN

K L'algorithme de Nearest Neighbour, connu sous le nom de KNN, est l'algorithme de base pour l'apprentissage automatique. Comprendre cet algorithme est un très bon endroit pour commencer à apprendre le machine learning, car la logique derrière cet algorithme est incorporée dans de nombreux autres modèles de machine learning. L'algorithme de K Nearest Neighbour fait partie de la partie classification de l'apprentissage supervisé.

Qu'est-ce que l'apprentissage supervisé?

L'algorithme d'apprentissage supervisé est une sorte d'algorithme dans lequel il s'appuie sur une entrée étiquetée pour apprendre et prédit en fonction de la fonction lorsque des données non étiquetées sont fournies. Comme nous avons compris ce qu'est l'apprentissage supervisé, voyons ce qu'est la classification, l'algorithme de classification donne une valeur discrète en sortie, pas des valeurs continues.

Comment fonctionne l'algorithme KNN?

K Nearest Neighbors est un algorithme de base qui stocke toutes les informations disponibles et prédit la classification des données non étiquetées sur la base d'une mesure de similarité. En géométrie linéaire lorsque deux paramètres sont tracés sur le système cartésien 2D, nous identifions la mesure de similitude en calculant la distance entre les points. La même chose s'applique ici, l'algorithme KNN fonctionne sur l'hypothèse que des choses similaires existent à proximité, simplement nous pouvons mettre dans les mêmes choses rester proches les uns des autres.

Exemple: Si nous avons un ensemble de données lorsque le tracé ressemble à ceci, pour classer ces points de données, l'algorithme K Nearest Neighbors identifiera d'abord la distance entre les points et verra s'ils sont similaires ou non.

En géométrie selon Euclidienne, la fonction de distance peut être calculée par l'équation suivante,

Si K = 1, alors le cas est simplement attribué à une classe de son plus proche voisin (nous utilisons «1» dans presque toutes les situations en mathématiques, nous pouvons modifier la valeur de K tout en entraînant les modèles dans l'apprentissage automatique et nous allons discuter plus en détail dans l'article) X et Y sont les valeurs sur les axes de coordonnées.

Si nous le remarquons ici, toutes les mesures de distance que nous obtenons seront des variables continues, mais nous avons besoin de valeurs discrètes lors de la classification, nous devons donc utiliser la distance de hamming pour y parvenir.

Cette équation nous apporte également la standardisation des valeurs numériques entre 0 et 1 lorsqu'il y a un mélange de valeurs numériques et catégorielles dans l'ensemble de données.

X Oui Distance
Avec le cancer Avec le cancer X = Y → D = 0
Sans cancer Sans cancer X! = Y → D = 1

De cette façon, l'algorithme fonctionne et maintenant, plongeons dans la façon de choisir la valeur de K dans KNN.

Choisir la valeur K dans l'algorithme KNN

Avant de voir quels sont les facteurs à considérer lors du choix de la valeur K, nous devons comprendre comment la valeur de K influence l'algorithme.

Ce sont les tracés du même ensemble de données avec des valeurs K variables, la valeur K est 1 pour le tracé dans le coin supérieur gauche et la plus élevée pour le tracé dans le coin inférieur droit. Si nous examinons attentivement, nous pouvons comprendre que la frontière de l'algorithme de classification devient lisse lorsque la valeur de K augmente. Autrement dit, la valeur de K est directement proportionnelle à la régularité de la frontière. Donc, à partir de cela, nous pouvons comprendre que si la valeur K est définie sur 1, le modèle d'apprentissage surajustera les données et si la valeur K est définie sur un grand nombre, il sous-adaptera les données. Pour choisir une valeur optimale de K, nous devons vérifier l'erreur de validation avec plusieurs valeurs K et en choisir une avec l'erreur minimale.

Étapes pour implémenter l'algorithme KNN en Python

Jusqu'à présent, nous avons appris la partie théorique de l'algorithme de K Nearest Neighbour. Voyons maintenant pratiquement en apprenant à implémenter en python.

Étape 1: importation de bibliothèques

Ci-dessous, nous verrons Importer les bibliothèques dont nous avons besoin pour exécuter KNN.

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

Étape 2: importation d'un ensemble de données

Ici, nous verrons le jeu de données importé.

file = "/path/to/the/dataset"
#Push dataset into Pandas dataframe
dataset = pd.read_csv(file)

Étape 3: fractionner l'ensemble de données

La prochaine étape consiste à diviser notre ensemble de données en test et en fractionnement de train.

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30)

Remarque: L'ensemble de données que j'utilise pour démontrer a été prétraité avec la définition des valeurs X et Y. Si cela n'est pas fait en premier, cela doit être fait, car pendant que le modèle de classification se forme, nous devons transmettre des données étiquetées pour calculer les distances.

Étape 4: modèle de formation

Maintenant, dans cette étape, nous allons voir une formation modèle.

from sklearn.neighbors import KNeighborsClassifier
classifier = KNeighborsClassifier(n_neighbors=3)
classifier.fit(X_train, y_train)

Remarque: Ici, nous utilisons le classificateur K voisins importé de la bibliothèque du module sklearn.neighbours.

Étape 5: Exécution des prévisions

Exécution de prévisions sur les données de fractionnement de test.

y_pred = classifier.predict(X_test)

Étape 6: Vérifier la validation

L'étape suivante consiste à évaluer l'algorithme et à vérifier l'erreur de validation, à réexécuter avec une valeur K différente et à considérer la valeur k où nous obtenons l'erreur de validation minimale. C'est ainsi que nous pouvons pratiquement implémenter le classifieur K Nearest Neighbors, il existe plusieurs façons de mettre en œuvre cet algorithme, c'est juste l'une d'entre elles et dans cet article, j'ai décrit très brièvement les étapes car notre programme principal est de comprendre comment l'algorithme fonctionne.

Conclusion

Comme indiqué précédemment, l'algorithme K Nearest Neighbors est l'un des algorithmes les plus simples et les plus faciles à utiliser pour la classification. D'après son fonctionnement, il relève également de l'algorithme d'apprentissage paresseux. Généralement, la valeur K que tout le monde passe lors de la formation du modèle est un nombre impair, mais ce n'est pas une contrainte. Cependant, il y a aussi peu d'inconvénients lors de l'utilisation de KNN.

  • Cela ne va pas bien avec les données catégorielles, car nous ne pouvons pas trouver la distance entre deux caractéristiques catégorielles.
  • Cela ne fonctionne pas non plus correctement avec des données dimensionnelles élevées, car il sera difficile pour l'algorithme de calculer la distance dans chaque dimension.

Si nous voyons actuellement que la plupart des cas d'utilisation du Machine Learning sont entourés par l'algorithme de classification au niveau de base, c'est ainsi que KNN joue un rôle majeur dans le monde du Machine Learning.

Articles recommandés

Ceci est un guide de l'algorithme KNN. Nous discutons ici de l'introduction et du fonctionnement de l'algorithme K Nearest Neighbors avec des étapes pour implémenter l'algorithme kNN en python. Vous pouvez également consulter les articles suivants pour en savoir plus-

  1. Comment fonctionne l'algorithme SVM?
  2. Algorithme MD5 (avantages et inconvénients)
  3. K- signifie algorithme de clustering
  4. Types d'apprentissage par renforcement
  5. Guide complet de l'algorithme C ++

Catégorie: