Académique Documents
Professionnel Documents
Culture Documents
Correction TD1
Exercice 1 :
Etant donnée 𝓜 la matrice des écarts de la première partition ℘𝟎 qui comporte 5 clusters.
Chaque cluster contient une seule observation
℘𝟎 = {{𝐚}, {𝐛}, {𝐜}, {𝐝}, {𝐞}}
Appliquer l’algorithme CAH pour déterminer une meilleure partition de clusters. L’écart
entre deux groupes est calculé par « average linkage »
1. Déterminer la partition ℘𝟏
𝐞({𝐜}, {𝐝})=11 est le plus petit
→ ℘𝟏={{𝐜, 𝐝}, {a},{b},{e}}
𝟏 𝟏
𝐞({𝐜, 𝐝}, {𝐚})=𝟐×𝟏 (𝐝(𝐜, 𝐚) + 𝐝(𝐝, 𝐚))= 𝟐 (𝟑𝟓 + 𝟒𝟑) = 𝟑𝟗
𝟏 𝟏
𝐞({𝐜, 𝐝}, {𝐛})=𝟐×𝟏 (𝐝(𝐜, 𝐛) + 𝐝(𝐝, 𝐛))= 𝟐 (𝟐𝟏 + 𝟑𝟐) = 𝟐𝟔. 𝟓
𝟏 𝟏
𝐞({𝐜, 𝐝}, {𝐞})=𝟐×𝟏 (𝐝(𝐜, 𝐞) + 𝐝(𝐝, 𝐞)) = 𝟐
(𝟐𝟓 + 𝟏𝟕) = 𝟐𝟏
3. Déterminer la partition ℘𝟐
𝐞({𝐜, 𝐝}, {𝐞})=21 est le plus petit
→ ℘𝟐={{𝐜, 𝐝, 𝐞}, {a},{b}}
1/6
4. Calculer la matrice des écarts associée à ℘𝟐
𝟏 𝟏
𝐞({𝐜, 𝐝, 𝐞}, {𝐚})=𝟑×𝟏 (𝐝(𝐜, 𝐚) + 𝐝(𝐝, 𝐚) + 𝐝(𝐞, 𝐚))= 𝟑 (𝟑𝟓 + 𝟒𝟑 + 𝟓𝟎) = 𝟒𝟐. 𝟔𝟕
𝟏 𝟏
𝐞({𝐜, 𝐝, 𝐞}, {𝐛})=𝟑×𝟏 (𝐝(𝐜, 𝐛) + 𝐝(𝐝, 𝐛) + 𝐝(𝐞, 𝐛))= 𝟑 (𝟐𝟏 + 𝟑𝟐 + 𝟒𝟓) = 𝟑𝟐. 𝟔𝟕
5. Déterminer la partition ℘𝟑
𝐞({𝐚}, {𝐛})=23 est le plus petit
→ ℘𝟑={{𝐜, 𝐝, 𝐞}, {a, b}}
𝓜 {𝐜, 𝐝, 𝐞} {a, b}
{𝐜, 𝐝, 𝐞} 0 37.67
{a, b} 0
𝟏 𝟏
𝐞({𝐜, 𝐝, 𝐞}, {𝐚, 𝐛})=𝟑×𝟐 (𝐝(𝐜, 𝐚) + 𝐝(𝐝, 𝐚) + 𝐝(𝐞, 𝐚) + 𝐝(𝐜, 𝐛) + 𝐝(𝐝, 𝐛) + 𝐝(𝐞, 𝐛))= 𝟔 (𝟑𝟓 + 𝟒𝟑 +
𝟓𝟎 + 𝟐𝟏 + 𝟑𝟐 + 𝟒𝟓) = 𝟑𝟕. 𝟔𝟕
7. Déterminer la partition ℘𝟒
Il ne reste plus que deux clusters {𝐜, 𝐝, 𝐞} et {a, b} (à regrouper dans le même cluster)
→ ℘𝟒={{𝐜, 𝐝, 𝐞, a, b}}
→ Le processus s’arrête
8. Construire le dendrogramme des partitions
2/6
9. Quelle est la meilleure partition ? Justifier
Saut important par passage de la partition ℘𝟑 à la partition ℘𝟒
→ ℘𝟑 est la meilleure partition
Exercice 2:
Soit le jeu de données d’apprentissage Ω de 8 observations (𝐀𝟏, 𝐀𝟐, 𝐀𝟑, 𝐁𝟏, 𝐁𝟐, 𝐁𝟑, 𝐂𝟏, 𝐂𝟐)
et 2 descripteurs (X , X )
𝛀 𝐗𝟏 𝐗𝟐
𝐀𝟏 2 10
𝐀𝟐 2 5
𝐀𝟑 8 4
𝐁𝟏 5 8
𝐁𝟐 7 5
𝐁𝟑 6 4
𝐂𝟏 1 2
𝐂𝟐 4 9
Supposons que nous attribuons 𝐀𝟏, 𝐁𝟏 et 𝐂𝟏 aux barycentres des groupes G1, G2, et G3
respectivement. Appliquer l’algorithme K-Means (avec K=3) pour déterminer les trois
derniers clusters. La fonction de distance est la distance euclidienne
10. Calculer les distances entre les observations et les barycentres des groupes G1, G2, et G3
𝛀 𝐀𝟏 𝐀𝟐 𝐀𝟑 𝐁𝟏 𝐁𝟐 𝐁𝟑 𝐂𝟏 𝐂𝟐
G1
𝐀𝟏 0 5 8.49 3.61 7.07 7.21 8.06 2.24
G2 3.61 4.24 5.0 0 3.61 4.12 7.21 1.41
𝐁𝟏
G3 8.06 3.16 7.28 7.21 6.71 5.39 0 7.62
𝐂𝟏
𝐝(𝐀𝟏, 𝐀𝟐) = (𝟐 − 𝟐)𝟐 + (𝟏𝟎 − 𝟓)² = 𝟓
𝐝(𝐀𝟏, 𝐀𝟑) = (𝟐 − 𝟖)𝟐 + (𝟏𝟎 − 𝟒)² = 𝟖. 𝟒𝟗
⋮
from math import *
import numpy as np
t=np.array([[2,10],[2,5],[8,4],[5,8],[7,5],[6,4],[1,2],[4,9]]) # espace de descripteurs
c_g=np.array([[2,10],[5,8],[1,2]])
l=[]
for c in c_g:
for i in t:
d=sqrt((i[0]-c[0])**2+(i[1]-c[1])**2)
l.append(round(d,2))
print(np.array(l).reshape(3,8))
3/6
11. Déduire les clusters obtenus
Pour 𝐀𝟏 ; min(𝐝(𝐀𝟏, 𝐀𝟏), 𝐝(𝐁𝟏, 𝐀𝟏), 𝐝(𝐂𝟏, 𝐀𝟏)) =𝐝(𝐀𝟏, 𝐀𝟏) = 𝟎 ; alors 𝐀𝟏 dans G1
Pour 𝐀𝟐 ; min(𝐝(𝐀𝟏, 𝐀𝟐), 𝐝(𝐁𝟏, 𝐀𝟐), 𝐝(𝐂𝟏, 𝐀𝟐)) =𝐝(𝐂𝟏, 𝐀𝟐) = 𝟑. 𝟏𝟔 ; alors 𝐀𝟐 dans G3
G1= { 𝐀𝟏 }
G2= { 𝐀𝟑, B1, B2, B3, C2 }
G3= { 𝐀𝟐, C1 }
12. Calculer les nouveaux barycentres 𝐠 𝐆𝟏, 𝐠 𝐆𝟐, et 𝐠 𝐆𝟑des groupes G1,G2 et G3 respectivement
𝐠 𝐆𝟏= A1= (2, 10)
𝟖 𝟓 𝟕 𝟔 𝟒 𝟒 𝟖 𝟓 𝟒 𝟗
𝐠 𝐆𝟐= { 𝟓
, 𝟓
}= (6, 6)
𝟐 𝟏 𝟓 𝟐
𝐠 𝐆𝟑= {𝟐
, 𝟐 }= (1.5, 3.5)
13. Calculer les distances entre les observations et les nouveaux barycentres 𝐠 𝐆𝟏, 𝐠 𝐆𝟐, et 𝐠 𝐆𝟑, puis
déduire les clusters obtenus
𝛀 𝐀𝟏 𝐀𝟐 𝐀𝟑 𝐁𝟏 𝐁𝟐 𝐁𝟑 𝐂𝟏 𝐂𝟐
𝐠 𝐆𝟏 0 5 8.49 3.61 7.07 7.21 8.06 2.24
𝐠 𝐆𝟐 5.66 4.12 2.83 2.24 1.41 2 6.4 3.61
𝐠 𝐆𝟑 6.52 1.58 6.52 5.7 5.7 4.53 1.58 6.04
𝐝(𝐠 𝐆𝟐 , 𝐀𝟐) = (𝟔 − 𝟐)𝟐 + (𝟔 − 𝟓)² = 𝟒. 𝟏𝟐
⋮
from math import *
import numpy as np
t=np.array([[2,10],[2,5],[8,4],[5,8],[7,5],[6,4],[1,2],[4,9]])
c_g=np.array([[2,10],[6,6],[1.5,3.5]])
l=[]
for c in c_g:
for i in t:
d=sqrt((i[0]-c[0])**2+(i[1]-c[1])**2)
l.append(round(d,2))
print(np.array(l).reshape(3,8))
G1= { 𝐀𝟏, C2 }
G2= { 𝐀𝟑, B1, B2, B3 }
G3= { 𝐀𝟐, C1}
14. Calculer les nouveaux barycentres 𝐠 𝐆𝟏, 𝐠 𝐆𝟐, et 𝐠 𝐆𝟑des groupes G1,G2 et G3 respectivement
𝟐 𝟒 𝟏𝟎 𝟗
𝐠 𝐆𝟏= {𝟐
, 𝟐 }= (3, 9.5)
𝟖 𝟓 𝟕 𝟔 𝟒 𝟖 𝟓 𝟒
𝐠 𝐆𝟐= { 𝟒
, 𝟒
}= (6.5, 5.25)
𝟐 𝟏 𝟓 𝟐
𝐠 𝐆𝟑= {𝟐
, 𝟐 }= (1.5, 3.5)
4/6
15. Calculer les distances entre les observations et les nouveaux barycentres 𝐠 𝐆𝟏, 𝐠 𝐆𝟐, et 𝐠 𝐆𝟑, puis
déduire les clusters obtenus
𝛀 𝐀𝟏 𝐀𝟐 𝐀𝟑 𝐁𝟏 𝐁𝟐 𝐁𝟑 𝐂𝟏 𝐂𝟐
𝐠 𝐆𝟏 1.12 4.61 7.43 2.5 6.02 6.26 7.76 1.12
𝐠 𝐆𝟐 6.54 4.51 1.95 3.13 0.56 1.35 6.39 4.51
𝐠 𝐆𝟑 6.52 1.58 6.52 5.7 5.7 4.53 1.58 6.04
8. Calculer les distances entre les observations et les nouveaux barycentres 𝐠 𝐆𝟏, 𝐠 𝐆𝟐, et 𝐠 𝐆𝟑, puis
déduire les clusters obtenus
𝛀 𝐀𝟏 𝐀𝟐 𝐀𝟑 𝐁𝟏 𝐁𝟐 𝐁𝟑 𝐂𝟏 𝐂𝟐
𝐠 𝐆𝟏 1.95 4.33 6.61 1.66 5.2 5.52 7.49 0.33
𝐠 𝐆𝟐 7.56 5.04 1.05 4.18 0.67 1.05 6.44 5.55
𝐠 𝐆𝟑 6.52 1.58 6.52 5.7 5.7 4.53 1.58 6.04
5/6
G1= { 𝐀𝟏, B1, C2}
G2= { 𝐀𝟑, B2, B3}
G3= { 𝐀𝟐, C1}
→Stabilisation des centroïdes
→Le processus s’arrête
9. Etant donnée les écarts 𝐞(𝐆𝟏, 𝐆𝟐)= 3.61 et 𝐞(𝐆𝟏, 𝐆𝟑)=4.24, est-ce que A1 est dans le bon groupe ?
Expliquer
𝐛(𝐢) 𝐚(𝐢)
𝐒(𝐢)=𝐦𝐚𝐱{𝐚(𝐢),𝐛(𝐢)}
Plus 𝐒(𝐢) est proche de 1, plus l’appartenance de l’observation 𝐢 est justifiée→l’observation 𝐢 est
dans le bon groupe
G1= { 𝐀𝟏, B1, C2}
𝐝(𝐀𝟏,𝐁𝟏) 𝐝(𝐀𝟏,𝐂𝟐) 𝟑.𝟔𝟏 𝟐.𝟐𝟒
𝐚(𝐀𝟏) = 𝟐
= 𝟐 =2.925
***
𝐞(𝐆𝟏, 𝐆𝟐)= 3.61 et 𝐞(𝐆𝟏, 𝐆𝟑)=4.24 alors G2 est plus proche à G1 que G3
G2= { 𝐀𝟑, B2, B3}
𝐝(𝐀𝟏,𝐀𝟑) 𝐝(𝐀𝟏,𝐁𝟐) 𝐝(𝐀𝟏,𝐁𝟑) 𝟖.𝟒𝟗 𝟕.𝟎𝟕 𝟕.𝟐𝟏
b(A1)= 𝟑
= 𝟑
=7.59
𝟕.𝟓𝟗 𝟐.𝟗𝟐𝟓
𝐒(𝐀𝟏)= 𝟕.𝟓𝟗
=0.614>0 et →1
6/6