Vous êtes sur la page 1sur 96

Traitement d’images et intelligence

artificielle
Codage des images: Après le texte, l’image est le support le plus
utilisé pour communiquer. Dans le domaine du numérique, les images
sont constituées d’une matrice L x H (Largeur x Hauteur) de points
élémentaires que l’on nomme généralement des pixels (abréviation
de Picture Element). Chaque pixel a une couleur codée sur un
nombre plus ou moins grand de bits. Le périphérique de sortie (écran,
imprimante, …) se doit de restituer les pixels de manière ordonnée en
fonction de leur position respective (x, y) et de leur couleur.

Exemple :Le caractère ASCII « A » peut


être simplement représenté sur une matrice
5 x 7 en « allumant » les pixels adéquats. La
« couleur » peut-être ici matérialisée par un
unique bit (pixel allumé ou éteint). Le
codage d’une image peut donc dans un
premier temps se résumer en la succession
des codages des pixels suivant un ordre
bien défini (balayage lignes-colonnes en

partant du coin supérieur gauche).

2
On distingue trois types d’images :

Image noir et blanc : chaque pixel est codé sur 1bit

3
Images en niveau de gris : chaque pixel est codé sur 8bits=1octet

Image en couleur avec le mode RVB (Rouge, Vert et Bleu, ou en anglais RGB)
correspond à celui fourni par la plupart des caméras couleur, il est naturellement
utilisé pour la reproduction de couleurs sur écran (base noire). C’est le mode de
composition des couleurs basé sur le principe des couleurs additives : le rouge, le
vert et le bleu sont les trois primaires utilisés dans la constitution de couleurs à
partir de sources lumineuses. Une image en couleur est codé sur 24 bits

(Rouge=8bits, Vert=8bits, Bleu=8bits) chaque plan a les valeurs entre [0 et 255]

4
Exemple : (codage RVB)

5
Présentation
• Le traitement d'images est une branche du traitement
de signal dédiée aux images et vidéo
• Dans cette partie nous allez utilisé les deux modules
matplotlib.pyplot et matplotlib.image pour effectuer
quelque traitement sur des image numérique
• Une image numérique est représenter par matrice des
nombres entier

6
Présentation
• chaque point (x, y) dans une
image est nommé pixel

• Il y a trois type d'image numérique :


• Image binaire ( noir et blanc)
• Image niveau de gris
• Image couleur

7
Ouvrir et afficher une image
• Ouvrir et afficher une image binaire ou une
image niveau de gris
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
img = mpimg.imread(fichier_image)
plt.imshow(img, cmap='gray')
plt.show()
• Exemple

8
Ouvrir et afficher une image
• Ouvrir et afficher une image couleur
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
img = mpimg.imread(fichier_image)
plt.imshow(img)
plt.show()
• Exemple

9
Inverser une image
• Pour retourner une image on utilise La
fonction flipud() du module numpy
• Exemple :

10
Passage en niveau de gris
• convertir une image en niveaux de gris en utilisant la formule de
conversion standard RGB en niveaux de gris qui est:
imgGray = 0.2989 * Red + 0.5870 * Green + 0.1140 * Blue
• Exemple :

Image origine Image niveau de gris

11
Rotation d'une image
• Pour faire pivoter une image on peut utiliser
le module PIL.Image ou le module scipy.ndimage
• Exemple :

12
Redimensionner une image
• Pour faire pivoter une image on peut utiliser
le module PIL.Image
• Exemple :

13
Histogramme d'une image
• L’histogramme d’une image mesure la distribution
des niveaux de gris dans l’image.
• l’histogramme d’une image à valeurs entières est
construit de la manière suivante: pour chaque niveau
de gris V, on compte le nombre de pixels ayant la
valeur V.
seuillage fixe
• Le seuillage est une opération qui affecte la valeur 0
à tous les pixels dont le niveau est inférieur à celui du
seuil.
• Exemple :

15
Détection de contours
• Un contour est une changement soudain d’intensité de lumière
ou de couleur de pixels adjacents.
• Il existe plusieurs méthode pour détecter de contour
– Filtre de gradient
– Filtre de Sobel
– Filtre de Canny
• Exemple :

16
Flou d'une image
• Le floutage d’une image est
un processus de réduction
du niveau de bruit dans l’image
• Exemple

