Classification tabou basée en transferts∗ Alex Murillo-Fernández Javier Trejos-Zelaya† Programa de Investigación en Modelos y Análisis de Datos (PIMAD) Escuela de Matemática Universidad de Costa Rica 2060 San José, Costa Rica Tel.: (506) 207 5574, Fax.: (506) 207 4024 Abstract On propose una méthode de classification par partitions qui utilise la technique de la recherche tabou, basée sur les transferts, afin d’obtenir des classes bien séparées entre elles et les plus homogènes. L’algorithme proposé fait une recherche dirigée afin de trouver la partition optimale du critère de l’inertie intra-classes. On montre le fonctionnement de l’algorithme sur un exemple simple. Mots-clés: classification automatique, transferts, inertie intra-classes, optimisation combinatoire. 1 Introduction La classification automatique par partitions cherche la meilleure partition, en un nombre fixé de classes, d’un ensemble d’individus Ω, selon une fonction qui mesure l’adéquation de la partition. La fonction la plus utilisée dans le cas quantitatif est l’inertie intra-classes. Dans [7] et [5] nous expliquons les raisons de l’utilisation des “techniques modernes” d’optimisation dans le problème de partitionnement. Dans cet article, on propose une méthode de classification automatique par partitions, basée dans la méthode de transferts, en utilisant la technique combinatoire de la recherchetabou. F. Glover [3] a proposé, au début des années 70, une procédure heuristique de “haut niveau” appelée recherche tabou, qui est utilisée avec succès pour résoudre des problèmes d’optimisation. La recherche tabou se caractérise pour son habilité à échaper aux optima locaux. Généralement, les méthodes d’optimisation combinatoire possèdent deux phases importantes: une de construction et une autre d’amélioration; la recherche tabou s’insère dans la phase d’amélioration. La recherche tabou est une technique itérative qui se déplace, à chaque étape, d’un état s d’un problème d’optimisation combinatoire, vers un état s0 qui fournit la meilleure valeur de la fonction de coût f dans V ? , où V ? est un sous-ensemble d’un voisinage N (s) de s; f (s0 ) peut être meilleure ou non à f (s). Il existe deux différences essentielles entre une technique d’amélioration locale et la procédure expliquée précédemment. La première différence est le fait qu’on peut se déplacer vers un état s0 pire que l’état de départ s, et la deuxième différence est que l’ensemble V ? est celui qui guide la recherche tabou. Quelques aspects importants de la recherche tabou sont: 1. La recherche tabou fait une utilisation systématique de la mémoire, puisque du fait de pouvoir accepter des états pires s0 que les états de départ s, il peut avoir des cycles; on introduit donc un structure de mémoire telle qu’on interdise ou pénalise certains mouvements qui pourraient faire revenir le système sur un état visité récemment; ce sont ces mouvements qu’on appelle tabou. Cela conduit à une orientation générale de l’ensemble V ? , qui sera généré de façon contrôlée, non aléatoire. ∗ Recherche partiellement financée par l’Université du Costa Rica et le Conseil National pour les Recherches Scientifiques et Technologiques (CONICIT). † e-mail: [email protected] 2. Les contraintes tabou peuvent être violées dans certaines circonstances. Quand un mouvement tabou fournit un état meilleur que n’importe quel autre état visité, sa condition tabou peut être levée; ce critère est appelé critère d’aspiration. 3. Vu que la liste des mouvements tabous doit avoir une longueur finie, un mouvement reste tabou seulement pendant un certain nombre d’itérations, ce qui oblige à une stratégie d’oubli. 2 Recherche tabou d’une partition par transferts P Soit Ω un ensemble de n individus, notés xi et munis de poids positifs pi tels que i pi = 1, sur lesquels on a mesuré p variables quantitatives xj . On propose une méthode pour trouver une partition de Ω en k classes, basée sur la technique de la recherche tabou et qui utilise le principe des transferts de S. Régnier [6]. Si P = (C1 , . . . , Ck ) est une partition de Ω en k classes, alors l’inertie intra-classes de P est: W (P ) = k X X pi d2 (xi , g` ) `=1 i∈C` P où g` = µ1` xi ∈C` pi xi est le centre de gravité de la classe C` , µ` le poids de la classe C` , et d est une distance euclidienne. Un mouvement dans la recherche tabou sera le transfert d’un individu d’une classe dans une autre classe. Si P est la partition de Ω avant le mouvement et P 0 la partition après celui-ci, alors la valeur du mouvement est donnée par: ∆W = W (P ) − W (P 0 ). Tel que nous l’avons expliqué dans [5], on peut simplifier le calcul de ∆W de façon à avoir: ∆W = µ` · pi 2 µj · pi 2 d (g` , xi ) − d (gj , xi ). µ` + pi µj − pi où Cj est la classe de l’individu xi traité avant le transfert et C` est la classe après le transfert. De même, nous avons des expressions qui simplifient le calcul de l’inertie de la classe Cj et de la classe C` si le transfert est accepté, ainsi que le calcul des centres de gravité de ces classes modifiées. Les démonstrations de ces résultats peuvent être trouvées dans [4]. Les valeurs des mouvements fournissent un bon critère pour représenter la qualité d’un mouvement, même si on peut en utiliser d’autres. Pour modéliser le problème de partitionnement, on utilisera un vecteur de taille n, dont chaque entrée est un nombre entre 1 et k, qui représente la classe à laquelle appartient l’individu correspondant. L’initialisation de la méthode se fait aléatoirement, c’est-à-dire on affecte un nombre aléatoire entre 1 et k à chaque entrée du vecteur qui représente la partition P . Cependant, cette partition initiale peut aussi être fournie par un expert. On appelera le voisinage d’une partition P , l’ensemble de partitions générées à partir de P par un mouvement, c’est-à-dire, par le transfert d’un individu. On notera N (P ) le voisinage de P . Un mouvement sera appelé tabou s’il a été considéré dans une des m dernières itérations. Les dernières itérations induisent ainsi une liste tabou, dont la longueur est un des paramètres de l’algorithme. Si cette longueur est trop petite alors les cycles apparaitront, mais si elle est trop longue on serait peut-être contraint dans l’habilité désirée de monter les “vallées profondes”. On remarquera que dans l’algorithme, on introduit dans la liste tabou l’inertie intra-classes W (P ) au lieu de la partition P . En effet, la partition P1 = (2, 1, 1, 1, 1) est égale à la partition P2 = (1, 2, 2, 2, 2); vu que, pour des données réelles, il est très peu probable que l’on trouve deux partitions différentes avec la même inertie intra-classes, nous avons pris cette décision qui nous a donné d’excellents résultats. Un mouvement de N (P ) est admissible s’il n’est pas tabou ou bien si le critère d’aspiration élimine son statut tabou. V ? est l’ensemble de tous les mouvements admissibles de N (P ). Dans une itération, on choisit le meilleur mouvement P 0 de V ? et la liste tabou est actualisée avec la valeur de W (P ), même si W (P 0 ) > W (P ). L’algorithme fait des itérations jusqu’à un nombre maximal d’itérations donné par l’utilisateur. 4 3 2 1 • • • • • 1 2 3 4 5 Figure 1: Graphique des points à classifier. 2.1 Exemple simple d’exécution de l’algorithme On a construit un exemple simple pour ilustrer le fonctionnement de l’algorithme. Les données sont des points de IR2 : x1 = (1, 1), x2 = (2, 1), x3 = (4, 2), x4 = (5, 1) et x5 = (4, 4). Dans la représentation des points de la figure 1, on peut apprécier que la partition optimale en 3 classes serait: {x1 , x2 }, {x3 , x4 }, {x5 }. La longueur de la liste tabou est 5 et le nombre maximum d’itérations 10, mais ici on montre seulement les résultats des 4 premières itérations. Disons que la partition initiale, choisie aléatoirement, est (1, 1, 1, 1, 1). Itération Classification Inertie W 0 1 11111 1 1 ou 3 1 1 1 ou 1 3 1 1 ou 1 1 2 1 ou 1 1 1 2 ou 1 1 3.52 2.15 3.00 3.35 2.55 2.15 2 1 1 1 1 1 2 1 1 1 1 1 2 1 1 1 1 3 1 1 1 1 1 3 1 1 1 1 1 3 Est-il tabou? Meilleur admissible ∗ Le ∗ montre le meilleur mouvement admissible. Les vecteurs qui sont dans la deuxième colonne (celle de Classification) forment le voisinage de la partition initiale. On peut remarquer qu’il y a deux mouvements admissibles qui fournissent la meilleure valeur de l’inertie, et que les deux correspondent à la même partition. Itération Classification Inertie W 1 2 31111 11111 21111 3 2 1 1 1 ou 3 1 1 1 2 33111 31211 31311 31121 31131 31113 2.15 3.52 2.15 1.07 1.17 2.13 3.13 1.47 3.07 2.87 Est-il tabou? Meilleur admissible Oui Oui ∗ Dans cette itération il y a deux mouvements tabou, dont un est la partition de départ et l’autre est égal au dernier mouvement; cependant, il y a un autre mouvement qui améliore beaucoup l’inertie intra-classe. Itération Classification Inertie W 2 3 32111 12111 2 2 1 1 1 ou 3 3 1 1 1 31111 3 2 2 1 1 ou 3 2 1 1 2 3 2 3 1 1 ou 3 2 1 3 1 32121 32113 1.07 3.00 1.17 2.15 1.50 2.00 1.30 2.00 Est-il tabou? Meilleur admissible ∗ Oui Oui Dans cette itération on peut remarquer la différence entre l’algorithme proposé et un algorithme de descente, car on accepte un mouvement dont l’inertie (0.77) est plus grande que l’inertie du mouvement précédent (0.67). Ce mouvement sert à sortir de la vallée d’un minimum local et on continue la recherche dans une autre vallée. Itération Classification Inertie W 3 4 33111 13111 2 3 1 1 1 ou 3 2 1 1 1 31111 33211 33311 33121 33131 33112 33113 1.17 3.00 1.07 2.15 1.10 2.07 0.50 2.13 0.30 2.33 Est-il tabou? Meilleur admissible Oui Oui ∗∗∗ A partir de cette itération, on trouve l’optimum global, qui était connu dès le début. Cet optimum est signalé par ∗ ∗ ∗. algorihtmes génétiques. Ces résultats comprennent aussi une comparaison avec le méthode des nuées dynamiques et la classification hiérachique selon le critère de Ward. Nous avonc appliqué l’algorithme sur plusieurs tableaux de données, réels et simulés. Dans le tableau 1 on montre les résultats sur deux exemples, les poissons d’Amiard (matrice 23 × 16) et la sociomatrice de Thomas (matrice 24 × 24), pour 3, 4 et 5 classes. Ce tableau contient aussi les résultats obtenus avec d’autres méthodes que nous proposons (en utilisant le recuit simulé [5] et un algorithme génétique [7]), ainsi qu’avec la méthode des nuées (recherche d’une partition en 3,4 et 5 classes, selon le cas, qui sont représentées par leur centre de gravité, on faisant une initialisation aléatoire des noyaux) et la classification hiérarchique suivant le critère de Ward (coupure de l’arbre hiérarchique au niveau où on trouve 3, 4 ou 5 classes, selon le cas). # classes 3 classes 4 classes 5 classes RS 32213 18281 14497 Poissons d’Amiard RT AG MND 32213 32213 32213 18281 22456 28058 14497 20474 14497 CAH 33149 19589 14497 RS 271.83 235.03 202.58 Sociomatrice de Thomas RT AG MND 271.83 272.98 271.83 235.03 250.76 241.00 202.35 223.78 202.23 CAH 279.33 239.37 204.67 Tableau 1: Résultats de W pour le recuit simulé (RS), la recherche tabou (RT), l’algorithme génétique (AG), la méthode des nuées dynamiques (MND) et la classification hiérarchique selon Ward (CAH) On peut voir que les résultats sont les mêmes pour le recuit simulé et pour la recherche tabou, et que ceux–ci sont supérieurs à ceux de l’algorithme génétique. Cependant, sur le tableau des Iris de Fisher [4], on obtient des résultats supérieures pour le recuit simulé par rapport à la recherche tabou. 3 Conclusion Ce travail montre l’utilisation de la technique d’optimisation combinatoire appelée recherche tabou, dans un problème de classification automatique. Les résultats obtenus sont assez bons et semblent montrer l’habilité de la méthode proposée pour échapper des optima locaux. L’algorithme étudié élimine les cycles et peut accepter de mouvements qui font augmenter l’inertie intra-classes, afin d’accéder à des régions différentes pour éviter l’attraction des “vallées profondes”. Références [1] De los Cobos, S. (1994) La Técnica de la Búsqueda Tabú y sus Aplicaciones. Tesis Doctoral, Universidad Nacional Autónoma de México. [2] Diday, E.; Lemaire, J.; Pouget, J.; Testu, F. (1982) Eléments d’Analyse de Données. Dunod, Paris. [3] Glover, F.; Taillard, E. (1993) “Tabu search: an introduction”, Annals of Operations Research, 41(1-4): 1–28. [4] Piza, E.; Trejos, J.; Murillo, A. (1994–1996) Clasificación Automática: Particiones Utilizando Algoritmos Genéticos y de Sobrecalentamiento Simulado. Informes de Investigación PI-114-94-228, Universidad de Costa Rica, San Pedro. [5] Piza, E.; Trejos, J. (1996) “Partitionnement par recuit simulé”, communication proposée aux IV Journées de la Société Francophone de Classification, Vannes. [6] Régnier, S. (1965) “Sur quelques aspects mathématiques des problèmes de la classification automatique”, I.C.C. Bull., 4: 175–191. [7] Trejos, J. (1996) “Un algorithme génétique de partitionnement”, communication proposée aux IV Journées de la Société Francophone de Classification, Vannes.