Méthode des KNN

publicité
Méthode des KNN
(k nearest neighbours, ou k plus proches voisins)
Nicolas Turenne
[email protected]
INRA
2006
●
●
Faire une classification sans faire d'hypothèse sur la
fonction y=f(x1,x2,...,xp) qui relie la variable dépendante
y aux variables indépendantes x1,x2,...,xp
Méthode
de
classification
non-paramétrique
puisqu'aucune estimation de paramètres n'est nécessaire
comme pour la régression linéaire.
●
●
●
●
On dispose de données d'apprentissage (training data) pour
lesquelles chaque observation dispose d'une classe y. Si le
problème est à 2 classes, y est binaire.
L'idée de l'algorithme des knn est pour une nouvelle
observation (u1, u2,..., up) de prédire les k observations lui étant
les plus similaires dans les données d'apprentissage.
...et utiliser ces observations pour classer l'observation dans
une classe v
.
Si on connaissait la fonction f, on aurait juste qu'à calculer
v = f u 1 , u 2 , ... , u p 
En pratique on peut identifier les observations des données
d'apprentissage, collecter les valeurs y associées à ces
observations (et procéder à une sorte d'interpolation)
●
●
Quand on parle de voisin cela implique la notion de distance
ou de dissimilarité.
La distance la plus populaire est la distance euclidienne :
D  x 1 , ... , x p  ,u 1 , ... , u p =   x 1−u 1 2  x 2−u 2 2 ... x p −u p 2
Le cas le plus simple est k=1 (cas 1-NN) .
On cherche l'observation la plus proche et on fixe
●
●
v = y
On peut montrer que si on disposait d'un très gros volume de
données d'apprentissage, et en utilisant une règle de
classification arbitrairement sophistiquée, on ne diminuerait
l'erreur de mauvaise classification que d'un facteur 2 par
rapport à une méthode 1-NN.
●
L'extension de 1-NN à k-NN se fait comme suit :
(1) Trouver les k plus proches observations
(2) Utiliser une règle de décision à la majorité pour classer une
nouvelle observation
●
●
●
L'avantage est que de grandes valeurs de k produisent un lissage qui
réduit le risque de surapprentissage du au bruit dans les données
d'apprentissage.
Typiquement les valeurs de k sont choisies dans des échelles de
quelques unités à quelques dizaines plutôt que quelques milliers.
Si on choisit k = n (nombre d'observations dans l'ensemble
d'apprentissage) la classe retenue sera celle qui a la majorité dans les
données d'apprentissage, indépendamment de l'observation inconnue
(u1, u2,..., up)
●
L'extension de 1-NN à k-NN se fait comme suit :
(1) Trouver les k plus proches observations
(2) Utiliser une règle de décision à la majorité pour classer une
nouvelle observation
●
●
●
L'avantage est que de grandes valeurs de k produisent un lissage qui
réduit le risque de surapprentissage du au bruit dans les données
d'apprentissage.
Typiquement les valeurs de k sont choisies dans des échelles de
quelques unités à quelques dizaines plutôt que quelques milliers.
Si on choisit k = n (nombre d'observations dans l'ensemble
d'apprentissage) la classe retenue sera celle qui a la majorité dans les
données d'apprentissage, indépendamment de l'observation inconnue
(u1, u2,..., up)
Exemple: Un fabricant de moisseuneuse aimerait trouver une façon de classifier les familles dans une
ville en celles qui sont capables d'acquérir une moisseuneuse et celles qui ne sont pas capables d'en
acheter une. Un échantillon pilote de 12 propriétaires et 12 non-propriétaires dans la ville est choisi.
●
●
●
Comment choisir k ?
Tout d'abord partitionner l'échantillon en ensemble d'apprentissage et
ensemble de validation. On choisit aléatoirement 18 cas pour
constituer l'ensemble d'apprentissage. Les cas 6, 7, 12, 14, 19, 20
serviront à la validation. Dans un jeu de données plus réalistes on
disposerait de plus d'information.
Si nous choisissons k=1 on classifiera d'une manière sujète aux
caractéristiques locales de nos variables. Si nous choisissons k=18 on
prédira juste la classe la plus fréquente dans les données. La
prédiction est stable mais ne tient pas compte des informations des
variables indépendantes.
Distribution des données en fonction de 2 attributs :
surface à cultiver (lot size) et niveau de revenu (income)
Calcul de l'erreur de classification en fonction de k.
L'erreur est stable entre k=1 et k=10 ensuite elle baisse entre k=11
et k=13 et ensuite elle remonte.
On choisira très probablement k=13
Ce choix fait un compromis entre la variabilité associée à une faible
valeur de k contre un « oversmoothing » ou surlissage (i.e.
gommage des détails) pour une forte valeur de k.
Sur la prédiction
L'idée des k-NN peut facilement être étendue à la prédiction de
valeurs continues (comme dans le cas de la régression linéaire
multiple) en faisant une prédiction sur la valeur moyenne de la
variable dépendante sur les k plus proches voisins.
Souvent cette moyenne est pondérée par un poids décroissant en
fonction de la distance croissante à partir du point à partir duquel la
prédiction est requise.
Défauts des k-NN
Bien qu'il n'y ait pas besoin de temps pour estimer les paramètres, le
temps pour calculer les k voisins peut etre prohibitif. Un certain
nombre d'idée ont été imaginées pour palier ce problème :
(1) diminuer le coût en calcul de la distance en travaillant sur un
espace de dimension plus petit (en utilisant une méthode de
réduction de dimension du type analyse en composante principale)
(2) utiliser une technique de représentation sophistiquée de type
arbre de recherche pour accélerer le processus d'identificaiton d'un
voisin. Ces méthodes permettent de tomber sur un « presque
voisin » pour aller plus vite.
(3) Editer les données d'apprentissage pour éliminer les
observations redondantes. Parfois autour d'une observation on
trouve des observations ressemblantes qui appartiennent à la même
classe.
Téléchargement