CM4 KNN
CM4 KNN
CM4 KNN
Apprentissage supervisée
Faten CHAKCHOUK
faten.chakchouk@efrei.fr
TI608 – Electif
Bilan ….
Algorithmes d’Apprentissage
Machine
Réduction de
dimensions - PCA
Régression
Clustering
Classification
Kmeans
Clustering hiérarchique
X1 … Xj … Xn Y
… … … …
m observations/individus
X= Xi1 Xij Xin yi
𝒇 ∶ 𝕏→𝕐
Les données observées 𝕆 = {X1,.., Xm} sont soit bruitées soit incompletes :
Erreur ou résidu
𝒇 𝑿 =𝒀+𝜺
6
Plan ….
Algorithmes d’Apprentissage
Machine Supervisé
Classification Régression
KNN
Arbres de décision
Régression logistique
e
e i nu
rèt on t
d isc b le c
e i
c ibl ur
c
ur le
le Va
Va
Les k plus proches voisins (KNN)
k-Nearest Neighbor : Principe
page 9
Les k plus proches voisins (KNN)
k-Nearest Neighbor ou k-NN
Exemples de distances
Pour des variables continues :
Distance de Manhattan
Distance Euclidienne
Distance dk
Distance du maximum
10
Les k plus proches voisins (KNN)
k-Nearest Neighbor ou k-NN
Exemples de distances
Pour des variables discrètes :
Distance de Hamming
11
Les k plus proches voisins (KNN)
k-Nearest Neighbor ou k-NN
Choix du k
● Le choix du k est très important pour la classification.
Début
< On cherche à classer 𝑒𝑥 ? > ;
Pour Chaque exemple 𝑒𝑖 Є 𝐸𝑛𝑡 Faire
< Calculer la distance 𝐷 entre 𝑒𝑖 et 𝑒𝑥 > ;
FPour
< Trier les échantillons 𝑒𝑖 par ordre croissant des distances > ;
Fin.
13
Les k plus proches voisins (KNN)
Frontières de séparation entre les classes
Les k plus proches voisins (KNN)
k-Nearest Neighbor ou k-NN
15
Les k plus proches voisins (KNN)
k-Nearest Neighbor ou k-NN
Exemple : Client loyal ou non ?
16
Les k plus proches voisins (KNN)
k-Nearest Neighbor ou k-NN
Revenu
En utilisant la distance
euclidienne et pour k=3,
déterminer est-ce que
David va être loyal ou
non ?
17
Les k plus proches voisins (KNN)
k-Nearest Neighbor ou k-NN
Prédiction : David est un client loyal
18
Les k plus proches voisins (KNN)
k-Nearest Neighbor ou k-NN
Exercice 2
19
Les k plus proches voisins (KNN)
k-Nearest Neighbor ou k-NN
Exercice
Nous considérons le problème de classification binaire où
l’espace des entrées est X = [0, 1] et l’espace des sorties est
{0; 1}.
La base d’apprentissage est (X1 = 0, 8 ; Y1 = 1),(X2 = 0, 4 ;
Y2 = 0),(X3 = 0, 7 ; Y3 = 1).
Donner la valeur prédite pour toute nouvelle entrée x ∈ X
(a) par l’algorithme des 3-p.p.v.
(b) par l’algorithme du p.p.v
20
Les k plus proches voisins (KNN)
k-Nearest Neighbor ou k-NN
Discussion
● La méthode peut s'appliquer dès qu'il est possible de définir
nombre d'attributs.
● Plus le nombre d'attributs est important, plus le nombre
22
KNN et sickit-learn
Tous les modèles d'apprentissage automatique sont implémentés
en tant que classes Python.
4 caractéristiques :
Longueur et largeur des sépales
Longueur et largeur des pétales
150 observations (50
observations par espèce)
24
Apprentissage Supervisé
KNN et sickit-learn
print(iris.keys())
25
Apprentissage Supervisé
KNN et sickit-learn
type(iris.data),type(iris.target)
Numpy.ndarray,numpy.ndarray
iris.data.shape
(150,4)
iris.target_names
X = iris.data
y = iris.target
df = pd.DataFrame(X,columns=iris.feature_names)
print(df.head())
26
Apprentissage Supervisé
KNN et sickit-learn
# Import KNeighborsClassifier from sklearn.neighbors
from sklearn.neighbors import KNeighborsClassifier
# Predict and print the label for the new data point X_new
new_prediction = knn.predict(X_new)
Apprentissage Supervisé
KNN : Evaluer les performances du modèle
Métrique :
Nombre de prédictions correctes
Précision (Accuracy) =
Nombre total de points
VS
Evaluer les performances du
modèle sur de nouvelles données,
c'est-à-dire des échantillons que Jeu d’apprentissage Jeu de test
l'algorithme n'a jamais vus Ou d’entrainement
auparavant.
Apprentissage Supervisé
KNN : Evaluer les performances du modèle
Apprendre le
Jeu modèle
d’apprentissage Fit()
Jeu Complet
Complexité du modèle
K augmente : La frontière de décision devient plus lisse et moins ondulée
K petit : Modèle plus complexe
Les modèles complexes sont sensibles au bruit dans les données plutôt que de refléter les
caractéristiques générales des données : On parle de l'overfitting.
Le modèle suit trop précisément les particularités du jeu d’apprentissage
Les modèles trop simples : Risquent de ne pas capturer tous les aspects des données ainsi que
leur variabilité. Le modèle sera mauvais sur le jeu de training et le jeu de test. On parle de
underfitting.
Apprentissage Supervisé
KNN : Complexité du modèle - Underfitting/overfitting
Généralisation, sur-apprentissage, sous-apprentissage
Point idéal : compromis entre sous et sur apprentissage
Source: Andreas Müller & Sarah Guido, Introduction to Machine Learning with Python
Apprentissage Supervisé
KNN : Complexité du modèle - Underfitting/overfitting
Généralisation, sur-apprentissage, sous-apprentissage
Source: Andreas Müller & Sarah Guido, Introduction to Machine Learning with Python
Apprentissage Supervisé
KNN : Complexité du modèle - Underfitting/overfitting
Généralisation, sur-apprentissage, sous-apprentissage
Source: Andreas Müller & Sarah Guido, Introduction to Machine Learning with Python
Apprentissage Supervisé
KNN : Complexité du modèle - Underfitting/overfitting
Ajustement des hyperparamètres et sélection du modèle : Choix de K ?
k n'est pas un paramètre mais un hyperparamètre, c'est à dire que
contrairement aux paramètres classiques, il ne va pas pouvoir être appris
automatiquement par l'algorithme à partir des données d'entraînement.
Comment choisir k?
Pourquoi ?
Apprentissage Supervisé
KNN : Complexité du modèle - Underfitting/overfitting
Ajustement des hyperparamètres et sélection du modèle : Choix de K ?
A chaque fois l’erreur de généralisation est mesurée sur le jeu de test
Nous avons adapté le modèle et l’hyperparamètre pour obtenir la
meilleure précision pour ces données particulières.
Jeu
d’apprentissage
Jeu de test
Apprentissage Supervisé
Ajustement des hyperparamètres et sélection du modèle