1
7
18
19
Introduction à l’apprentissage automatique
Définition: Machine Learning (apprentissage automatique)
concerne l’étude, la conception et le développement d’algorithmes
qui permettent aux ordinateurs d’apprendre sans être explicitement
programmés (Arthur Samuel).
Programmation classique

Données Résultats
Programme

Machine Learning

Données Programme
Résultats
20
Introduction à l’apprentissage automatique
Programmation classique:
- Développement de programmes pour la gestion de stock
- Administration d’une entreprise, ….
- Gestion d’un cabinet de formations, …..

On peut trouver un algorithme qui permet de trouver les résultats à


partir des données saisies par l’utilisateur.
Exemple:

21
Introduction à l’apprentissage automatique
Machine Learning: On ne dispose pas d’une formule ou d’une
méthode analytique qui permet de trouver les résultats à partir des
données.
Connaissez vous une méthode analytique ou un algorithme précis qui permet de
reconnaitre l’une des images suivantes ? S’agit-il du chiffre 6 ou 9 ou la lettre v ?

22
Introduction à l’apprentissage automatique

23
Introduction à l’apprentissage automatique
Vérification de signature sur un chèque:
Connaissez vous une méthode analytique ou un algorithme précis qui permet de
vérifier si l’image suivante (extraite de la partie à droite en bas d’un chèque)
représente la signature correcte d’un client d’une banque ou non ?

Machine learning pour la lutte contre covid-19:


ML pour prédire la propagation du virus, pour aider à diagnostiquer le virus,
prédire la mortalité,…
Préparation d’un modèle de deep learning pour identifier le COVID-19 au
scanner….

24
Introduction à l’apprentissage automatique

25
Introduction à l’apprentissage automatique

26
Quelques applications de Machine Learning

Exemples:
- Prédiction des prix: Estimer
le prix d’une maison en fonction de sa
superficie, sa localisation, possibilité de Parking ou non etc… Ces
estimations sont faites en observant d’autres produits similaires
pour en tirer des conclusions.

- Diagnostique médical: En se basant sur les données médicales d’un


patient, l’algorithme peut diagnostiquer si le sujet est atteint d’une
maladie donnée. Parfois, ces algorithmes peuvent alerter d’un
incident grave de santé avant que cela n’arrive, notamment
pour les crises cardiaques.

27
Quelques applications de Machine Learning
https://www.01net.com/actualites/ia-ces-chercheurs-ont-decouvert-un-puissant-antibiotique-grace-a-l-apprentissage-
automatique-1862232.html?fbclid=IwAR0sdwCFrxJdMg2d75jAtGZ1EF_JH21ouRfr98v2hx2cEHpzYcH0R9QSTvM

Le 21 avril 2020, Des chercheurs du MIT (Massachussetts Institute of


Technology) ont créé un algorithme capable de trouver
automatiquement de nouveaux antibiotiques, ce qui devrait ravir
l’industrie pharmaceutique en s’appuyant sur des techniques
d’apprentissage automatique.
Cette découverte est d’autant plus importante que les bactéries ont
tendance à devenir de plus en plus résistantes. Cette nouvelle
méthode fondée sur l’intelligence artificielle pourrait donc sauver les
vies des millions de personnes.

28
Quelques applications de Machine Learning

ML pour COVID-19
Machine learning-based prediction of COVID-19 diagnosis
based on symptoms
https://www.nature.com/articles/s41746-020-00372-6

Development of machine learning models to predict RT-PCR


results for severe acute respiratory syndrome coronavirus 2
(SARS-CoV-2) in patients with influenza-like symptoms
using only basic clinical data
https://sjtrem.biomedcentral.com/articles/10.1186/s13049-
020-00808-8
29
Quelques applications de Machine Learning

- Recommandation de produits: Ce type de système se base sur les


historiques d’achats, les recherches faites en ligne (Tracking Web)
par un internaute pour lui recommander des produits qui pourront
l’intéresser. Pour Amazon, cette fonctionnalité est critique car elle
est au cœur de l’augmentation des volumes de vente et par
conséquent des gains de la société.
- Regroupement d’items: Ce type de technique sert notamment pour
l’application Iphoto d’Apple pour regrouper les images en fonction
des gens qui s’y retrouvent. Généralement, les données n’ont pas
d’étiquettes, et l’algorithme tentera de retrouver des items
similaires et les regroupera dans un même groupe.

