SlideShare une entreprise Scribd logo
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
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
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
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
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%
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.
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
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
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
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)))
}
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
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
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.
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
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
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
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

Contenu connexe

Tendances

Data mining - Classification - arbres de décision
Data mining - Classification - arbres de décisionData mining - Classification - arbres de décision
Data mining - Classification - arbres de décision
Mohamed Heny SELMI
 
AI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine LearnigAI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine Learnig
Felipe Sanchez Garzon
 
Introduction au Machine Learning
Introduction au Machine LearningIntroduction au Machine Learning
Introduction au Machine Learning
Mathieu Goeminne
 
Data mining - Segmentation(k-means, cah)
Data mining - Segmentation(k-means, cah)Data mining - Segmentation(k-means, cah)
Data mining - Segmentation(k-means, cah)
Mohamed Heny SELMI
 
Techniques du data mining
Techniques du data miningTechniques du data mining
Techniques du data mining
Donia Hammami
 
La classification des Emails utilisant le modèle MapReduce
La classification des Emails utilisant le modèle MapReduce La classification des Emails utilisant le modèle MapReduce
La classification des Emails utilisant le modèle MapReduce
Nour El Houda Megherbi
 
Les arbres de décisions
Les arbres de décisionsLes arbres de décisions
Les arbres de décisions
Mariem Chaaben
 
Datajob 2013 - Construire un système de recommandation
Datajob 2013 - Construire un système de recommandationDatajob 2013 - Construire un système de recommandation
Datajob 2013 - Construire un système de recommandationDjamel Zouaoui
 
Data mining - Associativité
Data mining - AssociativitéData mining - Associativité
Data mining - Associativité
Mohamed Heny SELMI
 
Data mining - Introduction générale
Data mining - Introduction généraleData mining - Introduction générale
Data mining - Introduction générale
Mohamed Heny SELMI
 
Présentation sur le Data Mining
Présentation sur le Data MiningPrésentation sur le Data Mining
Présentation sur le Data Mining
Takfarinas KENOUCHE
 
Regression logistque
Regression  logistqueRegression  logistque
Regression logistque
Ferdaous HDIOUD
 
Les 10 plus populaires algorithmes du machine learning
Les 10 plus populaires algorithmes du machine learningLes 10 plus populaires algorithmes du machine learning
Les 10 plus populaires algorithmes du machine learning
Hakim Nasaoui
 
réseaux de neurones artificiels
réseaux de neurones artificiels réseaux de neurones artificiels
réseaux de neurones artificiels
Oussama Werfelli
 
Les systèmes de recommandations
Les systèmes de recommandationsLes systèmes de recommandations
Les systèmes de recommandations
Romain Picot-Clemente
 
Chapitre 4-Apprentissage non supervisé (1) (1).pdf
Chapitre 4-Apprentissage non supervisé (1) (1).pdfChapitre 4-Apprentissage non supervisé (1) (1).pdf
Chapitre 4-Apprentissage non supervisé (1) (1).pdf
ZizoAziz
 
Data mining - ACP Analyse en Composantes Principales
Data mining - ACP Analyse en Composantes PrincipalesData mining - ACP Analyse en Composantes Principales
Data mining - ACP Analyse en Composantes Principales
Mohamed Heny SELMI
 
Data Mining
Data MiningData Mining

Tendances (20)

Data mining - Classification - arbres de décision
Data mining - Classification - arbres de décisionData mining - Classification - arbres de décision
Data mining - Classification - arbres de décision
 
AI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine LearnigAI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine Learnig
 
Introduction au Machine Learning
Introduction au Machine LearningIntroduction au Machine Learning
Introduction au Machine Learning
 
Data mining - Segmentation(k-means, cah)
Data mining - Segmentation(k-means, cah)Data mining - Segmentation(k-means, cah)
Data mining - Segmentation(k-means, cah)
 
Techniques du data mining
Techniques du data miningTechniques du data mining
Techniques du data mining
 
La classification des Emails utilisant le modèle MapReduce
La classification des Emails utilisant le modèle MapReduce La classification des Emails utilisant le modèle MapReduce
La classification des Emails utilisant le modèle MapReduce
 
Les arbres de décisions
Les arbres de décisionsLes arbres de décisions
Les arbres de décisions
 
