Vous êtes sur la page 1sur 38

TI608-Introduction à l’apprentissage machine

Apprentissage supervisée

Faten CHAKCHOUK
faten.chakchouk@efrei.fr

TI608 – Electif
Bilan ….

Algorithmes d’Apprentissage
Machine

Non Supervisés Supervisés

Réduction de
dimensions - PCA
Régression

Clustering
Classification
Kmeans
Clustering hiérarchique

On dispose d’un ensemble d’observations et pour


chaque observation une valeur cible est associée; il
faut apprendre un modèle capable de prédire la bonne
valeur cible d’une nouvelle observation.
Apprentissage supervisé - Notations

Variables explicatives, Caractéristiques Variable à prédire


Attributs variable cible

X1 … Xj … Xn Y

X11 1 X1j X1n y1

… … … …
m observations/individus
X= Xi1 Xij Xin yi

Xm1 1 Xmj Xmn ym

𝕆 = {X1,.., Xm} : Ensemble des observations (Xi : ligne i de X)


Chaque observation Xi est associée à un vecteur numérique xi appartenant à un
espace de description, noté 𝕏
𝔸 = {X1,.., Xn} : 𝐄𝐧𝐬𝐞𝐦𝐛𝐥𝐞 𝐝𝐞𝐬 𝐚𝐭𝐭𝐫𝐢𝐛𝐮𝐭𝐬 (Xj ∶ 𝐜𝐨𝐥𝐨𝐧𝐧𝐞 𝐣 𝐝𝐞 𝐗)
𝕐 ∶ l’ensemble des valeurs que peut prendre la variable cible Y

𝔼 = {(x1,y1),...,(xi,yi),...,(xm,ym)} : Ensemble d’entrainement ou d’apprentissage (ou


ensemble des données annotées ou étiquetées).
Apprentissage supervisé - Formulation

Etant donné un ensemble d’apprentissage 𝔼, on cherche à déterminer

𝒇 ∶ 𝕏→𝕐

𝒇 ∶ modélise la relation entre les X décrits dans 𝕏 et la variable cible Y :


𝒇 𝑿 =𝒀

Les données observées 𝕆 = {X1,.., Xm} sont soit bruitées soit incompletes :

Erreur ou résidu
𝒇 𝑿 =𝒀+𝜺

Il s’agit d’approcher 𝒇 en commettant le moins d’erreurs possibles


sur 𝔼 tout en faisant de bonnes prédictions pour des valeurs de X
non encore observées.
Apprentissage supervisé
Définition

Les différentes représentations :


• Si f est une fonction continue on parle alors de régression.
• Si f est une fonction discrète on parle alors de classification.
• Si f est une fonction binaire on parle alors d’apprentissage de concept.

Les méthodes de classification supervisée peuvent être basées sur :


• des notions de proximité (cas du k plus proches voisins)
• des hypothèses probabilistes (cas du classifieur naïf bayésien)
• des recherches dans des espaces d'hypothèses (cas des arbres de
décisions).

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

Le classifieur des k plus proches voisins ou k-ppv (k-


Nearest Neighbor ou k-NN) permet de classifier un
exemple en choisissant la classe dominante parmi les k
plus proches "voisins" (par mesure de distance).

Principe : Un exemple est classifié par vote majoritaire de


ses k "voisins" (par mesure de distance), c'est-à-dire qu'il
est prédit de classe C si la classe la plus représentée
parmi ses k voisins est la classe C.

Deux choix à faire :


La distance
La valeur de k
8
Les k plus proches voisins (KNN)
k-Nearest Neighbor ou k-NN

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.

Pour k=1, le résultat est un plus


Pour k=2, le résultat est indéterminé
Pour k=5, le résultat est un moins

● On s’abstient de choisir des valeurs impaires de k, pour


éviter les cas d'égalité
12
Les k plus proches voisins (KNN)
k-Nearest Neighbor : Pseudo-Algorithme
Déclarations
-M : nombre de classes d’apprentissage 𝐶= 𝑐1,…,𝑐𝑀 ;
-N : nombre d’exemples d’apprentissage 𝐸= 𝑒1,…,𝑒𝑁 ;
-𝐸𝑛𝑡= 𝑒𝑖,𝑐𝑘 : ensemble d’apprentissage
-𝑒𝑥 : exemple test /*dont on cherche à prédire la classe d’appartenance*/

Début
< On cherche à classer 𝑒𝑥 ? > ;
Pour Chaque exemple 𝑒𝑖 Є 𝐸𝑛𝑡 Faire
< Calculer la distance 𝐷 entre 𝑒𝑖 et 𝑒𝑥 > ;
FPour

< Trier les échantillons 𝑒𝑖 par ordre croissant des distances > ;

Pour les 𝑘 plus proches 𝑒𝑖 de 𝑒𝑥 (les 𝑘 premières – ayant les plus


petites- 𝐷) Faire
< Compter le nombre d’occurrences de chaque classe > ;
FPour

< Attribuer à 𝑒𝑥 la classe 𝑐𝑗 la plus fréquente > ; /*Celle qui


apparait le plus souvent*/

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

KNN pour la classification


Sélection des k plus proches exemples x1..xk.
Choix de la classe la plus présente parmi les u1…uk
correspondants.

KNN pour la régression


Sélection des k plus proches exemples x1...xk.
Le résultat :
1 $
𝑓! 𝑥 = ' 𝑥!
𝑘 !"#

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

Exemple : Client loyal ou non ?

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

Nous considérons le problème de classification binaire


suivant :