30
Quelques applications de Machine Learning

- Conduite autonome: En apprenant le comportement de conduite


des humains, les algorithmes de Deep Learning avec
l’apprentissage par renforcement (reinforcement learning)
permettent d’apprendre des tâches complexes comme la conduite.
- Banque et Assurance:
Prédire qu’un client va quitter sa banque.
Définir ceux qui veulent changer leur assurance vie.
Améliorer la satisfaction client en proposant les offres les plus
pertinentes possibles.
Prise de décision pour donner un crédit à un client ou non,
prédire les risques, ….

31
Quelques applications de Machine Learning

Une banque reçoit quotidiennement plusieurs demandes


d’approbation de crédit. Elle veut automatiser leurs processus
d’évaluation. La banque n’a pas de formule magique pour savoir
quand il faut accorder un crédit, mais il a beaucoup de données.

L’existence de données nous ramène à l’approche d’apprentissage des


données. Donc, la banque utilise l’historique des documents des
anciens clients pour trouver la bonne formule d’approbation de
crédit.

32
Quelques applications de Machine Learning

La reconnaissance faciale: une catégorie de logiciels biométriques.


Le logiciel utilise des algorithmes de deep learning pour comparer
une capture en direct ou une image numérique à l'empreinte
stockée afin de vérifier l'identité d'un individu. Plusieurs techniques
de reconnaissance faciale sont implémentées.

Peut être utilisée pour le contrôle d’absence des étudiants ou


d’employés d’une entreprise… 33
Quelques applications de Machine Learning

Reconnaissance d’image : La reconnaissance d’image est l’une des


applications les plus courantes de l’apprentissage automatique. Il est
utilisé pour identifier des objets, des personnes, des lieux, des
images numériques, etc. Le cas d’utilisation populaire de la
reconnaissance d’image et la détection de visage et suggestion de
marquage d’amis de façon automatique:
Chaque fois que nous téléchargeons une photo avec nos amis
Facebook, alors nous obtenons automatiquement une suggestion de
marquage avec le nom, et la technologie derrière cela est
l’algorithme de détection et de reconnaissance du visage de
l’apprentissage automatique. Il est basé sur le projet Facebook
appelé "Deep Face", qui permet la reconnaissance du visage et
l’identification de la personne dans la photo.
34
Quelques applications de Machine Learning

Reconnaissance vocale: En utilisant Google, nous obtenons une


option de "Recherche par la voix: "Search by voice" il vient sous la
reconnaissance vocale, et c’est une application populaire de
l’apprentissage automatique.
La reconnaissance vocale est un processus de conversion des
instructions vocales en texte, et elle est aussi connue sous le nom de
« Parole au texte: Computer speech recognition" ou
« Reconnaissance de la parole par ordinateur ». À l’heure actuelle,
les algorithmes d’apprentissage automatique sont largement utilisés
par diverses applications de la reconnaissance vocale. Google
assistant, Cortana, et autres applications utilisent la technologie de
reconnaissance vocale pour suivre les instructions vocales.

35
Quelques applications de Machine Learning

La détection d'émotions dans le texte ou dans l’image est un


usage classique du machine learning qu'on désigne parfois par le
terme de « sentiment analysis ».

Peut être utilisé pour contrôler le comportement des employés en


contact direct avec les clients…
36
Quelques applications de Machine Learning

Filtrage des spams et des logiciels malveillants : Chaque fois que


nous recevons un nouvel e-mail, il est automatiquement filtré
comme important, normal et spam. Nous recevons toujours un
courrier important dans notre boîte de réception avec le symbole
important et des courriers indésirables dans notre boîte à spam, et la
technologie derrière cela est l'apprentissage automatique. Voici
quelques filtres anti-spam utilisés par Gmail :Filtre de contenu, Filtre
d'en-tête, Filtre des listes noires générales, Filtres basés sur des
règles, Filtres de permission. Certains algorithmes d'apprentissage
automatique tels que le perceptron multicouche, l'arbre de décision
et le modèle de classification Naïve Bayesienne sont utilisés pour le
filtrage du spam et la détection des logiciels malveillants.

37
Quelques applications de Machine Learning

Traduction automatique des langues :


