Classes et partitions

Transcription

Classes et partitions
Chapitre 3
Classes et partitions
Ce premier chapitre, est la base de tous les modèles de classification vus dans cet
ouvrage. On y définit la notion de classe, de moyens de juger de la pertinence de
celles-ci et de les comparer deux à deux.
On définit ensuite un premier modèle de classification : les partitions. Après les
avoir comptées, on généralise les indices propres aux classes afin de mesurer la qualité
d’une partition donnée et de comparer des partitions entres elles.
Enfin, après s’être doté de moyens de reconnaissance d’une partition parmi l’ensemble des collections, on étudie divers problèmes visant à la création d’une classe ou
d’une partition optimisant un critère donné (à nombre de classes fixé essentiellement),
et on donne des algorithmes permettant de produire effectivement des partitions à partir de données euclidiennes ou décrites par une dissimilarité.
3.1. Qu’est-ce qu’une classe ?
Les plus simples des classifications sont sûrement celles qui se réduisent à une
seule classe. Elles se rencontrent lorsque l’on cherche à détecter, au sein d’une population, un (seul) groupement homogène et bien séparé du reste du monde. La recherche
d’une clique maximale dans un graphe est un parangon de ce genre de quête (l’usage
du mot clique en théorie des graphes provient d’ailleurs des réseaux sociaux, où il
est classique de rechercher des classes homogènes d’individus). Comme on le verra
en 3.7.1, elles apparaissent également lors de processus itératifs de construction de
partitions) : on détermine la classe la plus homogène, on supprime ses éléments et
l’on réitère (c’est ce que Hansen, Jaumard et Mladenovic (1995), appellent le sequential clustering).
87
88
Éléments de classification
De façon générale, les propriétés que l’on donne à une classe, appelés critères
de qualités vont induire les partitions que l’on va obtenir (pour les mêmes données,
les partitions peuvent changer du tout au tout selon que l’on cherche des classes satisfaisant tel ou tel critère). Il est donc nécessaire de se pencher sur les propriétés
intrinsèques des classes afin de comprendre les classifications obtenues et ne pas faire
de contre-sens lors de leurs interprétations.
Les critères de qualité d’une classe peuvent se ranger en deux grandes catégories :
– les critères d’homogénéités qui indiquent en quoi les éléments d’une même
classe se ressemblent,
– les critères de séparabilité qui indiquent en quoi les éléments d’une classe diffèrent des autres éléments.
On voit par là qu’il n’y a pas de réponse toute faite au choix d’une classe, tout
dépendant des données à classer et surtout du type d’interprétation que l’on veut faire
(si l’on cherche à obtenir un groupe très stable on préférera un critère de séparabilité
et si l’on cherche à obtenir un groupe d’objets partageant une propriété, on préférera
un critère d’homogénéité par exemple).
Après une revue rapide des propriétés algébrico-combinatoires des classes (c’està-dire des sous-ensembles de X), nous décrirons quelques indices permettant d’évaluer leur qualité, relativement à une dissimilarité d, ainsi que des moyens de comparer
des classes entre elles.
3.1.1. Premières propriétés
Ici une classe est n’importe quel sous-ensemble non vide de X. Il y a donc 2n − 1
n!
classes et Cnk = k!(n−k)!
classes à k ≥ 0 éléments. Ce dernier nombre est appelé
P
coefficient binomial. On a donc : 2n = 0≤k≤n Cnk . Cette inégalité est généralisée
P
par la formule du binôme de Newton : (x + y)n = 0≤k≤n Cnk xk y n−k .
L’exercice 3.1 rappelle quelques propriétés du coefficient binomial qui nous serons
utiles par la suite.
EXERCICE 3.1. Montrer que les coefficients binomiaux satisfont aux récurrences cidessous :
– Cnk = Cnn−k ,
k−1
k
– Cnk = Cn−1
+ Cn−1
,
n k−1
k Cn−1 ,
k+1
Cn−1 = Ckk +
– Cnk =
–
k
+ Cnk .
Ck+1
Classes et partitions
89
En ordonnant les classes par inclusion et en leur adjoignant l’ensemble vide, on
obtient le treillis de Boole de tous les sous-ensembles de X (l’exercice 3.2 précise
quelque peu ces relations).
EXERCICE 3.2. Montrer que les trois ensembles suivants sont en bijection :
– les classes de X avec k objets,
– les fonctions de X dans {0, 1} dont la somme des valeurs vaut k,
– les solutions à valeurs dans {0, 1} de l’équation : x1 + x2 + · · · + xn = k.
Le treillis que nous considérons est donc celui de l’ensemble 2X des parties de X
auquel on adjoint l’ensemble vide, ordonné par inclusion. La relation ∧ de ce treillis
est alors l’union ∪ entre classes et la relation ∨ l’intersection ∩ en classes. La relation
entre classes et treillis permet de définir des indices généraux sur les classes, indices
que nous particulariserons en 3.1.2, et d’en déduire des dissimilarités et distances entre
classes (voir 3.1.4 pour des exemples concrets).
Si (T, <) est un treillis (dans notre cas l’ensemble des classes auquel on adjoint
l’ensemble vide ordonné par inclusion), on dit qu’une fonction f à valeurs réelles,
strictement croissante est une :
– valuation supérieure lorsque : f (u) + f (t) ≥ f (u ∨ t) + f (u ∧ t),
– valuation inférieure lorsque : f (u) + f (t) ≤ f (u ∨ t) + f (u ∧ t),
– valuation lorsque : f (u) + f (t) = f (u ∨ t) + f (u ∧ t).
L’exemple le plus simple de valuation sur notre treillis des classes est la fonction
qui à chaque classe A ∈ 2X lui associe son cardinal f (A) = |A|.
A toute fonction f , strictement positive et strictement croissante, sont associées les
dissimilarités ci-dessous :
– δf+ (u, t) = 2f (u ∨ t) − f (u) − f (t),
– δf− (u, t) = f (u) + f (t) − 2f (u ∧ t),
– δf (u, t) = f (u ∨ t) − f (u ∧ t).
Ces dissimilarités permettent, dans le cadre des indices associés aux classes, à
partir de valuations (inférieures, supérieures, ou valuations tout court) sur les classes
d’en déduire des indices permettant de comparer les classes entres elles. L’exercice 3.3
montre les liens qu’entretiennent ces deux notions.
EXERCICE 3.3 (* Monjardet, 1981). Montrer que :
– f est une valuation supérieure si est seulement si δf+ est une distance (c’est-àdire vérifie l’inégalité triangulaire),
90
Éléments de classification
– f est une valuation inférieure si et seulement si δf− est une distance,
– f est une valuation si et seulement si δf est une distance.
Pour notre treillis des classes, en utilisant la valuation qui associe à chaque classe
son cardinal, la fonction δf (A, B) = f (A ∪ B) − f (A ∩ B) est alors une distance.
Cette fonction, souvent notée A∆B est la distance de la différence symétrique.
L’exercice 3.4 montre que les valuations entretiennent également des liens avec le
graphe de couverture de l’ensemble ordonné considéré.
EXERCICE 3.4. Si f est une fonction strictement croissante, définie sur le treillis (T, ≤
), et à valeurs réelles et si l’on value l’arête ut du graphe de couverture GT de T par :
f ∗ (ut) = |f (u) − f (t)|, on a (démontrer-le) le fait que :
– f est une valuation supérieure si et seulement si δf+ est la distance géodésique
de (GT , f ∗ ),
– f est une valuation inférieure si et seulement si δf− est la distance géodésique de
(GT , f ∗ ),
– f est une valuation si et seulement si δf est la distance géodésique de (GT , f ∗ ).
La différence symétrique est donc la géodésique du graphe de couverture de notre
treillis des classes. Pour une information complète sur les propriétés métriques des
ensembles ordonnés, on pourra consulter Monjardet (1981).
3.1.2. Quelques indices pour évaluer la qualité d’une classe
La partie précédente propose un cadre général, lié aux treillis, pour la gestion et la
création d’indices permettant de juger de la qualité d’une classe. Ces indices peuvent
alors être créés sans relation avec les structures sous-jacentes aux données (une dissimilarité dans notre cas), comme le cardinal par exemple.
Nous nous attacherons ici à décrire quelques indices, parmi les plus couramment
utilisés, en décrivant leur utilité dans un cadre classificatoire. On considérera toujours
que l’ensemble des objets X est décrit par une dissimilarité d.
Soit C ⊆ X. On définit :
– Le diamètre de C est la dissimilarité entre deux objets de C les plus éloignés :
diamd (C) = max{d(x, y)|x, y ∈ C}
Cet indice est un indice lié à l’homogénéité d’une classe, plus le diamètre est petit,
plus la classe est homogène.
Classes et partitions
91
– Le rayon de C est le minimum, calculé sur les objets de C de la distance maximum entre x et les autres objets de C :
rd (C) = min{max{d(x, y)|y ∈ C\{x}}|x ∈ C}
C’est également un indice lié à l’homogénéité d’une classe. Il est lié à un élément
particulier de la classe dont les autres objets doivent être proches. Il est donc moins
contraignant que le diamètre où tous les objets doivent être proches, mais permet des
classes où la distance entre deux objets peut être arbitrairement grande.
– La séparation de C est la dissimilarité minimale entre des objets les plus proches,
l’un étant dans C, l’autre en dehors :
sepd (C) = min{max{d(x, y)|y ∈ C}|x ∈
/ C}
Plus la séparation est grande, plus la classe se distingue des autres éléments.
– L’étoilement de C est la valeur minimale de la somme des dissimilarités entre un
objet de C et les autres objets de C :
½X
¾
et(C) = min
d(x, y)|x ∈ C
y∈X
Encore un indice lié à l’homogénéité d’une classe. C’est la version « somme » du
rayon.
– L’indice de clique de C est la somme des dissimilarités entre les éléments de C :
X
cl(C) =
d(x, y)
x,y∈C
Cet indice est la version « somme » du diamètre, c’est donc un indice d’homogénéité.
On le voit, la plupart des indices sont des indices d’homogénéités, seul un des
indices couramment utilisé est un indice lié directement à la séparation. Ces divers
indices ne vérifient pas nécessairement les conditions de la partie 3.1.1, cela dépend
de la dissimilarité associée (ainsi le diamètre est une fonction certes croissante sur le
treillis des classes, mais pas forcément strictement croissante. Le rayon, quant à lui,
n’est même pas forcément une fonction croissante).
Ces indices sont liés à divers problèmes qui apparaissent sous deux versions : problèmes de dissimilarités et problèmes de graphes. Dans ces questions on suppose que
les dissimilarités sont à valeurs entières (le lecteur remarquera que l’on peut toujours
se ramener à ce cas lorsqu’elles sont à valeurs rationnelles).
Prenons le graphe valué de la figure 3.1 et considérons que la dissimilarité associée
à deux éléments non reliés par une arête est 5. La classe C a alors un diamètre de 4,
un rayon de 3, une séparation de 1, un étoilement de 5 et un indice de clique de 14.
92
Éléments de classification
C
3
1
4
1
1
2
3
2
2
Figure 3.1. Un graphe valué et une classe C.
Lorsque les données sont décrites par un graphe non valué, on peut lui associer
une 2-distance par exemple. Dans ce cas particulier, le diamètre d’une classe C vaut 1
si C est une clique du graphe et vaut 2 sinon, son rayon vaut 1 si C admet un sommet
adjacent à tous les autres et sa séparation vaut 2 si C est une composante connexe du
graphe.
3.1.3. Cas particulier des distances euclidiennes
Le cas particulier où les données sont décrites par des variables numériques (partie 2.2.1) est d’importance dans les problèmes de partitionnement, car nombre de données sont de ce type. Les indices et mesures de ressemblances utilisés dans ce cadre
diffèrent quelque peu des indices et mesures générales dans la mesure où l’on peut
parler de centre de gravité d’un ensemble, et donc utiliser des notions géométriques
pour mesurer la qualité d’une classe.
On considérera dans cette partie que chaque donnée x de l’ensemble X est décrit
par m variables réelles (x1x , . . . , xm
x ). Par soucis de concision, on assimilera souvent
un élément x de X avec le vecteur de ses variables.
La distance la plus couramment utilisée dans ce cas est bien évidemment la distance euclidienne, issue de la norme L2 (partie 2.1.8) que nous noterons ici k.k.
Soit A un sous-ensemble de X. On notera g(A) le centre de gravité ou encore
barycentre le point :
µ
g(A) =
¶
1 X 1
1 X m
xx , . . . ,
xx
|A|
|A|
x∈A
x∈A
Classes et partitions
93
Les deux principales mesures de qualité d’une classes A sont alors son inertie et
sa variance.
L’inertie I(A) d’une classe est définie telle que :
I(A) =
1 X
kx − g(A)k2
|X|
x∈A
La variance V (A) de la classe A est alors la version « normée » de l’inertie, à
savoir :
1 X
V (A) =
kx − g(A)k2
|A|
x∈A
L’exercice 3.5 montre que l’on peut calculer l’inertie et la variance d’une classe,
même si les données ne sont pas euclidiennes, en remplaçant la distance euclidienne
par n’importe quelle autre dissimilarité sur X.
EXERCICE 3.5. Soit X un ensemble de données décrites par des variables numériques
et A un sous-ensemble de X. Montrer que si d(x, y) = kx − yk (d est la distance
euclidienne), on a les égalités suivantes :
I(A) =
X
1
(d(x, y))2
2|X|.|A|
x,y∈A
V (A) =
X
1
(d(x, y))2
2|A|2
x,y∈A
L’inertie et la variance d’une classe sont des indices d’homogénéité d’une classe,
plus ces indices sont petits, plus les éléments de la classe sont resserrés autour du
centre de gravité. Une bonne classe est donc ici une classe sphérique et de petit rayon,
le centre de la sphère étant le centre de gravité.
3.1.4. Comparaison de classes
Après avoir proposé des évaluations numériques relatives à la pertinence d’une
classe, nous allons maintenant aborder la question de la comparaison des classes deux
à deux. Sont-elles proches ? Sont elles-éloignées ? Cela revient à doter l’espace des
classes d’une dissimilarité, qu’on a coutume d’appeler mesures de ressemblances.
Plusieurs moyens de procéder sont à notre disposition. Le premier est de reprendre
les idées de la partie 3.1.1 et de définir une valuation à partir d’une fonction strictement
94
Éléments de classification
croissante de notre treillis des classes. C’est le cas de la distance de la différence
symétrique qui, rappelons-le, se définie pour deux ensembles A et B telle que :
A∆B = |A ∪ B| − |A ∩ B|
On peut rajouter divers indices, qui ne sont pas a priori des valuations, basés également sur la nature purement combinatoire des classes. Elles sont toutes basées sur
les éléments en commun entre deux classes (leur intersection) et/ou l’ensemble des
éléments présents dans l’une ou l’autre classe (leur union). Nous en listons ci-après
un certain nombre, parmi les plus utilisées. Pour deux sous-ensembles A et B de X
on peut définir la dissimilarité entre eux par :
–1−
|A∩B|
|A∪B|
–1−
|A∩B|
2|A∪B|−|A∩B|
(Jaccard (1901)),
|A∩B|
–1− √
|A|.|B|
(Sokal et Sneath (1963) , Anderberg (1973)),
(Ochiaï (1957), Driver et Kroeber(1932)),
–1−
2|A∩B|
|A|+|B|
–1−
|A∩B|
max{|A|,|B|}
(Braun-Blanquet (1932)),
–1−
|A∩B|
min{|A|,|B|}
(Simpson (1943)).
(Czekanowski (1913), Dice (1945)),
Les indices de Jaccard, Ochiaï, Dice, Braun-Blanquet et Simpson sont issus de
l’écologie, ceux de Czekanovski, Driver et Kroeber proviennent de l’ethnologie. L’indice de Sneath et Sokal s’inscrit dans le thème plus général de la taxonomie.
EXERCICE 3.6 ( Fichet et Le Calvé, 1984 ; Gower et Legendre, 1986). Montrer que
les indices de Jaccard, Sokal et Sneath, et Czekianovski-Dice peuvent s’écrire sous la
forme générique :
Dθ (A, B) =
avec θ = 1,
1
2
|A ∪ B| − |A ∩ B|
θ|A ∩ B| + |A ∪ B| − |A ∩ B|
et 2 respectivement.
EXERCICE 3.7 (Kuntz, 1992). Montrer que les dissimilarités Dθ induisent la même
préordonnance quelque soit θ ∈ R+ .
Lorsque les données sont décrites par une dissimilarité, on peut remplacer les valeurs absolues des indices ci-avant par une des mesures de qualité de la partie 3.1.2.
Il faut cependant faire attention aux effets de bord lorsque les indices choisis ne sont
pas strictement croissants (par rapport au treillis des classes). Lorsque les indices sont
Classes et partitions
95
croissants (comme l’indice de clique par exemple) la plupart du temps tout se passe
bien (le seul problème que l’on pourra rencontrer est que la dissimilarité sur les classes
obtenues ne sera pas propre), mais dans le cas d’indices comme le rayon, on peut se
retrouver avec des valeurs négatives. . .
Une littérature importance existe sur ces diverses mesures de ressemblance, et un
volume ne suffirait pas à citer l’ensemble des mesures de ressemblances de ce type.
Pour une vue générale des propriétés des mesures de ressemblance, n’hésitez pas à
consulter Kuntz (1992), Fichet et Le Calvé (1984) ou encore Batagelj et Bren (1995).
3.2. Partitions
3.2.1. Définitions
Une partition est une collection (voir partie 2.1.7) particulière de X.
DÉFINITION 3.1. Une partition P = {C1 , . . . , Cp } sur X est une collection de X
telle que :
– l’union des éléments de P soit égal à X ( ∪1≤i≤p Ci = X),
– pour tout 1 ≤ i 6= j ≤ p, Ci ∩ Cj = φ.
On désigne par PX (ou simplement par P lorsqu’il n’y a pas d’ambiguïté) l’ensemble de toutes les partitions de X.
Soit P une partition sur X de P. On notera R(P) la relation définie sur X × X
telle que xR(P)y si et seulement si il existe A ∈ P telle que x, y ∈ A est une relation
clairement :
– réflexive (xR(P)x pour tout x ∈ X),
– symétrique (si xR(P)y alors yR(P)x),
– transitive (si xRy et yR(P)z alors xR(P)z).
Cette relation est ainsi une relation d’équivalence et ses classes d’équivalence sont
exactement les éléments de P. Comme il est clair que les classes d’équivalence d’une
relation d’équivalence forment une partition (que l’on notera P(R)), l’ensemble des
partitions sur X et l’ensemble des relations d’équivalence sur X sont en bijection.
L’ensemble P des partitions peut également se voir sous la forme d’un treillis (Barbut, 1968 ; Monjardet, 1968). Pour cela, l’on définit un ordre ≤ sur P tel que pour deux
partitions P et P 0 sur X, P ≤ P 0 si et seulement si :
∀x, y ∈ X, xR(P)y ⇒ xR(P 0 )y
96
Éléments de classification
Si P ≤ P 0 , l’on dira que P est plus fine que P 0 ou encore que P 0 est plus grossière
que P. L’exercice 3.8 montre que cet ordre induit une borne inférieure et supérieure à
tout couple de partitions.
EXERCICE 3.8. Soit P et P 0 deux partitions sur X. Montrer que pour la relation
d’ordre ≤ sur P :
– P ∧ P 0 = {A ∩ B|A ∈ P, B ∈ P 0 }
– P ∨ P 0 est l’ensemble des parties connexes du graphe G = (X, E) défini tel que
xy ∈ E si et seulement si xR(P)y ou xR(P 0 )y.
Le plus petit élément du treillis des partitions sur X est alors la partition à |X|
éléments et le plus grand élément la partition à une seule classe. La figure 3.2 montre
le graphe de couverture du treillis des partitions à quatre éléments.
1
2
3
4
1
2
1
2
1
2
1
2
1
2
1
2
1
2
3
4
3
4
3
4
3
4
3
4
3
4
3
4
1
2
1
2
1
2
1
2
1
2
1
2
3
4
3
4
3
4
3
4
3
4
3
4
1
2
3
4
Figure 3.2. Le treillis des partitions à quatre éléments.
Calculer la borne inférieure et la borne supérieure de deux partitions sur X peut
se faire en O(|X|) opérations (Day, 1978). L’algorithme 8 permet de trouver la borne
inférieure de deux partitions P et Q sur X en O(|X|) opérations. Il est basé sur le fait
que l’on étudie les éléments de la partition P dans l’ordre, ce qui évite de parcourir
|X| fois l’ensemble des classes de P.
Classes et partitions
97
Trouver la borne supérieure de deux partitions P et Q sur X peut se faire en remarquant que si pour une classe C de P et une classe C 0 de Q on a C ∩ C 0 6= φ,
alors les éléments de C et les éléments de C 0 seront dans la même classe de la borne
supérieure. Trouver les classes de la borne supérieure revient alors à trouver les composantes connexes du graphe G = (P ∪ Q, E) tel que AB ∈ E si et seulement
si AP∈ P, B ∈ P
Q et A ∩ B 6= φ. Le nombre d’arêtes de ce graphe est borné
par A∈P |A| + B∈Q |B| = 2|X|. En représentant le graphe par l’ensemble des
couples formés des sommets et l’ensemble de ses voisins, le codage du graphe nécessite donc O(|X|) cases mémoires et de plus, ce codage peut être effectué, à partir des
partitions, en O(|X|) opérations.
Une fois le graphe créé, il suffit d’appliquer l’algorithme de Prim modifié de la
partie 2.1.6 pour déterminer l’ensemble des parties connexes du graphe en O(|X|)
opérations. La borne supérieure des deux partitions est alors l’union des classes de
chaque partie connexe (ce qui s’effectue également en O(|X|) opérations puisque P
et Q sont des partitions.
3.2.2. Compter les partitions
Le nombre de partitions en k classes de l’ensemble X est appelé, classiquement,
nombre de Stirling de seconde espèce. Nous le noterons S(n, k).
PROPOSITION 3.1. Les nombres de Stirling de seconde espèce vérifient la condition
de récurrence ci-dessous :
– S(n, k) = S(n − 1, k − 1) + kS(n − 1, k) (n, k ≥ 1),
– S(n, k) = 0 si k > n et S(n, 0) = 0.
Preuve. Soit x ∈ X, on peut obtenir une partition sur X, à partir d’une partition P
sur X\{x} de deux manières distinctes :
– Si P a k − 1 classes, on constitue la classe {x}. On obtient S(n − 1, k − 1)
partitions.
– Si P a k classes, on affecte x à l’une d’entre elles, on obtient ainsi kS(n − 1, k)
partitions.
D’où le résultat.
On peut donner des S(n, k) une expression exacte.
PROPOSITION 3.2 (Comtet, 1970a). On a : S(n, k) =
1
k!
P
j j
0≤j≤k (−1) Ck (k
− j)n .
98
Éléments de classification
Algorithme 8 Rend la partition P ∧ Q de deux partitions P et Q sur X.
début
i←0
pour chaque C ∈ Q
i←i+1
pour chaque x ∈ C faire Qclasse [x] ← i ; T [i] ← 0
fin (pour chaque)
i←0
nombre_classes ← 0
pour chaque C ∈ P
i←i+1
pour chaque x ∈ C
si T [Qclasse [x]] < i
alors
nombre_classes ← nombre_classes+1
T [Qclasse [x]] ← i ; T 0 [Qclasse [x]] ← nombre_classes
classe_finale[x] ← nombre_classes
fin (alors)
sinon faire classe_finale[x] ← T 0 [Q[x]]
fin (pour chaque)
fin (pour chaque)
pour chaque i de 1 à nombre_classes faire Ci ← φ
pour chaque x ∈ X faire Cclasse_finale[x] ← Cclasse_finale[x] ∪ {x}
rendre {C1 , . . . , Cnombre_classes }
fin
Preuve. Cette preuve est celle donnée par Comtet (1970a).
La démonstration s’appuie sur la formule du crible (qui se démontre aisément par
récurrence) : Si (A1 , A2 , . . . , Ap ) est une famille de sous-ensembles d’un ensemble A
on a :
X
|A1 ∪ A2 ∪ · · · ∪ Ap | =
(−1)|J|+1 | ∩j∈J Aj |
J⊆{1,2,...,p}
On pose [k] = {1, 2, . . . , k} et on considère l’ensemble E = [k]X de toutes les
fonctions de X dans [k] et le sous-ensemble F , de E, constitué de toutes les fonctions
surjectives. On sait que |E| = k n , par ailleurs, il est facile de vérifier que |F | =
k!S(n, k) (placer n objets dans k cases de façon à ne laisser aucune case vide). Pour
1 ≤ i ≤ k, on désigne par Bi l’ensemble des f ∈ E tels que, pour tout x ∈ X, f (x) 6=
i. On a alors F = (E\B1 ) ∩ · · · ∩ (E\Bk ). Appliquons la formule du crible, il vient :
Classes et partitions
99
P
|(E\B1 )∩· · ·∩(E\Bk )| = |E|−|B1 ∪· · ·∪Bk | = |E|− J⊆[k] (−1)|J|+1 |∩j∈J Bj |.
Il est clair que | ∩j∈J Bj | ne dépend que du nombre |J|. On a alors | ∩j∈J Bj | = |B1 ∩
B2 ∩ · · · ∩ B|J| |. Or B1 ∩ B2 ∩ · · · ∩ B|J| est l’ensemble des fonctions qui ne peuvent
atteindre que les valeurs de |J| + 1 à k. Donc : |B1 ∩ B2 ∩ · · · ∩ B|J| | = (k − |J|)n .
De là, comme |E| = k n , on a |E| − |B1 ∪ · · · ∪ Bk | = k n +
P
|J|
J⊆[k] (−1) (k
j
|J|)n ,P
et comme il y a Ck manièresPde prendre j éléments de [k], |E|−|B1 ∪· · ·∪Bk |
k n + 1≤j≤k (−1)j (k − j)n = 0≤j≤k (−1)j (k − j)n . D’où le résultat.
−
=
Les sommes mobilisées par les trois exercices ci-après sont appelées fonctions génératrices. Les fonctions génératrices constituent un outil essentiel en Analyse Combinatoire (Comtet 1970a). Elles permettent, en particulier, d’obtenir rapidement des
récurrences sur leurs coefficients ainsi que leur évaluation asymptotique (en faisant
appel à la théorie de fonctions analytiques, voir Comtet 1970a).
EXERCICE 3.9 (*). Montrer que
P
EXERCICE 3.10 (*). Montrer que
1) . . . (t − k + 1) et (t)0 = 0.
EXERCICE 3.11 (*). Montrer que
n
n≥k
S(n, k) tn! =
P
0≤k≤n
P
n≥k
1
t
k! (e
− 1)k .
S(n, k)(t)k = tn , avec (t)k = t(t −
S(n, k)tn−k =
1
(1−t)(1−2t)...(1−kt) .
Le nombre total de partitions sur notre ensemble
X à n éléments est appelé nombre
P
de Bell et est noté ω(n). On a donc ω(n) = 1≤k≤n S(n, k).
PROPOSITION 3.3 (Comtet, 1970a). Les nombres de Bell satisfont à la récurrence :
ω(0) = 1 (il y a exactement une partition de l’ensemble vide), et, pour n > 0
ω(n) =
X
k
Cn−1
ω(k)
0≤k≤n−1
Preuve. Pour n > 0, on considère un élément x de X et on pose Y = X\{x}. Soit
Z ⊆ Y ou Z = φ. On note PX [Z] l’ensemble des partitions de X dont la classe qui
contient x est Z ∪ {x}. Il est clair qu’on a une bijection entre PX [Z] et PY −Z . Par
ailleurs PX est l’union de tous les PX [Z], lorsque Z parcourt l’ensemble tous les sousensembles de Y (y compris l’ensemble vide). On a donc |PX | = ω(n) = |PX [φ]| +
P
[Z]|. Comme |PX [Z]| = |PY −Z | =Pω(n − 1 −
Z⊆Y |PXP
P|Z|), on a : ω(n) =
ω(n − 1) + Z⊆Y ω(n − 1 − |Z|) = ω(n − 1) + 1≤k≤n−1 |Z|=k ω(n − 1 − k) =
P
n−1−k
k
k
ω(n−1)+ 1≤k≤n−1 Cn−1
ω(n−1−k). Comme Cn−1
= Cn−1
(cf. exercice 3.1),
P
P
k
k
on a alors ω(n) = ω(n − 1) + 0≤k≤n−2 Cn−1
ω(k) = 0≤k≤n−1 Cn−1
ω(k).
100
Éléments de classification
n\k
1
2
3
4
5
6
7
8
9
1
1
1
1
1
1
1
1
1
1
2
1
3
7
15
31
63
127
255
8 9 ω(n)
1
2
1
5
6
1
15
25 10 1
52
90 65 15 1
203
301 350 140 21 1
877
966 1701 1050 266 28 1
4140
3025 7770 6951 2646 462 36 1 21147
3
4
5
6
7
Tableau 3.1. Les nombres de Stirling de seconde espèce et de Bell.
La table 3.1 donne les premières valeurs des nombres de Striling et des nombres
de Bell.
Les trois exercices suivant présentent quelques propriétés de ω(n).
EXERCICE 3.12 (*). Montrer,
P en utilisant l’exercice 3.9 que les nombres de Bell ont
pour fonction génératrice n≥0 ω(n)tn /n! = exp(et − 1). En déduire qu’ils sont
P
n
représentés par la série convergente ω(n) = k≥0 kk!
EXERCICE 3.13. Montrer que pour tout entier k > 0
n tend vers l’infini.
EXERCICE 3.14 (*). Montrer que, pour n infini,
ω(n)
ω(n+k)
ω(n+1)
ω(n)
a pour limite 0 lorsque
est équivalent à
n+1
log(n) .
3.3. Mesures de qualité et comparaisons de partitions
3.3.1. Quelques indices pour évaluer la qualité d’une partition
Pour mesurer la qualité d’une partition, on peut étendre les mesures de qualité
d’une classe de la partie 3.1.2. Pour cela deux moyens sont à notre disposition ; soit
considérer que la qualité de la partition est égale à la qualité la moins bonne de ses
classes, soit sommer les qualités des classes la constituant.
Toutes les combinaisons des cinq indices de qualité d’une classe de la partie 3.1.2
ne sont cependant pas utilisées en pratique, en particulier l’indice de séparation, nous
nous restreignons donc à cinq indices, parmi les plus utilisés.
Soit P = {C1 , . . . , Ck } une partition sur X. On définit :
– La somme des diamètres :
X
diamd (Ci )
fP diamd (P) =
1≤i≤k
Classes et partitions
101
– Le diamètre maximum :
fmax diamd (P) = max{diamd (Ci )|1 ≤ i ≤ k}
– La somme des indices de clique :
fP cld (P) =
X
cld (Ci )
1≤i≤k
– Le maximum des indices de clique :
fmax cld (P) = max{cld (Ci )|1 ≤ i ≤ k}
– La somme de l’étoilement :
fP etd (P) =
X
etd (Ci )
1≤i≤k
– Le maximum du rayon :
fmax rd (P) = max{rd (Ci )|1 ≤ i ≤ k}
Les indices de classe choisis, toutes liées à un critère d’homogénéité, montrent
qu’une partition sera d’autant meilleure que son critère de qualité sera petit. Une fois
un critère choisi, la meilleure partition sera donc celle réalisant le minimum de celuici.
Ceci pose un problème de taille, puisque c’est toujours la partition dont les classes
sont tous les singletons qui réalise le minimum. . . C’est pourquoi lorsque l’on cherche
une partition minimisant un critère de qualité, on a l’habitude de fixer le nombre de
classes.
3.3.2. Cas particulier des distances euclidiennes
La mesure de qualité la plus utilisée (car c’est celle de l’algorithme des k-means,
voir partie 3.6.5) est celle où l’on somme l’inertie de chaque classe de la partition.
C’est-à-dire que pour une partition P = {C1 , . . . , Ck } on a :
X
I(Ci )
fI (P) =
1≤i≤k
Cette mesure de qualité est appelée inertie intra-classe.
Un point remarquable de cet indice est que, bien que lié à l’homogénéité des
classes, il s’interprète également comme un critère lié à la séparation.
102
Éléments de classification
On peut en effet définir l’indice de l’inertie inter-classe comme étant, en utilisant
la norme L2 :
X |Ci |
fIB (P) =
kg(X) − g(Ci )k22
|X|
1≤i≤k
Cette quantité est un critère de séparabilité des classes. Plus l’inertie inter-classe
est grande, plus les classes sont séparées les unes des autres : la meilleure partition
selon ce critère est celle qui la maximise.
Montrons quePces deux critères coïncident. On utilisera pour cela le produit scalaire < x, y >= 1≤j≤m xjx xjy et l’égalité : kx + yk22 = kxk22 + kyk22 + 2 < x, y >.
I(X) =
1 X
kg(X) − xk22
|X|
x∈X
=
k
1 XX
kg(X) − g(Ci ) + g(Ci ) − xk22
|X| i=1
x∈Ci
=
k
1 XX¡
kg(X) − g(Ci )k22 + kg(Ci ) − xk22
|X| i=1
x∈Ci
+ 2 < g(X) − g(Ci ), g(Ci ) − x >
= fI (P) + fIB (P) +
¢
k
X
2 X
< g(X) − g(Ci ),
(g(Ci ) − x) >
|X| i=1
x∈Ci
= fI (P) + fIB (P) +
2
|X|
k
X
< g(X) − g(Ci ), 0 >
i=1
= fI (P) + fIB (P)
Cette égalité montre que minimiser l’inertie intra-classe revient à maximiser l’inertie inter-classe puisque l’inertie du nuage est constante quelque soit la partition choisie. Dans ce cas particulier, trouver une partition d’inertie intra-classe minimum
(maximisant d’homogénéité) et équivalent à trouver une partition d’inertie inter-classe
maximum (maximisant la séparabilité des classes).
3.3.3. Comparaison de partitions
Lorsque nous avons à notre disposition plusieurs partitions possibles pour résoudre
un même problème, il est crucial de pouvoir les comparer pour quantifier leurs différences et au mieux déterminer la (ou les) meilleure d’entre elles. Ce problème est
Classes et partitions
103
également présent lorsque l’on cherche à évaluer les résultats d’un algorithme de partitionnement. On cherche alors à évaluer les différences entre la partition « naturelle »
des données et la partition construite par l’algorithme à tester.
Plusieurs moyens sont à notre disposition. Le premier est bien sûr de les comparer
à l’aune d’un des indices de qualités de la partie 3.3.1. Cependant, l’indice à utiliser
n’est pas toujours clair, en particulier lorsque l’on doit comparer des partitions à une
partition « naturelle ».
On peut alors tenter d’évaluer la difficulté de passer d’une partition à l’autre, en
comptant le nombre de transformations élémentaires nécessaire pour passer d’une partition à l’autre. Day (1981) en cite quelques-unes qu’il évalue du point de vue de la
complexité de leurs mises en œuvre et de leurs résultats.
Parmi les transformations élémentaires, on peut citer :
– la suppression qui consiste à supprimer un sous-ensemble Y d’une classe C
(avec Y ( C) d’une partition sur X pour donner une partition sur X\Y ,
– l’insertion qui consiste soit à ajouter un ensemble Y à une classe d’une partition
sur X\Y , soit à considérer Y comme une nouvelle classe de la partition sur X\Y
pour donner une partition sur X,
– la division qui consiste en une suppression d’un sous-ensemble Y d’une classe
C d’une partition P puis en une insertion de Y comme nouvelle classe à P, P,
– l’agrégation qui consiste à unir deux classes différente d’une partition P,
– le transfert qui consiste en une suppression d’un sous ensemble Y d’une classe
C d’une partition P puis à l’insertion de Y à une classe C 0 (avec C 6= C 0 ) de P.
Parmi toutes les distances (on peut montrer que ce sont bien des distances) entre
partitions que l’on peut former à partir de ces transformations élémentaires, on peut
en citer deux :
– la distance des transferts qui correspond au nombre minimum de divisions,
d’agrégations et de transferts de singletons pour passer d’une partition à une autre,
– la distance de Boorman qui correspond au nombre minimum de divisions et
d’agrégations nécessaire pour passer d’une partition à une autre.
La distance des transferts, initialement proposée par Régner (1965) et Rubin
(1967), est clairement égale à la moitié de la distance définie comme étant le nombre
minium de suppressions et d’insertions de singletons pour passer d’une partition à une
autre. Elle peut, via la modélisation du problème comme un couplage d’un graphe biparti être calculée en O(|X|3 ) pour deux partitions sur X. Le problème du couplage
de graphes bi-parti est classique en optimisation combinatoire et peut être résolu par la
méthode hongroise (Kuhn, 1955 et 1956). On pourra, pour une étude détaillée, consulter Charon, Denoeud, Guénoche et Hudry (2006), ou Denoeud (2006).
104
Éléments de classification
D’après Boorman et Arabie (1972), la distance dite de Boorman a été utilisé pour
la première fois par Pavy, pour distinguer les comportements entre personnes schizophrènes et normales. Boorman et Olivier (1973) montrent que cette distance est en fait
issue d’une valuation du treillis des partitions (partie 3.1.1) et peut s’écrire (pour deux
partitions P et Q sur X) :
|P| + |Q| − 2|P ∨ Q|
Elle correspond à l’opposé de la formule δ + de la partie 3.1.1 car pour les partitions
on a toujours |P ∨ Q| ≤ min{|P|, |Q|}.
Lorsque l’on veut utiliser la borne supérieure de deux partitions, plutôt que d’utiliser la valuation du cardinal (ou plutôt son opposé pour les partitions), on utilise la
fonction π, qui compte le nombre de paires d’éléments classés dans la même classe
pour une partition P sur X. On a alors :
π(P) =
1 X
|C|(|C| − 1)
2
C∈P
Une distance possible entre deux partitions P et Q est alors :
π(P) + π(Q) − 2π(P ∧ Q)
Comme le calcul des bornes inférieures et supérieures de deux partitions s’effectue en
O(|X|) opérations, ces deux distances sont calculables en temps linéaire, ce qui les
rend appréciables.
Enfin, un dernier moyen de rendre compte des différences entre deux partitions est
de comparer les objets entre eux, c’est-à-dire s’ils sont placés dans la même classe
pour les deux partitions ou non. Encore une fois, ceci peut se faire de multiples manières, selon l’objectif poursuivi.
Puisqu’à chaque partition on peut associer une relation d’équivalence, on peut pour
deux partitions P et Q sur X déterminer la différence symétrique de leurs deux relations associées :
∆(P, Q) = R(P)∆R(Q)
Ce qui revient à compter le nombre de paires d’objets classés dans une classe par
une partition et dans deux classes distinctes dans l’autre. Ceci revient, en associant à
chaque partition P une 2-distance d[P] telle que d[P](x, y) = 1 si x et y sont dans la
même classe et d[P](x, y) = 2 sinon, à calculer calculer la norme L1 d[P] et d[Q] :
∆(P, Q) =
1 X
1
kd[P] − d[Q]k1 =
|d[P](x, y) − d[Q](x, y)|
2
2
x,y∈X
Classes et partitions
105
L’exercice 3.15 montre que la distance de la différence symétrique est égale à une
valuation sur le treillis des partitions vu précédemment.
EXERCICE 3.15. Montrer que pour deux partitions P et Q sur X, avec la fonction π
définie précédemment, on a :
∆(P, Q) = π(P) + π(Q) − 2π(P ∧ Q) = π(P ∨ Q) − π(P ∧ Q)
La différence symétrique n’est pas la seule mesure que l’on puisse étendre, via
les relations d’équivalence associées, des classes (partie 3.1.4) aux partitions. Pour
clarifier ce passage, précisons ce dont nous disposons :
– le nombre de paires d’éléments classées dans une même classe pour P et Q,
c’est-à-dire π(P ∧ Q) ou encore |R(P) ∩ R(Q)|,
– le nombre de paires d’éléments classés dans une même classe pour P mais
dans deux classes distinctes pour Q plus le nombre de paires d’éléments classés
dans une même classe pour P mais dans deux classes distinctes pour Q, c’est-à-dire
π(∆(P, Q)) ou encore R(P)∆R(Q),
– le nombre de paires d’éléments classés dans une même classe pour P ou Q,
c’est-à-dire π(P ∨ Q) ou encore |R(P) ∪ R(Q)|.
L’indice de Jaccard pour deux classes devient alors l’indice de Jaccard (1908)
entre partitions :
|R(P) ∩ R(Q)|
π(P ∧ Q)
1−
=1−
|R(P) ∪ R(Q)|
π(P ∨ Q)
L’indice d’Ochiaï devient alors l’indice de Wallace (1983) :
|R(P) ∩ R(Q)|
π(P ∧ Q)
1− p
=1− p
|R(P)|.|R(Q)|
π(P).π(Q)
Et l’indice de Czekanowski devient l’indice de Johnson :
|R(P) ∩ R(Q)|
π(P ∧ Q)
1−
=1−
|R(P)| + |R(Q)|
π(P) + π(Q)
Un autre indice communément utilisé est l’indice de Rand (1971) qui mesure le
pourcentage de paires où il y a accord entre les deux partitions (paires classées dans la
même classe ou dans deux classes distinctes pour les deux partitions). Pour que cette
mesure soit une distance, on utilise 1 moins l’indice de Rand, ce qui donne :
1−
π(P ∨ Q) − π(P ∧ Q)
(|X|(|X| − 1)/2 − π(P ∨ Q)) + π(P ∧ Q)
=
|X|(|X| − 1)/2
|X|(|X| − 1)/2
=
∆(P, Q)
|X|(|X| − 1)/2
106
Éléments de classification
Hubert et Arabie (1985) modifient cet indice car il n’est pas d’espérance nulle
lorsque l’on compare deux partitions aléatoires. Ils proposent donc un indice, communément appelé indice de Rand corrigé, d’espérance nulle. Cet indice est basé sur
π(P ∧ Q) d’espérance |π(P)|.|π(Q)|/(|X|(|X| − 1)/2) (les deux partitions sont supposées indépendantes). En normalisant l’indice pour qu’il soit égal à 0 lorsque les
partitions sont égales, on obtient :
1−
π(P ∧ Q) − π(P).π(Q)/(|X|(|X| − 1)/2)
(π(P) + π(Q))/2 − π(P).π(Q)/(|X|(|X| − 1)/2)
3.4. Reconnaissance
Comme tout modèle de classe de cet ouvrage, nous allons consacrer une petite
partie au problème de la reconnaissance. Comment savoir si une collection de parties
de X donnée est une partition ?
Ceci peut se faire facilement et rapidement (en O(|X|) opérations) par l’algorithme 9.
Il fonctionne de façon fort simple, puisqu’il commence par vérifier que chaque
élément de X ne se trouve que dans une seule classe, puis il vérifie que tout élément
de X est au moins dans une classe. La complexité de cet algorithme est alors en
O(|X|), puisque si un élément de X est trouvé deux fois, l’algorithme s’arrête et rend
une réponse négative.
Algorithme 9 Vérifie qu’une collection C de X est une partition.
début
pour chaque x ∈ X, marque(x) = Faux
pour chaque A ∈ C
pour chaque x ∈ A
si marque(x) = Vrai alors faire Rendre Faux sinon faire marque(x) ← Vrai
fin (pour chaque)
fin (pour chaque)
pour chaque x ∈ X
si marque(x) = Faux alors faire Rendre Faux
fin (pour chaque)
rendre Vrai
fin
Classes et partitions
107
3.5. Trouver une classe optimale
Les cinq indices de qualité d’une classe de la partie 3.1.2 (diamètre, rayon, séparation, étoilement et indice de clique) induisent des problèmes d’optimisation consistant
à trouver une classe minimisant (ou maximisant si l’indice est un indice de séparation)
un indice donné. Nous allons ici expliciter, pour les cinq indices, les problèmes d’optimisation qui leurs sont liés ainsi que les problèmes de décision associés. On supposera
donc toujours que les objets de X sont décrits par une dissimilarité d.
Après avoir déterminé la nature combinatoire du problème (polynomial ou NPcomplet) nous donnerons soit un moyen de le résoudre (dans le cas de problèmes polynomiaux), soit une technique possible de résolution heuristique (pour les problèmes
NP-complets).
Nous appuierons les démonstrations de NP-complétude sur des problèmes connus
et reconnus NP-complet.
Pour tous les indices choisis il est nécessaire de fixer a priori une taille minimale
pour la classe recherchée, sinon les singletons deviennent solutions optimales et évidentes vidant ainsi le problème de sa substance.
3.5.1. Diamètre
On rappelle que le diamètre d’une classe C ⊆ X pour une dissimilartié d est :
diamd (C) = max{d(x, y)|x, y ∈ C}
Le problème d’optimisation associé à la recherche d’une classe minimisant le diamètre est :
N OM : Diamètre (D IAM).
E NTRÉE : Un ensemble X, une dissimilarité d sur X, un entier k.
R ECHERCHE : Un sous-ensemble possédant au moins k éléments de X
de diamètre minimum.
La version décisionnelle de D IAM (existe-t-il un ensemble de taille plus grande
que k de diamètre inférieur à α) est NP-complète puisqu’elle peut se réduire au problème de décision C LIQUE ci-après, qui fait partie de la première vague des problèmes
reconnus NP-complets (Karp, 1972 ; Garey et Johson, 1979).
108
Éléments de classification
N OM : Clique (C LIQUE).
E NTRÉE : Un graphe G, un entier k.
Q UESTION : Existe-t-il une clique de taille au moins k dans G ?
Il suffit pour cela de considérer une dissimilartié d telle que d(x, y) = 1 si xy n’est
pas une arête du graphe G et d(x, y) = ² (avec 0 < ² < 1) sinon. Il n’existe alors une
clique de taille supérieure à k que si et seulement si le diamètre minium est strictement
inférieur à 1.
Pour résoudre ce problème, on peut se placer dans le cadre du problème C LIQUE,
et rechercher pour tous les graphes seuils de la dissimilarité une clique de taille supérieure ou égale à k. Parmi les cliques trouvées, il suffira de prendre celle de diamètre
minimum (c’est-à-dire celle correspondant au graphe seuil le plus petit).
La complexité de cet algorithme dépendra de la complexité de l’algorithme A
utilisé pour rechercher les cliques dans les graphes seuils. Trouver le bon seuil pouvant
se faire de façon dichotomique sur les valeurs de la dissimilarité, la complexité totale
de l’algorithme sera en O(n2 log(n) + log(n).C(A)), le premier terme correspondant
au tri des valeurs de la dissimilartié et le deuxième à la découverte du seuil minimum.
Sauf miracle, la complexité d’un tel algorithme sera donc en O(log(n).C(A)).
Le problème C LIQUE étant NP-complet, la résolution exacte de ce problème ne
peut utiliser que la force brute (l’énumération des différentes cliques), ou l’utilisation
de méthodes dites de branch and bound (séparation et évaluation) qui permettent de
réduire un tant soit peu l’espace de recherche. Hansen, Jaumard et Mladenovic (1995)
notent que des méthodes de ce type semblent assez efficaces en pratique, tout du moins
lorsque n ≤ 100. Nous ne nous étendrons pas plus sur ces méthodes qui dépassent la
portée de cet ouvrage.
L’algorithme 10 énumère toutes les cliques maximales d’un graphe (Barthélemy
et Guénoche, 1991), et permet par là de résoudre C LIQUE. Il a l’avantage d’être générique pour tout problème de classification fondé sur la recherche de telles cliques.
Nous déconseillons cependant au lecteur de le tenter au-delà d’une vingtaine d’objets,
le temps de calcul risquant d’être prohibitif.
Le thème de l’énumération des cliques maximales d’un graphe est apparu dans
les années 1950 à propos des réseaux sociaux (Harary et Ross, 1957, utilisaient une
méthode matricielle), puis dans le champ des sciences de l’ingénieur (Paull et Unger,
1959). De nombreux algorithmes y furent ensuite consacrés. Citons parmi eux : Bron
et Kelbosh, (1973), Reingold, Nievergelt et Deo (1977), Giraud (1982).
La figure 3.3 montre le déroulement de l’algorithme pour un graphe particulier.
L’ensemble C est représenté par des patates en pointillées.
Classes et partitions
109
Algorithme 10 Énumération des cliques maximales d’un graphe G = (X, A) dans un
ensemble C.
début
On numérote les éléments de X tels que {x1 , . . . , xn } = X
On note Xi = {xj |j > i; xi xj ∈ E} ∪ {xi }
C = {X1 }
de i = 2 à i = n − 1
si Xi n’est pas inclus dans un élément de C
alors C ← C ∪ {Xi }
pour chaque A ∈ C tel que xi ∈ A
si il existe y ∈ A tel que xi y ∈
/E
alors
si A\{xi } n’est pas inclus dans un élément de C\{A}
alors faire C ← C ∪ {A\{xi }}
A0 ← {y|xi y ∈ E; y ∈ A} ∪ {xi }
si A0 n’est pas inclus dans un élément de C\{A}
alors faire C ← C ∪ {A0 }
C ← C\{A}
fin (alors)
fin (pour chaque)
fin (de à)
si xn n’est pas inclus dans un élément de C
alors faire C ← C ∪ {xn }
fin
Le problème D IAM possède cependant des instances polynomiales. Par exemple
lorsque les objets sont des points de R2 et que la distance utilisée est la distance
euclidienne. Aggarwal, Imai, Katoh et Suri (1991) proposent ainsi un algorithme en
O(nk 2,5 log(k)+n log(n)) opérations pour le résoudre en utilisant des diagrammes de
Voronoï d’ordre 3k−3 (Shamos et Hoey, 1975 et Lee 1982 pour un premier algorithme
dans le plan).
3.5.2. Rayon
On rappelle que le rayon d’une classe C ⊆ X pour une dissimilartié d est :
rd (C) = min{max{d(x, y)|y ∈ C}|x ∈ C}
Le problème d’optimisation associé à la recherche d’une classe minimisant le
rayon est :
110
Éléments de classification
2
2
4
4
1
1
3
3
Þn de l'Žtape d'initialisation
graphe de dŽpart
2
2
4
4
1
1
3
3
Þn de l'Žtape i=2
Þn de l'Žtape i=3
Figure 3.3. Déroulement de l’algorithme 10.
N OM : Rayon (R AY).
E NTRÉE : Un ensemble X, une dissimilarité d sur X, un entier k.
R ECHERCHE : Un sous-ensemble d’au moins k éléments de X
de rayon minimum.
Lorsque la dissimilarité est décrite par un graphe plutôt que par une dissimilarité,
le problème R AY – qui a toujours un sens puisqu’il suffit de remplacer le graphe dans
la description du problème par sa 2-distance associée – est particulièrement simple,
puisqu’il s’agit de déterminer un sommet de degré au moins k − 1 et k − 1 de ses
voisins (si un tel sommet n’existe pas, tout sous-ensemble à k sommets est de rayon
2). Il suffit donc, en pratique, de trouver un sommet de degré maximum ainsi que
l’ensemble de ses voisins. Cette recherche peut être effectuée (au pire) en O(n2 ).
On peut alors, de même que pour le problème D IAM considérer tous les graphes
seuils de d et choisir le graphe ayant le seuil minimal tel qu’il existe un sommet de
Classes et partitions
111
degré k−1 ou plus. Enfin, un tri des paires d’objets par dissimilarité croissante permettra, en engendrant les graphes seuils par dichotomie sur les valeurs de d, de résoudre
Ray en O(n2 log(n)).
3.5.3. Séparation
La séparation d’une classe C ⊆ X pour une dissimilarité d est :
sepd (C) = min{min{d(x, y)|y ∈ C}|x ∈
/ C}
Cet indice étant un indice de séparabilité, le problème associé cherchera à maximiser la séparation d’une classe.
N OM : Séparation (S ÉP).
E NTRÉE : Un ensemble X une dissimilarité d sur X, un entier k.
R ECHERCHE : Un ensemble de sommets de taille au moins k et
de séparation maximum.
Lorsque les données sont décrites par un graphe, le problème devient :
N OM : Classe connexe (C LAS C ONN).
E NTRÉE : Un graphe G, un entier k.
R ECHERCHE : G admet-il une classe connexe de G, de taille au moins k ?
Le problème ClasConn est un des grands classiques de la théorie des graphes et
peut être aisément résolu en temps polynomial (voir partie 2.1.6).
D’après Hansen Jaumard et Mladenovic (1995), il semble que les premiers à poser
le problème S ÉP furent Hsu et Nemhauser (1979), pour la localisation d’un service.
Dans ce contexte ils ont élaboré un algorithme en O(n2 log(n)). Chang, Tang et Lee
(1991) ont amélioré ce résultat avec un algorithme en O(n2 ).
Nous allons ici résoudre ce problème en utilisant une technique similaire à celle
utilisée par Chang, Tang et Lee (1991). Pour cela, on utilisera une propriété due à
Rosenstielh (1967) et redécouverte par Chang, Tang et Lee (1991).
PROPOSITION 3.4 (Rosenstiehl, 1967). Soit d une dissimilarité et T = (X, A) un de
ses arbres de poids minimum. Pour tout C ⊆ X, on a :
sepd (C) = min{d(x, y)|xy ∈ A; x ∈ C; y ∈
/ C}
112
Éléments de classification
Preuve. Soit x∗ y ∗ une arête de T telle que d(x∗ , y ∗ ) = min{d(x, y)|xy ∈ A; x ∈
C; y ∈
/ C}. On note de plus u∗ et v ∗ deux éléments de C et X\C respectivement, tels
que sepd (C) = d(u∗ , v ∗ ).
La classe C est l’union de parties connexes de T . On note alors C ∗ la partie
connexe contenant u∗ . Si d(u∗ , v ∗ ) < d(x∗ , y ∗ ), toutes les arêtes xy de T telles que
x ∈ C et y ∈
/ C sont telles que d(x, y) ≥ d(x∗ , y ∗ ). En rajoutant l’arête u∗ v ∗ à T
on crée un cycle qui peut être supprimé en enlevant une arête xy différente de u∗ v ∗ et
telle que x ∈ C ∗ , y ∈
/ C ∗ . L’arbre ainsi obtenu est de poids strictement inférieur à T
ce qui est impossible.
La proposition 3.4 nous donne ainsi les différentes valeurs possibles des séparations, ce sont celles des arêtes d’un arbre de poids minimum. De là, en supprimant de
T toutes les arêtes de même valeur α, une classe C de taille maximum et de séparation
égale à α est l’ensemble X auquel on a supprimé les éléments d’une classe connexe
du graphe obtenu de taille minimale.
Un algorithme permettant de résoudre S ÉP est alors le suivant. On commence
par construire un arbre de poids minimum T de d (ce qui peut se faire en O(n2 ),
et on trie ses arêtes par valeurs décroissantes (en O(n log(n)). On considère alors
itérativement ces valeurs et on supprime de T toutes les arêtes de poids supérieur à
celle considérée. Lorsqu’il existe dans le graphe obtenu une composante connexe de
taille inférieure à n − k, on s’arrête. La complexité de cet algorithme est alors de
O(n2 + n log(n) + nC(A)) où C(A) est la complexité de l’algorithme A permettant
de trouver une composante connexe d’un graphe de taille minimale.
L’algorithme permettant de trouver les composantes connexes de la partie 2.1.6
étant de complexité égale au nombre d’arêtes du graphe, en l’appliquant à nos données
sa complexité sera en O(n) (puisque T possède n − 1 arêtes, la somme des degrés des
graphes considérés est au plus égale à 2(n−1)) qui permet de trouver une composante
connexe de taille minimale. La complexité totale de notre algorithme résolvant S ÉP
est en O(n2 ).
3.5.4. Étoilement
L’étoilement d’une classe C ⊆ X pour une dissimilarité d est égal à :
X
etd (C) = min{
d(x, y)|x ∈ C}
y∈C
Le problème associé est alors :
Classes et partitions
113
N OM : Étoilement (É T).
E NTRÉE : Un ensemble X, une dissimilarité d sur X, un entier k.
R ECHERCHE : Un sous-ensemble d’au moins k éléments,
d’étoilement minimum.
Il peut se résoudre exactement de la même manière que le problème R AY, en sommant les k − 1 plus petites valeurs de d(x, y) à x fixé. L’algorithme ainsi modifié a la
même complexité, c’est-à-dire O(n2 log(n)).
3.5.5. Indice de clique
L’indice de clique d’une classe C est :
cld (C) =
X
d(x, y)
x,y∈C
Le problème lié s’énonce comme suit :
N OM : Indice de Clique (C LIND).
E NTRÉE : Un ensemble X une dissimilarité d sur X, un entier k.
R ECHERCHE : Un sous-ensemble de de taille au moins k,
d’indice de clique minimum.
Ce problème est NP-difficile, la version décision de celui-ci (trouver une classe à
au moins k éléments d’indice de clique inférieur à un réel α donné) se réduisant au
problème C LIQUE.
La méthode de réduction utilisée est identique à celle du problème D IAM. Il suffit
de considérer une dissimilarité d telle que d(x, y) = 1 si xy n’est pas une arête du
1
) sinon. Il n’existe alors une clique de
graphe G et d(x, y) = ² (avec 0 < ²2 < n(n−1)
taille supérieure à k que si et seulement la variance ou l’indice de clique est strictement
inférieur à 1.
Hansen, Jaumard et Mladenovic (1995) remarquent que si l’on cherche une classe
à k éléments exactement, ce que l’on peut faire sans perte de généralité, le problème
C LIND peut se réduire à un problème du sac à dos quadratique (Gallo, Hammer et
Simone, 1980), que l’on peut résoudre par des méthodes de branch and bound.
114
Éléments de classification
3.5.6. Inertie et variance
Les indices d’inertie et de variance de la partie 3.1.3 peuvent s’écrire (exercice
3.5) :
X
1
(d(x, y))2
Vd (C) =
2
2(|C|)
x,y∈C
et
Id (C) =
X
1
(d(x, y))2
2(|X||C|)
x,y∈C
Les deux problèmes liés sont :
N OM : Variance (VAR).
E NTRÉE : Un ensemble X une dissimilarité d sur X, un entier k.
R ECHERCHE : Un sous-ensemble de taille au moins k, de variance minimum.
N OM : Inertie (I NER).
E NTRÉE : Un ensemble X une dissimilarité d sur X, un entier k.
R ECHERCHE : Un sous-ensemble de taille au moins k, d’inertie minimum.
Ces deux problèmes sont NP-difficiles, la version décision de leurs problèmes se
réduisant de la même manière que le problème C LIND au problème C LIQUE. On peut
alors, de même que C LIND les résoudre par des méthodes de branch and bound.
Lorsque les données sont des points d’un espace Rp et que la distance utilisée est
la distance euclidienne, Aggarwal, Imai, Katoh et Suri (1991) ont montré que I NER
et VAR, lorsque l’on recherche des ensembles de taille k exactement, sont polynomiaux, et peuvent être résolus par l’utilisation de diagrammes de Voronoï d’ordre k
(Lee, 1982). Parmi les O(kn) éléments d’un diagramme de Voronoï d’ordre k il suffit de prendre un élément d’inertie minimum. Comme le nombre d’opérations pour
la création d’un tel diagramme peut être borné par O(np+1 ) (des bornes plus petites
sont possibles, voir par exemple Boissonat, Devilliers et Teillaud 1990, mais elles
sont toutes en O(nap ) avec a ∈ R à notre connaissance) ce problème est polynomial
à dimension fixée.
3.6. Trouver une partition optimale
De même que pour la partie précédente, nous allons ici poser le problème de la
recherche d’une partition optimisant les indices de qualité d’une partition de la partie 3.3.1.

Documents pareils