Vous êtes sur la page 1sur 13

16/03/2019

K-Nearest Neighbor(KNN)
Classification

Férihane Kboubi
Ferihane.kboubi@fsegt.utm.tn
Machine Learning - 1MISIE – FSEGT - UTM
2018-2019

Introduction
• K Nearest Neighbor (KNN) est un algorithme d’apprentissage
automatique très simple, facile à comprendre et polyvalent.

• Utilisé dans diverses applications telles que la finance, la santé, les


sciences politiques, la reconnaissance d’images et la reconnaissance
vidéo.

• Utilisé pour les problèmes de classification et de régression.

• Basé sur la similarité des caractéristiques.

Ferihane Kboubi - Machine Learning -


2
1MISIE - FSEGT - 2019

1
16/03/2019

K-Nearest Neighbor Algorithm


How does the KNN algorithm work?
Eager Vs Lazy learners
How do you decide the number of neighbors in KNN?
Curse of Dimensionality
Pros and Cons
How to improve KNN performance?
Classifier Building in Scikit-learn
PLAN

Ferihane Kboubi - Machine Learning -


3
1MISIE - FSEGT - 2019

K-Nearest Neighbors
• KNN est un algorithme d’apprentissage non-paramétrique et paresseux.
• Non paramétrique
– il n’y a pas d’hypothèse pour la distribution sous-jacente des données.
– La structure du modèle est déterminée à partir de l’ensemble de données.
– Cela sera très utile dans la pratique où la plupart des ensembles de données
du monde réel ne suivent pas les hypothèses théoriques mathématiques.
• Paresseux
– il n’a pas besoin d’entrainement pour la génération de modèle.
– Toutes les données d’apprentissage sont utilisées dans la phase de test.
– Cela rend l’apprentissage plus rapide et la phase de test plus lente et plus
coûteuse en temps et en mémoire.

Ferihane Kboubi - Machine Learning -


4
1MISIE - FSEGT - 2019

2
16/03/2019

How does the KNN algorithm work?


• Dans KNN, K est le nombre de voisins les plus proches.
• Le nombre de voisins est le facteur déterminant de base.
• K est généralement un nombre impair si le nombre de classes est 2.
• Lorsque K=1, on parle de l’algorithme du voisin le plus proche.
• C’est le cas le plus simple.

• Supposons que P1 soit le point pour


lequel l’étiquette doit être prévu.
• D’abord, vous trouvez le point le plus
proche de P1, puis l’étiquette du point le
plus proche sera attribuée à P1.

Ferihane Kboubi - Machine Learning -


5
1MISIE - FSEGT - 2019

How does the KNN algorithm work?


• Lorsque K>1
• Tout d’abord, il faut trouver les k points les plus proches de P1 et ensuite classer
P1 par vote majoritaire de ses k voisins.
• Chaque voisin vote pour sa classe et la classe avec le plus de votes est prise
comme prédiction.
• Pour trouver les points similaires les plus proches, il faut calculer la distance
entre les observations en utilisant des mesures de distance telles que: la
distance euclidienne, Hamming distance, Manhattan distance et Minkowski.
• Principe de KNN :
1. Calculer la distance
2. Trouver les voisins les plus proches
3. Voter pour les étiquettes

Ferihane Kboubi - Machine Learning -


6
1MISIE - FSEGT - 2019

3
16/03/2019

How does the KNN algorithm work?

Ferihane Kboubi - Machine Learning -


7
1MISIE - FSEGT - 2019

Eager Vs. Lazy Learners


• L’apprentissage enthousiaste« Eager » :
– Construit un modèle généralisé à partir des données d’apprentissage avant
d’effectuer des prévisions sur de nouveaux points à classer.
• L’apprentissage paresseux «par l’exemple », « Lazy » :
– Stocke les données d’apprentissage, et tout le processus est fondé sur des exemples.
– il n’est pas nécessaire d’apprendre ou d’entrainer le modèle
– toutes les données d’apprentissage sont utilisées au moment de la prévision.
– Ne stocke que l’ensemble de données d’apprentissage et attend jusqu’à ce que la
classification doit être effectuée.
– Effectue une généralisation que lors de la réception des données de test pour
classer le tuple en fonction de sa similitude avec les tuples d’entraînement stockés.
– Contrairement aux méthodes d’apprentissage enthousiastes, travaille moins dans la
phase d’apprentissage et plus dans la phase de test pour faire une classification.