De nos jours, si nous visitons un nouvel endroit et que nous ne
connaissons pas la langue, ce n'est pas un problème du tout, car
pour cela, l'apprentissage automatique nous aide en convertissant
le texte dans nos langues connues. Le GNMT (Google Neural
Machine Translation) de Google fournit cette fonctionnalité, qui est
un apprentissage automatique neuronal qui traduit le texte dans
notre langue familière, et qui est appelé traduction automatique.
DeepL fait partie des meilleurs outils de traduction automatique en
ligne. La qualité des textes traduits dépasse celle de Google
Translate, qui est pourtant plus connue. Grâce à
l'intelligence artificielle qu'il utilise, DeepL propose des textes plus
naturels. https://www.deepl.com/fr/translator
38
Machine Learning pour quels problèmes?

1- Existence d’un modèle à apprendre: Il existe une corrélation entre


les variables d’entrées et de sorties. On sait qu’un modèle existe
même si on le connait pas.

2-Modélisation mathématique est impossible: On ne peut pas


résoudre le modèle mathématiquement (pas de solution analytique).

3- Existence des données: Il existe des données qui représentent le


modèle.

Datasets: exemples
https://archive.ics.uci.edu/ml/index.php
https://www.kaggle.com/datasets
39
L’apprentissage automatique est une branche de
l’intelligence artificielle
Le Machine Learning ou Apprentissage automatique est une branche de
l’intelligence artificielle qui concerne la conception, l’analyse, le développement
et l’implémentation de modèles, permettant à une machine d’apprendre à partir
des données par un processus systématique afin de remplir une tâche.

40
Les types d’apprentissage automatique

– Apprentissage supervisé (supervised learning)

– Non supervisé (unsupervised learning)

– Semi supervisé (semi-supervised learning)

– Par renforcement(reinforcement learning)


Apprentissage supervisé (supervised learning)
Des données (entrées) annotées de leurs sorties pour
entraîner le modèle, c'est-à-dire que à chaque un entrée
est associée à une classe cible (sortie), une fois entraîné, le
modèle (l’algorithme de ML) devient capable de prédire
(éventuellement avec un pourcentage d’erreur) la cible sur de
nouvelles données non annotées.

Exemple:
Les données d'entrée représentent des images et la cible
(ou target en anglais) représente la catégorie de photos.
43
Apprentissage supervisé (supervised learning)

Voiture

Oiseau

Chat

Chien

cheval

44
Apprentissage supervisé (supervised learning)

45
Apprentissage supervisé (supervised learning)

46
Apprentissage supervisé (supervised learning)

47
Apprentissage non supervisé (unsupervised learning)

En apprentissage non supervisé, les données d'entrées ne sont


pas annotées. L'algorithme d'entraînement s'applique dans ce
cas à trouver les similarités et distinctions au sein de ces
données, et à regrouper ensemble celles qui partagent des
caractéristiques communes. Dans notre exemple, les photos
similaires seraient ainsi regroupées automatiquement au sein
d'une même catégorie.

48
Apprentissage non supervisé (unsupervised learning)

49
Apprentissage non supervisé (unsupervised learning)

50
Les 7 étapes de l’apprentissage automatique

L'apprentissage automatique ne se résume pas à un ensemble


de modèles mais suit une succession d'étapes:
1) L'acquisition de données : l'algorithme se nourrissant des
données en entrée, c'est une étape importante. Il en va de la
réussite du projet, de récolter des données pertinentes et en
quantité suffisante.
2) La préparation et le nettoyage des données : les données
recueillies doivent être retouchées avant utilisation. En effet,
certains attributs sont inutiles, d’autre doivent être modifiés
afin d’être compris par l’algorithme, et certains éléments sont
inutilisables car leurs données sont incomplètes.

51
Les 7 étapes de l’apprentissage automatique
3) Choix du modèle.
4) Formation et apprentissage du modèle
5) L'évaluation : une fois l'algorithme d'apprentissage
automatique entraîné sur un premier jeu de donnée, on
l'évalue sur un deuxième ensemble de données afin de
vérifier que le modèle ne fasse pas de surapprentissage.
6) Réglage des paramètres: Ajuster les paramètres pour de
meilleures performances
7) Le déploiement : le modèle est déployé en production pour
faire des prédictions, et potentiellement utiliser les nouvelles
données en entrée pour se ré-entraîner et être amélioré.