Datajob 2013 - Construire un système de recommandation
Datajob 2013 - Construire un système de recommandationDatajob 2013 - Construire un système de recommandation
Datajob 2013 - Construire un système de recommandation
 
Data mining - Associativité
Data mining - AssociativitéData mining - Associativité
Data mining - Associativité
 
Clustering
ClusteringClustering
Clustering
 
clustering
clusteringclustering
clustering
 
Data mining - Introduction générale
Data mining - Introduction généraleData mining - Introduction générale
Data mining - Introduction générale
 
Présentation sur le Data Mining
Présentation sur le Data MiningPrésentation sur le Data Mining
Présentation sur le Data Mining
 
Regression logistque
Regression  logistqueRegression  logistque
Regression logistque
 
Les 10 plus populaires algorithmes du machine learning
Les 10 plus populaires algorithmes du machine learningLes 10 plus populaires algorithmes du machine learning
Les 10 plus populaires algorithmes du machine learning
 
réseaux de neurones artificiels
réseaux de neurones artificiels réseaux de neurones artificiels
réseaux de neurones artificiels
 
Les systèmes de recommandations
Les systèmes de recommandationsLes systèmes de recommandations
Les systèmes de recommandations
 
Chapitre 4-Apprentissage non supervisé (1) (1).pdf
Chapitre 4-Apprentissage non supervisé (1) (1).pdfChapitre 4-Apprentissage non supervisé (1) (1).pdf
Chapitre 4-Apprentissage non supervisé (1) (1).pdf
 
Data mining - ACP Analyse en Composantes Principales
Data mining - ACP Analyse en Composantes PrincipalesData mining - ACP Analyse en Composantes Principales
Data mining - ACP Analyse en Composantes Principales
 
Data Mining
Data MiningData Mining
Data Mining
 

Plus de Boris Guarisma

Base de données graphe et Neo4j
Base de données graphe et Neo4jBase de données graphe et Neo4j
Base de données graphe et Neo4j
Boris Guarisma
 
5.4 Arbres et forêts aléatoires
5.4 Arbres et forêts aléatoires5.4 Arbres et forêts aléatoires
5.4 Arbres et forêts aléatoires
Boris Guarisma
 
5.3 Régression logistique
5.3 Régression logistique5.3 Régression logistique
5.3 Régression logistique
Boris Guarisma
 
05 Sélection de modèle linéaire
05 Sélection de modèle linéaire05 Sélection de modèle linéaire
05 Sélection de modèle linéaire
Boris Guarisma
 
04 Introduction au logiciel R
04 Introduction au logiciel R04 Introduction au logiciel R
04 Introduction au logiciel R
Boris Guarisma
 
03 Apprentissage statistique
03 Apprentissage statistique03 Apprentissage statistique
03 Apprentissage statistique
Boris Guarisma
 
Base de données graphe et Neo4j
Base de données graphe et Neo4jBase de données graphe et Neo4j
Base de données graphe et Neo4j
Boris Guarisma
 
Music recommendations API with Neo4j
Music recommendations API with Neo4jMusic recommendations API with Neo4j
Music recommendations API with Neo4j
Boris Guarisma
 

Plus de Boris Guarisma (8)

Base de données graphe et Neo4j
Base de données graphe et Neo4jBase de données graphe et Neo4j
Base de données graphe et Neo4j
 
5.4 Arbres et forêts aléatoires
5.4 Arbres et forêts aléatoires5.4 Arbres et forêts aléatoires
5.4 Arbres et forêts aléatoires
 
5.3 Régression logistique
5.3 Régression logistique5.3 Régression logistique
5.3 Régression logistique
 
05 Sélection de modèle linéaire
05 Sélection de modèle linéaire05 Sélection de modèle linéaire
05 Sélection de modèle linéaire
 
04 Introduction au logiciel R
04 Introduction au logiciel R04 Introduction au logiciel R
04 Introduction au logiciel R
 
03 Apprentissage statistique
03 Apprentissage statistique03 Apprentissage statistique
03 Apprentissage statistique
 
Base de données graphe et Neo4j
Base de données graphe et Neo4jBase de données graphe et Neo4j
Base de données graphe et Neo4j
 
Music recommendations API with Neo4j
Music recommendations API with Neo4jMusic recommendations API with Neo4j
Music recommendations API with Neo4j
 

5.1 K plus proches voisins

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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