Ferihane Kboubi - Machine Learning -


8
1MISIE - FSEGT - 2019

4
16/03/2019

Techniques inductives et transductives

Ferihane Kboubi - Machine Learning -


9
1MISIE - FSEGT - 2019

Malédiction de la dimensionnalité
• KNN réussit mieux avec un petit nombre de caractéristiques qu’un grand nombre.
• Lorsque le nombre de caractéristiques augmente ceci nécessite plus de données.
• L’augmentation des dimensions conduit au problème du sur-apprentissage (overfitting)
• Pour éviter l’overfitting, les données devront croître de façon exponentielle à mesure
que vous augmentez le nombre de dimensions.
• Ce problème est connu comme la malédiction de la dimensionnalité.
• Pour traiter le problème de la malédiction de la dimensionnalité
– Utiliser l’analyse en composantes principales
– Utiliser une approche de feature selection.
• Des recherches ont montré que avec de grandes dimensions la distance euclidienne n’est
plus utile.
• D’autres mesures telles que le cosinus sont moins touchés par ce problème.

Ferihane Kboubi - Machine Learning -


10
1MISIE - FSEGT - 2019

5
16/03/2019

How do you decide the number of


neighbors in KNN?
• Comment choisir le nombre optimal de voisins?
• Et quels sont ses effets sur le classificateur ?
• K est un hyperparamètre choisit au moment de la construction du modèle.
– K est une variable de contrôle pour le modèle de prédiction.
• Aucun nombre optimal de voisins ne convient à toutes sortes d’ensembles de
données.
– Chaque ensemble de données a ses propres exigences.
• Dans le cas d’un petit nombre de voisins, le bruit aura une plus grande
influence sur le résultat
• Dans le cas d’un grand nombre de voisins le problème devient
computationnellement couteux.

Ferihane Kboubi - Machine Learning -


11
1MISIE - FSEGT - 2019

How do you decide the number of


neighbors in KNN?
• Généralement, les Data scientists
choisissent k comme un nombre
impair si le nombre de classes est
paire.
• On peut également vérifier en
générant le modèle sur différentes
valeurs de k et vérifier leurs
performances (gridsearch)
• Vous pouvez également essayer la
méthode Elbow ici.

Ferihane Kboubi - Machine Learning -


12
1MISIE - FSEGT - 2019

6
16/03/2019

Elbow method

Ferihane Kboubi - Machine Learning -


13
1MISIE - FSEGT - 2019

Avantages
• La phase d’entrainement de KNN est beaucoup plus rapide
que d’autres algorithmes de classification.
• Il n’est pas nécessaire de former un modèle de
généralisation, c’est pourquoi KNN est connu comme
l’algorithme d’apprentissage simple et basé sur l’exemple.
• KNN peut être utile en cas de données non linéaires.
• Il peut être utilisé avec le problème de régression.
• La valeur de sortie de l’objet est calculée par la valeur
moyenne des k voisins les plus proches.

Ferihane Kboubi - Machine Learning -


14
1MISIE - FSEGT - 2019

7
16/03/2019

Inconvénients
• La phase de test de KNN est plus lente et plus coûteuse en termes de
temps et de mémoire.
• Il nécessite une grande mémoire pour stocker l’ensemble entier de
données d’entraînement pour la prédiction.
• KNN nécessite une normalisation des données parce qu’il utilise la
distance euclidienne entre deux points de données pour trouver les
voisins les plus proches.
– La distance euclidienne est sensible aux grandeurs. Les caractéristiques avec
des grandeurs élevées pèseront plus que des caractéristiques avec de faibles
grandeurs.
• KNN ne convient pas non plus pour les grandes données dimensionnelles

Ferihane Kboubi - Machine Learning -


15
1MISIE - FSEGT - 2019