52
Classification binaire
• La classification est une tâche très répandue en Machine Learning. Dans ce
genre de problématique, on cherche à mettre une étiquette (un label) sur une
observation : une tumeur est-elle maligne ou non maligne, une transaction
est- elle frauduleuse ou non frauduleuse … ces deux cas sont des exemples
de classification.
• Quand on a deux choix d’étiquettes possibles (tumeur maligne ou non), on
parle de Binary Classification (classification binaire). Par ailleurs, l’étiquette Y
aura deux valeurs possibles 0 ou 1. En d’autres termes Y{0,1}

53
Classification binaire et multiclasses
Le but du jeu c’est qu’on trouve une ligne (Boundary Decision) séparant les
deux groupes (les cercles et les carrés).
Note : Pour l’exemple de la tumeur, on peut attribuer arbitrairement la classe
(étiquette) 1 pour dire qu’il s’agit d’une tumeur maligne et la valeur 0 pour les
tumeurs bénignes.
Quand notre problème a plusieurs étiquettes possibles (par exemple classifier
un article dans une catégorie (“sport”, “politique”, “High-Tech”)…), on parle
de Multi-class classification. Dans ce cas on peut attribuer arbitrairement les
numéros des classes aux observations du Training Set. Dans l’exemple vu en
TP en haut pour la reconnaissance des chiffres : dix classes: 0,1,2,3,4,5,6,7,8,9

54
Supervised Learning

55
KNN: k Nearest Neighbors

C’est un algorithme qui peut servir autant pour la classification


que la régression. Il est surnommé « nearest neighbors »
(K plus proches voisins en français) car le principe de ce modèle
consiste en effet à choisir les k données les plus proches du
point étudié afin d’en prédire sa valeur (sa classe).
• K-NN est une méthode d’apprentissage supervisé, qui
fonctionne sous le principe de : “Dis moi qui sont tes voisins, je
te dirais qui tu es…”.
• Avant d'utiliser un vrai jeu de données, on va prendre un petit
exemple afin de comprendre le fonctionnement de l'algorithme
KNN: un jeu de données d’entraînement, avec deux classes,
rouge et bleu. L'input est donc bidimensionnel ici, et
la target est la couleur à classer.

56
KNN: k Nearest Neighbors

57
KNN: k Nearest Neighbors

Si on a une nouvelle entrée dont on veut prédire la classe, comment


pourrait-on faire ?

58
KNN: k Nearest Neighbors
on va simplement regarder les k voisins les plus proches de ce point
et regarder quelle classe constitue la majorité de ces points afin d'en
en déduire la classe du nouveau point. Par exemple ici, si on utilise
le 5-NN, on peut prédire que la nouvelle donnée appartient à la
classe rouge puisqu'elle a 3 rouges et 2 bleus dans son entourage.
Vote Majoritaire

59
KNN: k Nearest Neighbors
on va simplement regarder les k voisins les plus proches de ce point
et regarder quelle classe constitue la majorité de ces points afin d'en
en déduire la classe du nouveau point. Par exemple ici, si on utilise
le 5-NN, on peut prédire que la nouvelle donnée appartient à la
classe rouge puisqu'elle a 3 rouges et 2 bleus dans son entourage.
Vote Majoritaire

60
KNN: k Nearest Neighbors
3. Définir les k plus
1. Initialiser la 2. Calculer la proches voisins
nouvelle donnée Distance & Voter pour les
1.Calculer la distance
2.Trouver les plus proches voisins étiquettes
3.Votez pour les étiquettes

61
KNN: k Nearest Neighbors

• K est un hyperparamètre ou une variable de


contrôle pour le modèle de prédiction.
• Chaque jeu de données a ses propres
exigences.
• K doit être un nombre impair pour simplifier le
vote majoritaire.
• Générer le modèle sur différentes valeurs de k
et vérifier leurs performances.

62
KNN: k Nearest Neighbors

Les étapes de KNN:


1) Choisir la distance, la mesure de similarité entre les échantillons(instances)
2) Choisir (déterminer) la valeur de K.
3) Calculer la distance entre la nouvelle entrée et toutes les données de la base
d’apprentissage.
4) Déterminer les classes des K plus proches voisins
5) Donner la prédiction pour la nouvelle entrée.

