kNN: k plus proches
voisins
“DIS MOI QUI SONT TES AMIS, JE TE DIRAIS QUI TU ES”
30/06/2016 BORIS GUARISMA - FORMATION DATA...
Sommaire
• A retenir
• Principe pour la discrimination (classification)
• Principe pour la prévision (regression)
• Notion...
A retenir (1/2)
• kNN: pour effectuer une discrimination ou une prévision
• Méthode d’apprentissage* supervisée
• Méthode ...
A retenir (2/2)
• Le voisinage d'un point est l'ensemble des autres points qui sont à une certaine distance de lui
• Les r...
Principe pour la discrimination
• La discrimination d’un individu se ramène à un calcul de probabilité simple: la nombre d...
Principe pour la discrimination
• La discrimination d’un individu se ramène à un calcul de probabilité simple: la nombre d...
Principe pour la prévision
• La prévision d’un individu se ramène à un calcul de moyenne (peut être pondérée) des valeurs
...
Notion de distance
• Propriétés de base d'une distance :
• d(A,A) = 0
• d(A,B) = d(B,A)
• d(A,B) ≤ d(A,C) + d(C,B)
• Types...
Conseil (1/2)
• Afin de calculer la distance entre observations les variables X doivent être quantitatives
• Par conséquen...
Conseil (2/2)
• Normalisation pour X quantitatif
• min-max
• données centrées et réduites: voir ?scale
30/06/2016 BORIS GU...
Dilemme biais - variance
• La complexité de kNN est déterminé par 1 / k
• Une augmentation de k (donc diminution de la com...
Evaluation et validation
• Rappel
• Evaluation du modèle: quantification de sa performance.
• Validation du modèle: l'assu...
R packages
• Le package « class » possède la fonction knn()
• ?knn
• knn(train, test, cl, k = 1, l = 0, prob = FALSE, use....
R packages
• Le package « FNN » possède une autre fonction knn()
• ?knn
• knn(train, test, cl, k = 1, prob = FALSE,
algori...
Exercices
• Vous pouvez télécharger le dossier « knn » avec le lien Dropbox du formateur
• Vous y trouverez un fichier knn...
Bibliographie
• Mount J., Zumel N., Practical Data Science with R, Manning Publications, ISBN 9781617291562,
2014
• Lantz ...
Principe pour la discrimination
• On peut également associer au calcul de probabilité une notion de poids avec, par exempl...
Prochain SlideShare
Chargement dans…5
×

5.1 K plus proches voisins

38 vues

Publié le

Version DRAFT d'une formation Data Scientist que j'ai conçue à partir de sources diverses (voir références bibliographiques à la fin de chaque diapositive).
La formation est destinée aux personnes possédant des bases (~BAC+2) en statistiques et programmation (j'utilise R).
Je reste ouvert à tout commentaire, critique et correction. Je continuerai à mettre à jour les diapositives et à en ajouter d'autres si j'ai le temps.

Publié dans : Données & analyses
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
38
Sur SlideShare
0
Issues des intégrations
0
Intégrations
0
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

5.1 K plus proches voisins

  1. 1. kNN: k plus proches voisins “DIS MOI QUI SONT TES AMIS, JE TE DIRAIS QUI TU ES” 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - K PLUS PROCHES VOISINS 1
  2. 2. Sommaire • A retenir • Principe pour la discrimination (classification) • Principe pour la prévision (regression) • Notion de distance • Conseil • Dilemme biais-variance • R packages • Exercices • Bibliographie 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - K PLUS PROCHES VOISINS 2
  3. 3. A retenir (1/2) • kNN: pour effectuer une discrimination ou une prévision • Méthode d’apprentissage* supervisée • Méthode non paramétrique • (*) lazy learner ou instance-based learning: • aucun modèle n’est induit à partir d’exemples • Insensible aux points aberrants • On réexécute l'algorithme pour chercher de nouveaux voisins à chaque fois que l'on veut classer un nouvel individu. • Forte consommation en CPU • Big Data : spark-knn disponible; SparkR ? 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - K PLUS PROCHES VOISINS 3
  4. 4. A retenir (2/2) • Le voisinage d'un point est l'ensemble des autres points qui sont à une certaine distance de lui • Les résultats dépendent de deux critères: • Le nombre k: combien de voisins à retenir ? • Quelle distance considérée ? • Applications • discriminer de documents indexés dans un moteur de recherche • géomarketing: anticiper le CA d’un nouveau magasin basé sur d’autres points de vente semblables • recommandations de produit à un individu basées sur d’autres individus semblables • appétence, attrition • … 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - K PLUS PROCHES VOISINS 4
  5. 5. Principe pour la discrimination • La discrimination d’un individu se ramène à un calcul de probabilité simple: la nombre de voisins appartenant à la classe sur le total de k voisins 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - K PLUS PROCHES VOISINS 5 k=3 individu à classer individu appartenant à la classe cible « c1 » 3 cas possibles 33% 66% 100%
  6. 6. Principe pour la discrimination • La discrimination d’un individu se ramène à un calcul de probabilité simple: la nombre de voisins appartenant à la classe sur le total de k voisins 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - K PLUS PROCHES VOISINS 6 k=3 3 cas possibles 33% 66% 100% Attention aux classes (ou évènements) rares ! Exemple: si le nombre d’individus appartenant à c1 ne représente que 7% de vos données d’apprentissage, alors prenez un k large. Si vous souhaitez avoir une chance d’observer 10 individus de c1 dans chaque voisinage alors prenez k = 10/0.07 = 142.
  7. 7. Principe pour la prévision • La prévision d’un individu se ramène à un calcul de moyenne (peut être pondérée) des valeurs de la réponse quantitative de ses k voisins • Si l’on suppose que les k=3 voisins les plus proches sont ceux indiqués ci-dessus, alors la prévision de Y pour l’individu cible sera la moyenne de (110, 80, 100) 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - K PLUS PROCHES VOISINS 7 k=3 X1 X2 Y (réponse) 150 30 100 90 35 110 100 55 70 80 34 80 80 30 100 ensemble d’apprentissage X1 X2 Y 85 33 ? ensemble test individu
  8. 8. Notion de distance • Propriétés de base d'une distance : • d(A,A) = 0 • d(A,B) = d(B,A) • d(A,B) ≤ d(A,C) + d(C,B) • Types de distances • Euclidienne • Cosinus • Manhattan • … • Implémentation • R knn() euclidienne • distance customisée • voir ?dist 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - K PLUS PROCHES VOISINS 8 Entre 2 vecteurs de Rn Entre 2 vecteurs de R2
  9. 9. Conseil (1/2) • Afin de calculer la distance entre observations les variables X doivent être quantitatives • Par conséquent, en cas de variables X qualitatives (factors) on va créer des variables-modalité • pour une variable qualitative avec m modalités on définit m-1 variables-modalité • Une variable-modalité ne possède que 2 valeurs: • 0 si l’observation ne prend pas la valeur de la modalité • 1 si l’observation prend la valeur de la modalité • Exemple: • soit la variable qualitative X1 (température) avec les modalités {« chaud », « tiède », « froid »} • on crée alors les 2 variables modalités suivantes: • chaud = 0 ou 1 • tiède = 0 ou 1 • si une observation prend la modalité « froid » alors les variables-modalité prennent les valeurs • chaud=0 • tiède=0 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - K PLUS PROCHES VOISINS 9
  10. 10. Conseil (2/2) • Normalisation pour X quantitatif • min-max • données centrées et réduites: voir ?scale 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - K PLUS PROCHES VOISINS 10 normalize <- function(x) { return ((x - min(x)) / (max(x) - min(x))) }
  11. 11. Dilemme biais - variance • La complexité de kNN est déterminé par 1 / k • Une augmentation de k (donc diminution de la complexité) • augmente le biais: on risque d’ignorer des détails (schémas, patterns) importants dans les données d’apprentissage • diminue la variance: comme on est moins sensible aux données bruitées alors meilleure généralisation • quid de k = nombre total d’observations • Une diminution de k (donc augmentation de la complexité) • diminue le biais • augmente la variance • quid de k = 1 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - K PLUS PROCHES VOISINS 11
  12. 12. Evaluation et validation • Rappel • Evaluation du modèle: quantification de sa performance. • Validation du modèle: l'assurance que le modèle fonctionnera en production comme il a fonctionné durant l'apprentissage. • kNN pour la discrimination • Evaluation: AUC pour l’ensemble d’apprentissage et AUC+ROC pour l’ensemble de validation • Validation: AUC+ROC pour l’ensemble de test • kNN pour la prévision • Evaluation: MSE pour l’ensemble d’apprentissage et de validation • Validation: MSE pour l’ensemble de test 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - K PLUS PROCHES VOISINS 12
  13. 13. R packages • Le package « class » possède la fonction knn() • ?knn • knn(train, test, cl, k = 1, l = 0, prob = FALSE, use.all = TRUE) • Usage courant: knn(train, test, cl, k) 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - K PLUS PROCHES VOISINS 13 données d’apprentissage données de test colonne de libellés de classes nombre de voisins minimum nb de votes (k-l) pour décision si TRUE, la proportion de la classe gagnante est retournée en cas d’égalité (ties) entre classes, par défaut on sélectionne toutes les distances égales à la ke plus large. Si FALSE, alors on effectue une sélection aléatoire de distances égales à la ke afin d’utiliser exactement k voisins.
  14. 14. R packages • Le package « FNN » possède une autre fonction knn() • ?knn • knn(train, test, cl, k = 1, prob = FALSE, algorithm=c("kd_tree", "cover_tree", "brute")) 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - K PLUS PROCHES VOISINS 14 choix de structure de données pour accélérer la recherche de voisins
  15. 15. Exercices • Vous pouvez télécharger le dossier « knn » avec le lien Dropbox du formateur • Vous y trouverez un fichier knn.Rmd avec les exemples suivants: • EX_KNN0 : fondamentaux avec class::knn • EX_KNN1 : discrimination d’individus selon susceptibilité de frauder avec codage manuel, sans knn() • EX_KNN2 : idem EX_KNN1 avec class::knn et FNN::knn • EX_KNN3 : prévision d’endettement des individus avec FNN::knn • Vous y trouverez également un fichier knn_exo_long.Rmd avec un exercice long sur l’attrition 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - K PLUS PROCHES VOISINS 15
  16. 16. Bibliographie • Mount J., Zumel N., Practical Data Science with R, Manning Publications, ISBN 9781617291562, 2014 • Lantz B., Machine Learning with R, Packt Publications, ISBN 9781782162148, 2013 • G-Tch, « Les k-plus proches voisins :Vite, il faut se la réapproprier… », http://www.r- bloggers.com/les-k-plus-prcoches-voisins-vite-il-faut-se-la-reapproprier/, novembre 2013 • Vladimirov M., « Using the k-Nearest Neighbors Algorithm in R », http://blog.webagesolutions.com/archives/1164, novembre 2013 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - K PLUS PROCHES VOISINS 16
  17. 17. Principe pour la discrimination • On peut également associer au calcul de probabilité une notion de poids avec, par exemple, les fonctions suivantes: • Dans ce cas, on se focalise plus par exemple, sur l’évaluation d'un degré d'appétence à quelque chose au lieu de prédire l'appartenance ou non à une classe. 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - K PLUS PROCHES VOISINS 17 a clarifier

×