Comment améliorer le résultat de KNN?


• Il est fortement recommandé de normaliser les données à la même
échelle. Généralement, entre 0 et 1.

• En cas de données de grandes dimensions appliquer un mécanisme de


réduction de la dimensionnalité pour améliorer les performances.

• Le traitement des valeurs manquantes nous aidera à améliorer les


résultats.

Ferihane Kboubi - Machine Learning -


16
1MISIE - FSEGT - 2019

8
16/03/2019

DISTANCE ET SIMILARITÉ

Ferihane Kboubi - Machine Learning -


17
1MISIE - FSEGT - 2019

Dissimilarité : distance
• Une mesure de distance est une mesure de dissimilarité, mais l’inverse n’est pas
nécessairement vrai.

• Propriété d’une distance :

– d(x,y) ≥ 0

– d(x,y) = 0 ssi x=y

– d(x,y) = d(y,x)

– d(x,z) ≤ d(x,y) + d(y,z)

• Définir une distance sur chacun des champs (numériques, binaires, nominals)

– ex (numérique, e.g., âge, poids, taille, etc.):

d(x,y) =|x-y| ;

d(x,y) = |x-y|/dmax (dist. normalisée)


Ferihane Kboubi - Machine Learning -
18
1MISIE - FSEGT - 2019

9
16/03/2019

Mesures de distance
• Soit i et j deux objets p-dimentionnels définis par p attributs quantitatifs comme suit:
– i = (xi1, xi2, …, xip) et j = (xj1, xj2, …, xjp)

• la distance de Minkowski :

– où q un entier positif
• Si q = 1, d est la distance de Manhattan

• Si q = 2, d est la distance Euclidienne :

Ferihane Kboubi - Machine Learning -


19
1MISIE - FSEGT - 2019

Standardiser les données


 Standardiser les données
 Calculer l’écart absolu moyen:

 Où

 Calculer la mesure standardisée (z-score)

Ferihane Kboubi - Machine Learning -


20
1MISIE - FSEGT - 2019

10
16/03/2019

Exemple: standardisation

M Age = 60 S Age = 5

M Salaire = 11074 S Salaire = 37

Ferihane Kboubi - Machine Learning -


21
1MISIE - FSEGT - 2019

Exemple: distance de Manhattan


d(p1,p2)=120
d(p1,p3)=132
Conclusion:
p1 ressemble plus à p2 qu’à p3!!! 

d(p1,p2)=6,7
d(p1,p3)=5,29

Conclusion:
p1 ressemble plus à p3 qu’à p2 !!! 
Ferihane Kboubi - Machine Learning -
22
1MISIE - FSEGT - 2019

11
16/03/2019

Variables binaires
 Une table de contingence pour les données binaires
 Soit deux objets i et j à n attributs binaires et k un entier 1≤k≤n

Objet j
a = nb attributs où xik = xjk = 1

b = nb attributs où xik = 1 et xjk=0

Objet i c = nb attributs où xik = 0 et xjk=1

d = nb attributs où xik = xjk = 0

 Exemple
 i=(1,1,0,1,0) et j=(1,0,0,0,1)

 a=1, b=2, c=1, d=1

Ferihane Kboubi - Machine Learning -


23
1MISIE - FSEGT - 2019

Variables binaires
Mesures de distances
 Coefficient d’appariement (matching) simple

 Exemple
 i=(1,1,0,1,0) et j=(1,0,0,0,1)
 d(i, j)=3/5

 Coefficient de Jaccard

 d(oi, oj)=3/4

Ferihane Kboubi - Machine Learning -


24
1MISIE - FSEGT - 2019

12
16/03/2019

Variables Nominales
 Une généralisation des variables binaires, ex: rouge, vert et bleu
 Méthode 1: Matching simple
 m: # d’appariements, p: # total de variables

 Méthode 2: utiliser un grand nombre de variables binaires


 Créer une variable binaire pour chaque modalité
 (ex: variable rouge qui prend les valeurs vrai ou faux)

Ferihane Kboubi - Machine Learning -


25
1MISIE - FSEGT - 2019

13

Vous aimerez peut-être aussi