Avantages Inconvénients
• Apprentissage rapide • Prédiction Lente et coûteuse en
• Ne nécessite pas une temps et en mémoire, car il faut
généralisation de modèle stocker tous les exemples et il faut
• Peut être utile en cas de données les revoir de nouveau pour chaque
non linéaires. prédiction.
• Méthode facile à comprendre . • Ne convient pas pour les grandes
dimensions.

63
KNN: L’algorithme
1.Charger les données
2.Initialiser k au nombre de plus proches voisins choisi
3. Pour chaque exemple dans les données:
3.1 Calculer la distance entre notre requête et l’observation itérative actuelle de la
boucle depuis les données.
3.2 Ajouter la distance et l’indice de l’observation concernée à une collection
ordonnée de données
4. Trier cette collection ordonnée contenant distances et indices de la plus petite
distance à la plus grande (dans l’ordre croissant).
5. Sélectionner les k premières entrées de la collection de données triées (équivalent aux k plus
proches voisins)
6. Obtenir les étiquettes des k entrées sélectionnées
7. Si régression, retourner la moyenne des k étiquettes
8. Si classification, retourner le mode (valeur la plus fréquente/commune) des k étiquettes

64
KNN: k Nearest Neighbors

Tp 26
KNN: k Nearest Neighbors
Rappel sur enumerate:
Mots = ['Spring', 'Summer', 'Fall', 'Winter']
print(list(enumerate(Mots)))
#[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
print(list(enumerate(Mots, start=1)))
#[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter’)]

Rappels sur Counter:


>>> from collections import Counter
>>> L=[3, 1, 3, 1, 3, 1, 1, 1, 2, 2, 2, 3, 2, 2, 2]
>>> Counter(L)
Counter({2: 6, 1: 5, 3: 4})
>>> Counter(L).most_common(1)
[(2, 6)]
>>> Counter(L).most_common(2) Tp 27
[(2, 6), (1, 5)]
KNN: k Nearest Neighbors

Tp 27
KNN: k Nearest Neighbors

Tp 27
KNN: k Nearest Neighbors

Tp 27
KNN: k Nearest Neighbors

Tp 27
Matrice de confusion

Définition: Matrice de confusion


Soit un Data_test qui contient m échantillons (m exemples) dont les
classes sont "Positif " ou " Négatif ". Avec un modèle de ML on classe
ces m échantillons. Ces échantillons seront réparties en 4 groupes:
- Le premier groupe contient les Vp échantillons +(positifs) qui sont classés +
- Le deuxième contient les Fp échantillons + qui sont classés –
- Le troisième groupe contient les Vn échantillons – qui sont classés –
- Le quatrième groupe contient les Fn échantillons – qui sont classés +

71
Matrice de confusion

72
Matrice de confusion

73
74
75
76
Apprentissage non supervisé (unsupervised learning)

En apprentissage non supervisé, les données d'entrées ne


sont pas annotées. L'algorithme d'entraînement s'applique
dans ce cas à trouver les similarités et distinctions au sein de
ces données, et à regrouper ensemble celles qui partagent
des caractéristiques communes. Dans notre exemple, les
photos similaires seraient ainsi regroupées automatiquement
au sein d'une même catégorie.

77
Apprentissage non supervisé (unsupervised learning)

canar

Lapin

hérisson

78
Apprentissage non supérvisé

79
Classification supervisée et non supervisée

Ce qui ressemble
s’assemble !

80
Apprentissage non supervisé

• Matrice de données  x11 ... x1f ... x1p 


 
 ... ... ... ... ... 
x ... x if ... x ip 
 i1 
 ... ... ... ... ... 
x ... x nf ... x np 
 n1 

• Matrice de similarité  0 
 d(2,1) 0 
 
 d(3,1) d ( 3,2) 0 
 
 : : : 
d ( n,1) d ( n,2) ... ... 0

81 81
Apprentissage non supervisé

Similarité entre objets


• Les distances expriment une similarité
• Ex: la distance de Minkowski :

d (i, j)  (| x  x |  | x  x | ... | x  x | )
q
q q q
i1 j1 i2 j2 ip jp

où i = (xi1, xi2, …, xip) et j = (xj1, xj2, …, xjp) sont deux objets p-


dimensionnels et q un entier positif

• Si q = 1, d est la distance de Manhattan


d (i, j) | x  x |  | x  x | ... | x  x |
i1 j1 i2 j2 ip jp 82
Apprentissage non supervisé

