SlideShare ist ein Scribd-Unternehmen logo
1 von 17
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

Weitere ähnliche Inhalte

Was ist angesagt?

Exposé segmentation
Exposé segmentationExposé segmentation
Exposé segmentationDonia Hammami
 
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écisionMohamed Heny SELMI
 
Arbre de décision.pdf
Arbre de décision.pdfArbre de décision.pdf
Arbre de décision.pdfimane26
 
Exposé réseaux des neurones (NN) - (RN)
Exposé réseaux des neurones (NN) - (RN)Exposé réseaux des neurones (NN) - (RN)
Exposé réseaux des neurones (NN) - (RN)Soumia Elyakote HERMA
 
Réseaux des neurones
Réseaux des neuronesRéseaux des neurones
Réseaux des neuronesMed Zaibi
 
réseaux de neurones artificiels
réseaux de neurones artificiels réseaux de neurones artificiels
réseaux de neurones artificiels Oussama Werfelli
 
Les arbres de décisions
Les arbres de décisionsLes arbres de décisions
Les arbres de décisionsMariem Chaaben
 
Introduction au Deep Learning
Introduction au Deep Learning Introduction au Deep Learning
Introduction au Deep Learning Niji
 
5.3 Régression logistique
5.3 Régression logistique5.3 Régression logistique
5.3 Régression logistiqueBoris Guarisma
 
Rapport projet Master 2 - Intelligence Artificielle
Rapport projet Master 2 - Intelligence ArtificielleRapport projet Master 2 - Intelligence Artificielle
Rapport projet Master 2 - Intelligence ArtificielleYanis Marchand
 
AI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine LearnigAI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine LearnigFelipe Sanchez Garzon
 
La prédiction du churn client dans le domaine du telecom
La prédiction du churn client dans le domaine du telecomLa prédiction du churn client dans le domaine du telecom
La prédiction du churn client dans le domaine du telecomIsmail Sanni
 
Le Reseau De Neurones
Le Reseau De NeuronesLe Reseau De Neurones
Le Reseau De Neuronesguestf80d95
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Ines Ouaz
 
Machine Learning et Intelligence Artificielle
Machine Learning et Intelligence ArtificielleMachine Learning et Intelligence Artificielle
Machine Learning et Intelligence ArtificielleSoft Computing
 
Les réseaux de neurones
Les réseaux de neuronesLes réseaux de neurones
Les réseaux de neuronesMariam Amchayd
 

Was ist angesagt? (20)

Exposé segmentation
Exposé segmentationExposé segmentation
Exposé segmentation
 
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
 
Arbre de décision.pdf
Arbre de décision.pdfArbre de décision.pdf
Arbre de décision.pdf
 
Exposé réseaux des neurones (NN) - (RN)
Exposé réseaux des neurones (NN) - (RN)Exposé réseaux des neurones (NN) - (RN)
Exposé réseaux des neurones (NN) - (RN)
 
Réseaux des neurones
Réseaux des neuronesRéseaux des neurones
Réseaux des neurones
 
réseaux de neurones artificiels
réseaux de neurones artificiels réseaux de neurones artificiels
réseaux de neurones artificiels
 
Les arbres de décisions
Les arbres de décisionsLes arbres de décisions
Les arbres de décisions
 
Introduction au Deep Learning
Introduction au Deep Learning Introduction au Deep Learning
Introduction au Deep Learning
 
Regression logistque
Regression  logistqueRegression  logistque
Regression logistque
 
5.3 Régression logistique
5.3 Régression logistique5.3 Régression logistique
5.3 Régression logistique
 
Rapport projet Master 2 - Intelligence Artificielle
Rapport projet Master 2 - Intelligence ArtificielleRapport projet Master 2 - Intelligence Artificielle
Rapport projet Master 2 - Intelligence Artificielle
 
arbres de decision.ppt
arbres de decision.pptarbres de decision.ppt
arbres de decision.ppt
 
AI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine LearnigAI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine Learnig
 
La prédiction du churn client dans le domaine du telecom
La prédiction du churn client dans le domaine du telecomLa prédiction du churn client dans le domaine du telecom
La prédiction du churn client dans le domaine du telecom
 
Le Reseau De Neurones
Le Reseau De NeuronesLe Reseau De Neurones
Le Reseau De Neurones
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)
 
Réseaux neurons
Réseaux neuronsRéseaux neurons
Réseaux neurons
 
Machine Learning et Intelligence Artificielle
Machine Learning et Intelligence ArtificielleMachine Learning et Intelligence Artificielle
Machine Learning et Intelligence Artificielle
 
Cours rn 2006
Cours rn 2006Cours rn 2006
Cours rn 2006
 
Les réseaux de neurones
Les réseaux de neuronesLes réseaux de neurones
Les réseaux de neurones
 

Mehr von 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 Neo4jBoris 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éatoiresBoris 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éaireBoris Guarisma
 
04 Introduction au logiciel R
04 Introduction au logiciel R04 Introduction au logiciel R
04 Introduction au logiciel RBoris Guarisma
 
03 Apprentissage statistique
03 Apprentissage statistique03 Apprentissage statistique
03 Apprentissage statistiqueBoris 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 Neo4jBoris Guarisma
 
Music recommendations API with Neo4j
Music recommendations API with Neo4jMusic recommendations API with Neo4j
Music recommendations API with Neo4jBoris Guarisma
 

Mehr von Boris Guarisma (7)

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

Kürzlich hochgeladen

Bidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from TransformersBidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from Transformersbahija babzine
 
Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023France Travail
 
To_understand_transformers_together presentation
To_understand_transformers_together presentationTo_understand_transformers_together presentation
To_understand_transformers_together presentationbahija babzine
 
Recurrent neural network_PresentationRNN.pptx
Recurrent neural network_PresentationRNN.pptxRecurrent neural network_PresentationRNN.pptx
Recurrent neural network_PresentationRNN.pptxbahija babzine
 
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...France Travail
 
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel AttalELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attalcontact Elabe
 

Kürzlich hochgeladen (6)

Bidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from TransformersBidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from Transformers
 
Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023
 
To_understand_transformers_together presentation
To_understand_transformers_together presentationTo_understand_transformers_together presentation
To_understand_transformers_together presentation
 
Recurrent neural network_PresentationRNN.pptx
Recurrent neural network_PresentationRNN.pptxRecurrent neural network_PresentationRNN.pptx
Recurrent neural network_PresentationRNN.pptx
 
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
 
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel AttalELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
 

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