Méthode des k plus proches voisins Christelle Scharff IFI 2004
Généralités Apprendre par analogie Classifier ou estimer Recherchant d’un ou des cas similaires déjà résolus Classifier ou estimer “Dis moi qui sont tes amis, et je te dirais qui tu es” Pas de construction de modèle C'est l'échantillon d'apprentissage, associé à une fonction de distance et d'une fonction de choix de la classe en fonction des classes des voisins les plus proches, qui constitue le modèle
Algorithme Paramètre : le nombre k de voisins Donnée : un échantillon de m exemples et leurs classes La classe d’un exemple X est c(X) Entrée : un enregistrement Y 1. Déterminer les k plus proches exemples de Y en calculant les distances 2. Combiner les classes de ces k exemples en une classe c Sortie : la classe de Y est c(Y)=c
Exemple: Client loyal ou non K = 3
Distance entre 2 exemples
Distance Le choix de la distance est primordial au bon fonctionnement de la méthode Les distances les plus simples permettent d'obtenir des résultats satisfaisants (lorsque c'est possible) Propriétés de la distance: d(A,A)=0 d(A,B)= d(B,A) d(A,B)£ d(A,C) + d(B,C)
Distance entre numériques d(x,y) = |x-y| ou d(x,y) = |x-y|/dmax, où dmax est la distance maximale entre deux numériques du domaine considéré
Distance entre nominaux Données binaires : 0 ou 1. On choisit d(0,0)=d(1,1)=0 et d(0,1)=d(1,0)=1. Données énumératives : la distance vaut 0 si les valeurs sont égales et 1 sinon. Données énumératives ordonnées : elles peuvent être considérées comme des valeurs énumératives mais on peut également définir une distance utilisant la relation d'ordre. Exemple: Si un champ prend les valeurs A, B, C, D et E, on peut définir la distance en considérant 5 points de l'intervalle [0,1] avec une distance de 0,2 entre deux points successifs, on a alors d(A,B)=0,2 ; d(A,C)=0,4 ; ... ; d(E,E)=0,2.
Distance Euclidienne entre 2 exemples Soit X = (x1,..., xn) et Y = (y1,..., yn) deux exemples, la distance euclidienne entre X et Y est:
Autres distances Sommation: Distance euclidienne ponderée:
Pourquoi pondérer les attributs? Certains attributs peuvent dominer le calcul de la distance Exemple:
Choix de la classe
Choix de la classe Choix de la classe majoritaire Choix de la classe majoritaire pondérée Chaque classe d'un des k voisins sélectionnés est pondéré Soit V le voisin considéré. Le poids de c(V) est inversement proportionnel à la distance entre l'enregistrement Y à classer et V Calculs d’erreur
Exemple (1)
Exemple (2) K = 3
Mise en oeuvre de la méthode Choisir les attributs pertinents pour la tâche de classification considérée et les données Choix de la distance par champ et du mode de combinaison des distances en fonction du type des champs et des connaissances préalables du problème Choix du nombre k de voisins déterminé par utilisation d'un ensemble test ou par validation croisée Une heuristique fréquemment utilisée est de prendre k égal au nombre d'attributs plus 1
Discussion Interprétations: La classe attribuée à un exemple peut être expliquée en exhibant les plus proches voisins qui ont amené à ce choix La méthode peut s'appliquer dès qu'il est possible de définir une distance sur les champs La méthode permet de traiter des problèmes avec un grand nombre d'attributs. Mais, plus le nombre d'attributs est important, plus le nombre d'exemples doit être grand.
Discussion Tous les calculs doivent être effectués lors de la classification (pas de construction de modèle) Le modèle est l'échantillon Espace mémoire important nécessaire pour stocker les données, et méthodes d'accès rapides nécessaires pour accélérer les calculs Les performances de la méthode dépendent du choix de la distance, du nombre de voisins et du mode de combinaison des réponses des voisins. En règle générale, les distances simples fonctionnent bien.
Références Cours de modélisation et de fouilles de données de Prof. Ravi Mantena, New York University.