Similarité entre objets

• Si q = 2, d est la distance Euclidienne :


d (i, j)  (| x  x |2  | x  x |2 ... | x  x |2 )
i1 j1 i2 j2 ip jp
– Propriétés
• d(i,j)  0
• d(i,i) = 0
• d(i,j) = d(j,i)
• d(i,j)  d(i,k) + d(k,j)
83
Apprentissage non supervisé

Exemple: distance de Manhattan


Age Salaire
Personne1 50 11000
Personne2 70 11100
Personne3 60 11122
Personne4 60 11074

d(p1,p2)=120
d(p1,p3)=132
Conclusion: p1 ressemble plus à p2 qu’à p3
Apprentissage non supervisé

Clustering
le processus de regroupement d'entités similaires. Les données
groupées sont utilisées pour créer des clusters. Le but de cette
technique est de rechercher des similitudes dans les données ainsi
que de déterminer à quel groupe de nouvelles données doivent
appartenir. Ex : k-means (CPGE), hierarchical clustering, db-scan..

85
Apprentissage non supervisé

Qu’est ce qu’un bon regroupement ?

• Une bonne méthode de regroupement permet de garantir


– Une grande similarité intra-groupe
– Une faible similarité inter-groupe
• La qualité d’un regroupement dépend donc de la mesure de
similarité utilisée par la méthode et de son implémentation

86 86
La méthode des k-moyennes (K-Means)
Méthode des centres mobiles

L’algorithme k-means se déroule en 4 étapes :

1. Choisir k objets formant ainsi k clusters

2. (Ré)affecter chaque objet O au cluster Ci de centre Mi


tel que dist(O,Mi) est minimal

3. Recalculer Mi de chaque cluster (le barycentre)

4. Aller à l’étape 2 si on vient de faire une affectation


87
Apprentissage non supervisé - Clustering
Méthode des centres mobiles: K-means
K-Means :Exemple
• A={1,2,3,6,7,8,13,15,17}. Créer 3 clusters à partir de A

• On prend 3 objets au hasard. Supposons que c’est 1, 2 et 3. Ca


donne C1={1}, M1=1, C2={2}, M2=2, C3={3} et M3=3

• Chaque objet O est affecté au cluster au milieu duquel, O est le


plus proche. 6 est affecté à C3 car dist(M3,6)<dist(M2,6) et
dist(M3,6)<dist(M1,6)
On a C1={1}, M1=1, C2={2}, M2=2
C3={3, 6,7,8,13,15,17}, M3=69/7=9.86

88
Apprentissage non supervisé - Clustering
Méthode des centres mobiles: K-means
• dist(3,M2)<dist(3,M3)3 passe dans C2. Tous les autres objets ne bougent pas.
C1={1}, M1=1, C2={2,3}, M2=2.5,C3={6,7,8,13,15,17} et M3= 66/6=11

• dist(6,M2)<dist(6,M3)6 passe dans C2. Tous les autres objets ne bougent pas.
C1={1}, M1=1, C2={2,3,6}, M2=11/3=3.67, C3={7,8,13,15,17}, M3= 12

• dist(2,M1)<dist(2,M2)2 passe en C1. dist(7,M2)<dist(7,M3) 7 passe en C2. Les


autres ne bougent pas. C1={1,2}, M1=1.5, C2={3,6,7}, M2=5.34, C3= {8,13,15,17},
M3=13.25

• dist(3,M1)<dist(3,M2)3 passe en 1. dist(8,M2)<dist(8,M3)8 passe en 2


C1={1,2,3}, M1=2, C2={6,7,8}, M2=7, C3={13,15,17}, M3=15

Plus rien ne bouge 89


Apprentissage non supervisé - Clustering
Méthode des centres mobiles: K-means
• Exemple
10 10

9 9

8 8

7 7

6 6

5 5

4 4

3 3

2 2

1 1

0 0
0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10

10 10

9 9

8 8

7 7

6 6

5 5

4 4

3
3
2
2
1
1
0
0
0 1 2 3 4 5 6 7 8 9 10
90 0 1 2 3 4 5 6 7 8 9 10
Apprentissage non supervisé - Clustering
Méthode des centres mobiles: K-means

Tp 51

91
92
93
94
95
96

Vous aimerez peut-être aussi