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.