Classe C1= { (0,3); (0,2); (0,1); (0,0); (-1,0) ; (-2,0)}


Classe C2= { (1,3); (1,1); (1,0); (0,-1)}

Donner la valeur prédite de X=(1,4)


(a) par 1- NN;
(b) 3-NN
(c) 5-NN

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

une distance sur les champs


● La méthode permet de traiter des problèmes avec un grand

nombre d'attributs.
● Plus le nombre d'attributs est important, plus le nombre

d'exemples doit être grand.


● Les performances de la méthode dépendent du choix de la

distance et du nombre k de voisins (une heuristique


fréquemment utilisée est de prendre k égal au nombre
d'attributs plus 1).

22
KNN et sickit-learn
Tous les modèles d'apprentissage automatique sont implémentés
en tant que classes Python.

Ils implémentent les algorithmes d'apprentissage et de


prédiction.

Enregistrent les informations apprises à partir des données

Entraînement d'un modèle sur les données :


Méthode .fit()

Prédire les labels de nouvelles données/entrées :


Méthode .predict()
Apprentissage Supervisé
KNN et sickit-learn
Espèces
Iris Dataset

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

Iris Dataset se trouve aussi dans le package sklearn.datasets

On charge le package datasets pour retrouver le jeu de données IRIS.

# import des librairies


import numpy as np
Import pandas as pd
import matplotlib.pyplot as plt
from sklearn import datasets

# chargement de base de données iris


iris = datasets.load_iris()

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

# Create arrays for the features and the target variable


X = iris.data
y = iris.target

# Create a k-NN classifier with 3 neighbors


knn = KNeighborsClassifier(n_neighbors=3)

# Fit the classifier to the data


knn.fit(X,y)

# Predict the labels for the training data X


y_pred = knn.predict(X)

# 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

Comment évaluer les performances du modèle ?

Métrique :
Nombre de prédictions correctes
Précision (Accuracy) =
Nombre total de points

Sur quel data set ?

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

Si on considère le Jeu d’entrainement ??

Pbm : La mesure de performance est non significative


puisqu’elle ne permet pas de vérifier si le modèle puisse se
généraliser avec de nouvelles données

Apprendre le
Jeu modèle
d’apprentissage Fit()
Jeu Complet

Tester le modèle : prédire


Jeu de test
Comparer avec les labels connus
Apprentissage Supervisé
KNN : Evaluer les performances du modèle Sickit-learn

% data pour le jeu de test = ici 30%


Par défaut : 75% training data et 25% L'état aléatoire garantit que les divisions que vous
test data générez sont reproductibles.
Apprentissage Supervisé
KNN : Complexité du modèle - Underfitting/overfitting
Généralisation, sur-apprentissage, sous-apprentissage
Construire un modèle à partir d’un jeu de données d’apprentissage
Etre capable de faire des prédictions précises sur de nouvelles données

possèdent mêmes caractéristiques que le jeu


n’ont jamais été vues avant
d’apprentissage

Le modèle est capable de généralisation des données d’apprentissage vers les


données test

Objectif : Construire un modèle qui soit capable de généralisation avec


l’exactitude (précision) la plus élevée
Apprentissage Supervisé
KNN : Complexité du modèle - Underfitting/overfitting

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?

Entrainer M modèles différents en utilisant M valeurs


différentes de k

Supposons que nous avons trouvé k qui correspond à la plus faible


erreur de généralisation (test) : exemple (5% )
Mise en production du modèle (nouvelles données) : Erreur 15% !!!!

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.

Peu probable que le modèle obtienne les même résultats sur de


nouvelles données. de test (en particulier)

Jeu
d’apprentissage

Jeu Complet Jeu validation

Jeu de test
Apprentissage Supervisé
Ajustement des hyperparamètres et sélection du modèle

● 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.
● Les hyperparamètres permettent de caractériser le modèle
(e.g. complexité, rapidité de convergence etc). Ce ne sont
pas les données d'apprentissage qui vont permettre de
trouver ces paramètres (ici le nombre de voisins k) mais
bien à nous de l'optimiser, à l'aide du jeu de données de
validation.
● En pratique, la valeur optimale de K conseillée est la racine
carrée de N, où N est le nombre total d'échantillons.
● Il est conseillé de considérer des valeurs impaires de k :
éviter le cas indéterminé 38
Apprentissage Supervisé - KNN
Bilan
Avantages
● L'algorithme est simple et facile à mettre en œuvre.
Principe : “dis moi qui sont tes voisins, je te dirais qui tu es…”.
● Il ne construit pas un modèle prédictif à partir d’un jeu
d’apprentissage. Pour K-NN, il n’existe pas de phase
d’apprentissage proprement dite : Algorithme d’apprentissage
paresseux (Lazy Learning).
● Il s'adapte facilement : à mesure que de nouveaux échantillons
d'apprentissage sont ajoutés, l'algorithme s'ajuste pour tenir compte
de toute nouvelle donnée, toutes les données d'apprentissage étant
stockées en mémoire.
● Peu d'hyperparamètres : une valeur k et une mesure de distance,
● L'algorithme est polyvalent : Il peut être utilisé pour la
classification, la régression.
Apprentissage Supervisé - KNN
Bilan
Inconvénients

● L’algorithme devient beaucoup plus lent à mesure que le


nombre d’observations et de variables indépendantes
augmente.
● Mise à l’échelle difficile : Nécessité de stocker toutes les
observations.
● Malédiction de la dimensionnalité : Il fonctionne mal
avec des observations de grande dimension.
● Risque d’overfitting : choix de K

Vous aimerez peut-être aussi