PROCEDE DE CLASSIFICATION NON SUPERVISEE LINEAIRE ET STABLE SUR L'ORDRE DES OBJETS
L'invention concerne un procédé de classification non supervisée linéaire et stable sur l'ordre des objets.
Elle concerne de manière plus générale des techniques de classifications automatiques connues sous le terme anglais « clustering ».
Elle est notamment utilisée dans les domaines du « Data Mining » et du
« Text Mining » pour la découverte, sans a priori, de connaissances (ou « knowledge discovery ») dans de grandes bases de données. Ces données peuvent être de type structuré lorsqu'il s'agit de données comportementales ou démographiques par exemple, ou de type non structuré lorsqu'il s'agit de données textuelles.
Partant d'une base de données constituée d'un ensemble (ou population) de n objets décrits par un ensemble de m descripteurs (ou variables), la classification automatique consiste à structurer ces objets sous forme de classes (ou groupes) très homogènes. Cette homogénéité traduit le fait que deux objets d'une même classe doivent être plus similaires (ou ressemblants) entre eux que deux objets appartenant à deux classes distinctes. La constitution de ces classes permettra de détecter facilement des groupes d'objets à profils ou thématiques similaires selon qu'il s'agisse de données structurées ou non structurées.
Ce problème est hautement combinatoire pour être résolu par une méthode exacte. A cet effet, des heuristiques moins coûteuses en temps de traitements et en ressources machines ont été élaborées pour lui trouver des solutions approchées.
Certaines de ces heuristiques proposent des solutions en fixant arbitrairement le nombre de classes, tandis que d'autres, proposent une hiérarchie de partitions à nombre variable de classes. On peut citer, par exemple, les heuristiques suivantes :
® Les méthodes de type « centres mobiles » tels que les « k-means », les nuées dynamiques...
• Les méthodes de classification hiérarchiques (ascendantes ou descendantes)
• Les méthodes de type « premier représentant » ou en anglo-saxon « first leader » .
Des exemples pour différentes méthodes de classification non supervisée sont données dans les références suivantes : 1 ) Saporta G. (1990),
Probabilités, Analyse de données et Statistique, Technip ; 2) Lebart et al (1995),
Statistique exploratoire multidimensionnelle, Dunod ; 3) Hartigan, J. (1975),
Clustering Algorithme, John Wiley and Sons, New York, NY, US.
Les méthodes de type « centres mobiles » et classification hiérarchique fixent arbitrairement un nombre de classes. Quant aux méthodes de type « first leader », elles nécessitent la fixation d'un seuil de similarité et sont tributaires de l'ordre dans lequel les objets sont pris en compte. En effet, elles peuvent aboutir à des résultats complètement différents selon l'ordre dans lequel les objets sont rangés. Néanmoins, elles permettent de traiter, dans des temps raisonnables, de grandes quantités de données. Cependant, pour obtenir ces performances, ces méthodes nécessitent la fixation d'un nombre maximal de classes très faible par rapport au nombre d'objets.
Parmi les problèmes majeurs rencontrés, pour répondre au problème de la classification automatique, on peut citer :
• la détermination du nombre de classes sous-jacent à la population considérée,
® les performances en temps de traitements selon les volumétries à traiter et en terme de qualité de l'homogénéité des classes obtenues,
• le pouvoir d'interprétation des résultats obtenus ; définition d'indicateurs statistiques pour la mesure de l'homogénéité des classes ainsi que du pouvoir discriminant des descripteurs participants à la formation de ces classes.
L'idée de la présente invention repose notamment sur la théorie de l'analyse relationnelle. Pour rappel, cette théorie, telle que décrite dans l'une des références suivantes : 1) P. Michaud et JF Marcotorchino, « Modèles d'optimisation en analyse de données relationnelles », Mathématiques et Sciences Humaines n°67,
1979, p7-38 ; 2 ; JF Marcotorchino et P Michaud, « Agrégation des similarités en classification automatique », Revue de statistique appliquée, Vol 30, n°2, 1981 , permet de répondre aux problématiques de la fixation du nombre de classes et de l'interprétation du résultat obtenu. Cependant le modèle théorique sous-jacent, est extrêmement coûteux en terme de ressources machine dès que le nombre d'objets est supérieur à 100. L'invention utilise une heuristique de cette théorie qui permet d'approximer très finement le résultat théorique sur de grandes bases de données.
L'invention concerne un procédé de classification non supervisée linéaire permettant de structurer une base de données composée d'objets et de descripteurs, qui est stable sur l'ordre des objets comprenant une étape préalable de transformation des données qualitatives, quantitatives ou textuelles en données binaire de présence-absence caractérisé en ce qu'il comporte au moins les étapes suivantes : a) déterminer un seuil structurel as fonction des n2 accords entre les objets à classifier, le seuil structurel définissant un critère d'optimisation adapté aux données, b) utiliser les descripteurs comme générateurs de structuration et de construction d'une partition P ou ensemble de classes, c) fusionner progressivement une classe engendrée par un descripteur et une partition (40, 41 , 42), d) pour un critère d'optimisation faisant intervenir une fonction f(Çn,CιV) = Min(Cπ,CιY) linéariser des sommes de fonctions Minimums.
Le procédé peut comporter une étape où l'on regroupe les classes de la partition entre elles.
L'étape de fusion c) comporte, par exemple, une étape où l'on détermine à partir de deux classes en intersection la meilleure opération (au sens de l'optimisation du critère) parmi les 4 suivantes :
• « Cassage » de la première classe et formation de deux classes; • « Cassage » de la deuxième classe et formation de deux classes;
• « Cassage » des deux classes pour former trois classes ;
• Réunion des deux classes en intersection pour former une unique classe.
Le regroupement des classes d'une partition est, par exemple, effectué sur plusieurs niveaux hiérarchiques et comporte les étapes suivantes :
• diminuer à chaque niveau la valeur du seuil structurel de sorte que les contributions faiblement négatives puissent devenir positives,
® maximiser des liens entre les classes constituées où les liens sont déterminés en utilisant la contribution d'une paire d'objets Lien(Cq , Cq, )= ∑ ∑ Contrib,,, = ∑ ∑ Cn, - α'x/(C,; , C1,,,) içCqi'≡Cq' l≡Cqi'≡Cq' avec α' Ia nouvelle valeur de a
® regrouper deux classes dont le lien est positif, et réitérer ce processus sur tous les niveaux.
L'invention concerne aussi un dispositif de classification non supervisée linéaire permettant de structurer une base de données composées d'objets et de descripteurs, qui est stable sur l'ordre des objets comprenant une étape préalable de transformation des données qualitatives, quantitatives ou textuelles en données binaires de présence-absence caractérisé en ce qu'il comporte au moins les éléments suivants : un calculateur comprenant une mémoire, une base de données et un processeur adapté à mettre en œuvre les étapes du procédé présentant l'une des caractéristiques précédemment énoncées.
L'invention possède notamment les avantages suivants :
• la possibilité de détecter automatiquement le nombre de classes au cours du classement,
• la possibilité de traiter de grandes quantités de données dans des temps raisonnables,
® l'indépendance vis à vis de l'ordre des objets de la base. Elle est naturellement stable vis à vis de l'ordre de traitement des objets, • le procédé permet de définir et de calculer très rapidement (complexité linéaire) des indicateurs mesurant la qualité des résultats obtenus,
• le procédé est stable vis à vis de la duplication des objets. En d'autres termes, si on démultiplie la base plusieurs fois, on retrouve la même solution initiale avec les objets dupliqués au sein d'une même classe.
D'autres caractéristiques et avantages de la présente invention apparaîtront mieux à la lecture de la description ci-dessous et annexée des figures qui représentent :
• La figure 1 , un schéma correspondant à un système générique d'un système supportant le procédé selon l'invention,
• La figure 2, un schéma fonctionnel décrivant le fonctionnement général de la chaîne de traitement du domaine de la fouille de données appliquée à un corpus de documents ou à une base de données numériques,
• La figure 3, un schéma fonctionnel qui montre les étapes de la phase de prétraitement qui est effectuée en amont du procédé de classification automatique,
• La figure 4, un schéma fonctionnel qui représente l'ordonnancement des étapes constituant le procédé de cette invention,
• La figure 5, un schéma fonctionnel qui détaille les différentes opérations effectuées lors du traitement 41 de la figure 4,
• La figure 6, l'opération de base qui consiste à déterminer la partition locale optimale (en une, deux, ou trois classes) issue de deux classes en intersection,
• La figure 7, les quantités évaluées lors de l'opération de base décrite dans la figure 6,
• La figure 8, un schéma fonctionnel qui représente les étapes du procédé d'agrégation hiérarchique des classes.
La figure 1 illustre, à titre non limitatif, un exemple d'application du procédé selon l'invention, permettant de générer automatiquement différentes actions à mener à partir du résultat de classification.
Le système sur lequel fonctionne le procédé comprend, par exemple, un calculateur 1 comprenant une mémoire 2, un processeur 3 associé au procédé de classification 5. Le calculateur 1 est en liaison avec une base de données 4. Le résultat de classification, se présente, par exemple, sous la forme d'un ensemble de classes mémorisé dans un dispositif approprié 6. Le dispositif 6 est, par exemple, en liaison avec un serveur 7 d'envoi de courrier électronique par exemple. Le serveur est pourvu de moyens de traitement appropriés et connus de l'Homme du métier pour traiter l'information de classes reçues et déclencher des mécanismes d'envoi éventuel de messages aux personnes des classes concernées.
Tout dispositif permettant de conduire et/ou de piloter des actions en fonction des résultats de la classification peut être utilisé.
La description qui suit est donnée à titre illustratif dans un contexte général d'instructions exécutables dans un programme d'ordinateur, tels que des modules de programme exécutés par un ordinateur ou tout autre calculateur.
L'invention peut être mise en œuvre sur tout type d'ordinateurs, d'agenda électronique, etc ....
Dans la figure 2, le point de départ peut être soit une base de données quelconque (ensemble d'individus décrits par un ensemble de variables numériques), soit un corpus de documents quelconque. Ces deux types de données sont représentés respectivement par les blocs arrondis 20 et 25. Dans le cas de données numériques, il peut exister une phase de prétraitements facultative 21 qui consiste en des traitements statistiques classiques tels que le centrage ou la réduction des données ou encore des transformations... etc. Ces pré-traitements conduisent au tableau de données 22. C'est ce tableau qui constitue la source des traitements d'analyse de l'information 23. En ce qui concerne un corpus de documents, au cours d'une phase de pré-traitements 26 on transforme chaque texte en un vecteur dont les dimensions correspondent à des descripteurs obtenus par un procédé linguistique qui peut être une analyse morpho-syntaxique, une extraction de concepts, une extraction de co- occurrences..., des traitements linguistiques et sémantiques etc. On obtient alors une matrice de présence-absence (binaire) ou de fréquences 27 qui constitue la source des traitements représentés par le bloc 23.
Le bloc 23 correspond notamment à la phase de traitements et d'analyses des données. Ces traitements peuvent être de plusieurs types (classification supervisée, classification non supervisée, notation statistique ou « scoring », régression...). Dans le cadre de l'invention, il s'agit de classification non supervisée de données connue aussi sous l'appellation de classification automatique ou encore de « clustering » (terme anglo-saxon). L'invention concerne notamment un procédé de classification non supervisée dont le résultat est, par exemple, une hiérarchie de partitions des objets 24 ou des documents 28 selon le type de données initial.
Les données d'entrée de la figure 3 se présentent sous la forme d'un tableau T , 22 ou 27, désignant respectivement les cas de données numériques et le cas de corpus de documents, croisant l'ensemble / , constitué de n objets
O1, Oj,..., On (des individus ou des documents), et l'ensemble V constitué de m variables (ou descripteurs), V1 ,V2 ,..., V" mesurés sur / . I = {θvO2,..., On) v = {v\v2,..., vή
Le tableau T a comme terme général tlk qui représente la valeur prise par la variable Vk sur l'objet O1 et se présente sous la forme suivante :
Le terme général tιk , des données en entrée, représente :
• la modalité de la variable k prise par l'objet i dans le cas d'une variable qualitative, • la valeur de la variable k prise par l'objet i s'il s'agit d'une variable quantitative, ® la présence ou l'absence de l'unité lexicale k dans le document / , s'il s'agit de données textuelles.
Dans le cas des données qualitatives et quantitatives, le procédé applique sur ce tableau des traitements de re-codage 30 décrits ci-après, par exemple la discrétisation des variables quantitatives ou le recodage des variables qualitatives en descripteurs de présence/absence. Les variables qualitatives et quantitatives sont transformées en variables binaires qui constitueront un tableau K de présence-absence.
Dans le cas des variables qualitatives, la transformation consiste, par exemple, en un re-codage des modalités en des vecteurs descripteurs de présence- absence.
Pour des variables quantitatives, il s'agit de discrétisations qui consistent à transformer les variables quantitatives en variables qualitatives où chaque modalité correspond à un intervalle. Par exemple, soit la variable quantitative « taille » exprimée en cm et mesurée sur un ensemble d'individus. Supposons que
dans la population considérée, la taille des individus la constituant soit comprise entre 140 cm et 210 cm, une discrétisation possible serait de découper la variable en trois intervalles suivants [140,160[ ; [160,180[ ; [180,210]. Ces trois intervalles correspondent alors respectivement aux trois modalités suivantes : petite, moyenne et grande. Par conséquent, un individu qui aura la taille 175 cm par exemple, aura après discrétisation la modalité moyenne.
Le tableau K, 31 , de terme général k obtenu après ces transformations sera de la forme suivante :
Son terme général k
I} peut avoir deux significations selon qu'il s'agisse initialement de variables qualitatives ou de variables quantitatives :
Dans le cas d'une variable qualitative, kυ a la définition suivante :
_ [ 1 si l'objet i possède la modalité j
77 i
J [0 sinon Dans le cas d'une variable quantitative, ky a la définition suivante : fl si l'objet i appartient au segment j Kj j — \
J [0 sinon
Dans le cas des données textuelles, il n'y a pas d'étape de recodage puisqu'à l'issue de l'étape de pré-traitement, 26, nous obtenons déjà un tableau binaire de présence-absence K dont le terme général k
y a pour signification : 1 si le document i possède l'unité lexicale j
0 sinon Chaque variable du tableau T , qu'elle soit qualitative ou quantitative, engendrera plusieurs vecteurs descripteurs de présence-absence. En effet, les tableaux T et K sont de dimensions différentes.
Considérons la variable « CSP » (Catégorie Socio-Professionnel) et supposons que l'on soit en présence de quatre individus (11 , 12, 13, 14). Supposons
que les modalités possibles de la variable CSP soient : cadre, ouvrier, profession libérale. Supposons de plus, que ces quatre individus ont les modalités suivantes :
Après recodage des modalités de Ia variable qualitative CSP, on obtient le résultat suivant :
Chaque modalité de la variable considérée devient donc un descripteur de présence-absence. Par conséquent, le tableau des données transformées K sera de dimensions {nxp) avec p > m où m est le nombre de variable de l'ensemble V .
A partir du tableau K , 31 , on effectue des calculs statistiques, 32 (moyennes, écart-types, coefficients de discrimination, etc.), qui permettent notamment, d'une part de paramétrer le filtrage des descripteurs, 33 (élimination des descripteurs peu discriminants), d'autre part, de calculer un indicateur appelé seuil structurel, 34, qui permet de s'affranchir de tout paramétrage du procédé de classification (non fixation ni d'un nombre de classes ni d'un nombre maximal de classes). L'indicateur est détaillé par la suite.
Le filtrage permet d'éliminer les descripteurs peu discriminants. L'élimination des descripteurs sera différente suivant le type de ces derniers. Dans
le cas de données numériques on se base sur un indicateur de pertinence du descripteur.
Dans le cas des documents, on utilise la fréquence d'apparition d'un descripteur dans l'ensemble du corpus ou tout autre indicateur de mesure de discrimination tel que l'entropie... et on élimine ceux qui sont, a priori, peu discriminants. A l'issue de l'étape de filtrage, on a un nouveau tableau binaire réduit, 35, qui contient un nombre restreint de colonnes. C'est ce nouveau tableau qui sert de données en entrée au procédé de classification automatique décrit par le bloc 36 et détaillé dans les figures 4 et 5.
Seuil structurel et critère adapté aux données
Le procédé selon l'invention utilise un seuil structurel ou indicateur qui a notamment pour fonction de définir un critère d'optimisation adapté aux données.
Pour mieux comprendre son rôle, on rappelle la théorie de l'analyse relationnelle qui se base sur la maximisation du critère de Condorcet simplifié suivant :
W=Σ ;=1 Σ ;'=1 I C , -iχ/(C,,,C,,,,) k.' où C , représente le degré de ressemblance entre les deux objets i et ï . Par exemple ;
et O1 représente le profil de l'objet O1 donné par la ieme ligne du tableau K :
01 = {k,1,kι2,-,k,J,-,kψ) et où f(Cπ,Ciγ) est une fonction des accords propres maximaux des individus /' et i' Par exemple : /(CB ,ClV) = |(CB + ClV)
f{Cu , CιV) = Mm(C11 ^1,,) etc...
Xn, est par ailleurs donné par :
1
Y _ 11 si les objets i et i sont dans la même classe zz 0 sinon
Le procédé selon l'invention est de complexité linéaire dans la mesure où les formules du type ∑∑Cn, et ^^/(C,,,CjV) sont calculables
I I' I I' linéairement. Les fonctions citées en exemple précédemment sont toutes linéarisables. En effet, la mesure de similarité Cn, utilisée est un produit scalaire possédant des propriétés de linéarité connues, la fonction f(Cn,ClY) = — (C,, + C,V) est linéaire, par contre, la fonction
f (C11 , Cn.) = Mm(Cn , C ,,,,) n'est pas linéaire. Cependant, on peut linéariser les calculs du type ∑∑Min(Cn,ClV) . i /'
L'invention à titre illustratif décrit le cas particulier f(Cn, CιV) - Min(Cn , ClY) particulièrement adapté aux bases contenant un nombre important de données manquantes et les procédures qui permettent de calculer avec une complexité linéaire les calculs du type ∑∑Min(Cn ,ClV) .
Le procédé selon l'invention met par exemple en œuvre le critère suivant :
Cβ«) = ∑∑[C, -a χf(Cπ,Cή,)]Xn,
;=1 /'=1
∑∑Contribu,X,, ι=l ι'=ï
où a est un seuil et la quantité Contribn, la contribution unitaire des deux objets i et /' au critère C (JQ .
Selon l'invention, le paramètre seuil structurel as est calculé automatiquement. Il s'agit d'un indicateur qui est une fonction des n2 accords entre les objets à classifier :
On peut donner comme exemple, sa formulation lorsqu'il représente le rapport entre la moyenne arithmétique des accords entre tous les objets sur la moyenne arithmétique de leurs accords maximaux. :
Cette formule est linéarisable lorsque l'on se place dans les mêmes conditions que celles évoquées précédemment. Le critère Ca* (X) utilisé dans l'invention consiste, par exemple, à comparer les accords entre deux objets quelconques au produit du seuil as par leur accord maximal (ce qui représente un pourcentage de l'accord maximal).
Ainsi, deux objets seront a priori dans une même classe dés lors que leur similarité est supérieure ou égale au pourcentage d'accord maximal calculé (contribution positive).
Procédé de classification automatique de l'invention
Le procédé de classification 36 est décrit en détail dans la figure 4. Le point de départ est le tableau de données binaires 35 dont les descripteurs ont été filtrés.
La première étape du procédé de classification qui consiste à trier les descripteurs, 40, repose sur une mesure de la contribution au critère de chaque descripteur (qualité d'un descripteur). On utilise, par exemple, les descripteurs comme « générateurs » de structuration de la population des objets à classifier. Un descripteur est représenté par un vecteur colonne de 1 et de 0 (présence-absence). On associe à ce descripteur une classe qui est composée des objets dont la valeur prise est 1. On peut alors calculer pour chaque classe d'objets Cq sa mesure de contribution Contrib(Cq) au critère global :
Contrib{Cq ) = ∑ ∑ Contrit,,, = ∑ ∑ Cn, - a x ∑ ∑ /(C,, , Cn, ) [1 ] leCqi'eCq leCqi'eCq l≡Cqi'eCq
L'évaluation de la contribution d'une classe est de complexité polynomiale. En effet, supposons que tous les objets constituent une seule classe, il faudrait alors calculer n1 contributions unitaires afin de déterminer la valeur du critère.
Dans le cas où C
n, est un produit scalaire, la première partie de la formule de droite, , se simplifie de la manière suivante :
où R
q = (r
9 ,r
9 ' ,• • • • • ,r
p q ) est appelé représentant de la classe C
q dont les termes sont donnés par la somme en colonne de chaque modalité du tableau K pour les objets de la classe : r? = ∑k,, .
I ^Cq Chaque valeur r? , j=\,...,p , représente le nombre d'objets de la classe Cq qui possède la modalité / .
Dans le cas où f (Cn , ClV) = MIn(Cn , CιV) , la deuxième partie de la formule de droite de l'équation [1] vaut ]T ^ Mm(C11, C lV) . Nous donnons ci-dessous la leCqi'eCq procédure permettant de calculer avec une complexité linéaire cette quantité.
***************************************************************************
Procédure MinCC (Classe C)
Nécessite : CαrdC > 0
Nécessite : Liste triée d'individus pour la classe C Entier : résultat - 0
Entier : j = prochain élément de C
Entier : i = 0
Tant que la classe C n'est pas parcourue Faire résultat = résultat + [(CardC -i) x2 -l]x C M j = prochain élément de C i = i + l
Fin tant que
***********************************************************************************************
On a ainsi pour chaque descripteur q la valeur de la contribution de la classe engendrée par ce dernier ou encore une mesure de la qualité du descripteur vis à vis du critère. On procède alors à un tri, par exemple, par ordre décroissant de ces contributions afin d'obtenir un ordre de prise en compte des descripteurs. Le choix de cet ordre a très peu d'influence sur la qualité du résultat (il peut y avoir quelques différences locales minimes). Cependant, prendre les classes engendrées par les descripteurs de meilleures contributions en premier, permet d'avoir une solution stable plus rapidement et donc d'accélérer le processus de calcul de la meilleure partition 41 issue de l'intersection entre la partition courante et celle engendrée par un descripteur.
Ce processus 41 consiste notamment à « fusionner » progressivement 42, une classe engendrée par un descripteur 40, et une partition courante (composée de plusieurs classes). Cette opération de « fusion » consiste à déterminer à partir de deux classes en intersection la meilleure opération (au sens du critère) parmi les 4 suivantes :
• « Cassage » de la première classe et formation de deux classes; ® « Cassage » de la deuxième classe et formation de deux classes;
• « Cassage » des deux classes pour former trois classes ;
® Réunion des deux classes en intersection pour former une unique classe. Ces opérations sont illustrées dans la figure 6 et les calculs permettant de décider de la meilleure opération dans la figure 7.
Ce processus revient à construire pas à pas une partition qui optimise localement et progressivement le critère global.
Une fois que tous les descripteurs sont utilisés, on considère la partition obtenue P0 comme une première partition finalisée des objets 43.
Pendant la phase de « fusion » (40, 41 , 42) des classes, on essaie de « fusionner » uniquement les classes qui possèdent des intersections. L'objet du traitement 44 est de fusionner, c'est-à-dire réunir des classes qui n'ont pas d'intersection si cette opération permet d'optimiser le critère (test de fusion des classes de la partition obtenue entre elles). Ceci conduit à une partition modifiée 45, pu partition de niveau 1 , qui constitue la partition finale du procédé de classification.
Cette partition 45 constitue l'entrée du processus d'agrégation des classes, 46, qui est décrit dans la figure 8.
La figure 5 représente un exemple de schéma fonctionnel du traitement
41. Ce dernier consiste notamment à « fusionner » une nouvelle classe engendrée par un descripteur X notée Cx , 50, avec la partition courante P constituée de K classes 51. Le processus est le suivant : • Calcul des intersections entre les classes de la partition P et la classe Cx ,
52, • Tri de l'ensemble A des classes Cy de la partition P en intersection avec la classe Cx dans l'ordre décroissant du cardinal de leur intersection, 53, par exemple, • Pour chaque classe Cy , 55, de l'ensemble A , fusionner les deux classes
Cv et Cx , 54.
On parcourt toutes les intersections entre Cx et P et une fois que toutes les classes C de A ont été fusionnées avec Cx , 55, on obtient une nouvelle partition des objets qui améliore le critère global et qui devient alors la nouvelle partition courante 51. L'étape suivante consiste à passer à un nouveau descripteur, 42, et on répète ce processus jusqu'à ce que tous les descripteurs aient été parcourus.
Le cardinal des éléments de l'ensemble des intersections d'une classe Cx avec les classes d'une partition P, 52, peut être obtenu linéairement de la manière décrite ci-après.
On considère la classe Cx comme la classe dont on désire évaluer l'intersection avec une partition P . A cette classe, on associe une liste triée, par exemple, par ordre croissant des indices des objets qu'elle contient. En effet chaque objet est identifié par un entier unique qui est son indice. Pour trier les objets, on utilise par exemple un tri linéaire (par exemple le tri par base dont une référence est la suivante : Cormen et al (2002), Introduction à l'algorithmique, Dunod) puisque l'on connaît la borne supérieure des valeurs à trier.
Pour l'opération de calcul du cardinal des intersections, on utilise un vecteur A de dimension n pour lequel chaque dimension i représente l'indice de la classe où est stocké l'individu O1.
Exemple de calcul de cardinaux d'intersections :
Si on prend une population de 6 objets O
11O
7,- - -,O
6 et une partition courante de ces objets P, 51 , constituée de trois classes
Le vecteur A est égal à :
Ainsi si on « fusionne » la partition existante avec une classe Cx = [O2, 03, 04, 06] 50, on est capable de trouver rapidement le cardinal de l'ensemble intersection de la classe Cx avec les classes de la partition existante, en l'occurrence
Cαrd(lnter(Cx Cx )) = 1 , Cαrd(lnter{C2 Cx )) = 3 et Cαrd(lnter(Cχ Cx )) = 0. Le nombre d'opérations effectuées lors du calcul des intersections 52 est égal au nombre d'objets dans la classe Cx à fusionner avec la partition P . En effet, on regarde pour chaque objet de la nouvelle classe s'il appartient à une classe de la partition P , si oui on incrémente le compteur d'intersection de cette classe.
S'il existe plusieurs intersections entre une classe Cx et une partition P , on calcule comme indiqué ci-dessus, le cardinal des différentes intersections entre Cx et les différentes classes Cy de la partition P afin d'avoir un ordre de prise en compte.
A partir de l'intersection de Cx et d'une classe Cy de la partition P , on évalue quelle est la meilleure configuration parmi celles présentes dans la figure 6. Pour cela, on évalue les quantités identifiées dans la figure 7. Les figures 6 et 7 expliquent donc un exemple d'opérations de base de l'invention qui sont représentées par le traitement 54.
Le processus de « fusion » de deux classes est par exemple le suivant.
Soient Rx et Ry les vecteurs représentant des classes Cx et Cy , on construit les vecteurs Ra , Rb et Rc définis par :
R" = R
y -R
c R
b = R
X -R
C où C
c -C
x
est la classe définie par l'intersection de C
x et C (les objets à la fois dans la classe C
x et dans C
y ) et R
c son représentant. R" représente donc les objets qui sont uniquement dans C
y et R
b ceux qui sont uniquement dans C
x .
Au définira respectivement CardA, CardB et CardC comme les cardinaux des classes représentées par R" , Rb et Rc .
Les deux listes d'objets contenus dans les classes Cy et Cx sont triées par ordre croissant de leur indice. On peut donc appliquer la procédure classique suivante pour calculer rapidement les trois vecteurs :
****************************************************************************************** Procédure de Calcul vecteurs (Classe Cx , Classe Cy)
Rα = Ry
Rb = RX
Rc = 0
CαrdA = CαrdB = CαrdC = 0
L1 = liste des objets de Cy e = tête de la liste Lx L2 = liste des objets de Cx / = tête de la liste L2
Tant que la liste L1 n'est pas parcourue Faire Tant que la liste L2 n'est pas parcourue Faire Si e = f Faire Re = Ô.
R" = Ra - Re Rb = Rb - Re
Rc = RC + Re e = tête de la liste L1 f = tête de la liste L2 cardC = cardC + 1 Sinon Si e < /Faire e = tête de la liste L1 cardA = cardA + 1 Sinon
/ = tête de la liste L2 cardB = cardB + 1
Fin Si Fin Tant que
Fin Tant que
*********************************************************************************************** A partir de ces trois vecteurs, il est possible de choisir la meilleure solution parmi les quatre suivantes, ces dernières étant représentées sur un exemple dans la figure 6 :
© « casser » la classe Cy pour former les deux classes suivantes : Cy - Cx et
Cx ® « casser » la classe Cx pour former les deux classes suivantes : Cx - C1, et
® « casser » la classe Cx et « casser » la classe Cy pour former les trois classes suivantes : Cx - Cy , Cy - Cx et Cy n Cx • fusionner les deux classes pour former une unique classe : C u C( . Le choix de la meilleure des quatre solutions se base, par exemple, sur l'évaluation des « liens » entre les 3 différentes sous-classes mises en évidence ci-
dessus. Le calcul général du « lien » entre deux classes Cq et Cq, est donné par la formule suivante :
Lien(Cq,C9. ) = ∑ ∑Contrib,,, =∑ ∑ (C11, - a x /(C1, , C,v ))
<sC/eCV !eC/eCV
Lorsque la mesure de similarité est un produit scalaire, et lorsque f (C1nC1,,,) - Min(Cπ, C lY) , on peut comme précédemment, linéariser le calcul du lien entre deux classes distinctes. Le procédé utilise pour cela les propriétés de linéarité du produit scalaire, ce qui donne la simplification suivante :
Lien(Cq,C , ) =< R" ,R9' > -a x ∑ ∑ Mm(C11, C1,,,) l≡Cqi'≡Cq'
On peut aussi utiliser la procédure suivante qui permet d'évaluer avec une complexité linéaire la quantité ∑ ∑jMin(C11,C1,1,) : leCqi'εCq' ***********************************************************************************************
Procédure MinCC (Classe C, Classe C)
Nécessite : CαrdC > 0
Nécessite : CαrdC '> 0 Nécessite : Liste triée d'individus pour les classes C et C
Entier : résultat - 0
Entier : nb _lignes = CardC
Entier : nb _cols = CardC
Entier : j = prochain élément de C Entier : f = prochain élément de C
Tant que la classe C n'est pas parcourue et la classe C n'est pas parcourue Faire
Si j < f faire résultat - résultat + nb_ cols x C j = prochain élément de C nb __ lignes — nb_ lignes — 1 Sinon
Si j'< j faire
résultat = résultat + nb lig CJnes x C J .J , f = prochain élément de C nb ___ cols -nb _ cols — 1 Sinon résultat - résultat + (nb _ cols + nb__ lignes - 1) x C ff j = prochain élément de C f = prochain élément de C nb _ lignes = nb _ lignes — 1 nb _ cols -nb _ cols — 1 Fin Si
Fin Si
Fin tant que
******************************************************************************************
Dans le cadre de l'intersection entre deux classes, le procédé évalue les trois quantités suivantes qui sont représentées sur un exemple dans la figure 7 :
Lieni=Lien(Cy-Cc,Cx-Cc)=<Ra ,Rb >-ax ∑ ∑/(CU,C,,) i≡CyiΛieCc l'eCxnj'ïCc
Lien2 = Lien(Cy -CC,CJ=< R" ,RC >-ax ∑ ∑f(C,,,ClY) ifΞCymeCc l'eCc
Lien3=Lien(Cx-Cc,Cc)=<Rb,Rc>-ax ∑ ∑ /(Cn, C1,,) leCxmeCc l'eCc
Ainsi, pour maximiser localement le critère global :
• Si Lien, +Lien2 + Lien3 est la plus grande, on choisit la solution 4 (fusion des deux classes) ;
• Si Lien 2 est la plus grande, on choisit la solution 2 (« cassage » de Cx ) ;
• Si Lien3 est la plus grande, on choisit la solution 1 (« cassage » de C1 ) ; ® Si 0 est la plus grande, autrement dit que Lien} +Lien2 +Lien3 < 0, Lien, < 0 et Lien3 < 0 , alors on choisit la solution 3 (« cassages » de Cx et de Cv ).
Une fois que la classe Cx , 50, est fusionnée avec la première classe C , , on continue le traitement avec les autres classes de la partition P en intersection avec la classe Cx , 55,. Pour cela, la classe Cx sera transformée en classe Cx, : @ Si Ia solution 1 est choisie, Cx, = Cx
• Si la solution 2 est choisie, Cx, = Cx ~ Cy
• Si la solution 3 est choisie, Cx, = Cx - Cv
• Si la solution 4 est choisie, Cx, = Cx vj Cy
Dans tous les cas, la nouvelle classe Cx, contient les objets qui peuvent appartenir aux autres classes de la partition P puisqu'on sait, par avance, qu'aucun objet de la classe Cy ne peut appartenir à une autre classe de la partition P .
Procédure de retrait d'objets à une classe
Pour retirer un ensemble d'objets Δ d'une classe, il suffit de retirer Δ de la liste d'objets de la classe et de retrancher le représentant RΔ du représentant de la dite classe. Par exemple, lors de l'opération Cx, = CX - CV , RA est égal à Rc .
En effet, on retranche à la classe Cx , les objets en intersection représentée par le représentant Rc . Ainsi Rx' = RX - Rc .
De cette manière, les opérations de « cassage » ne nécessitent pas de temps de calcul importants puisque la quantité retranchée au représentant de la classe est toujours égale au vecteur Rc qui est déjà calculé. D'autre part, le retrait des objets de la liste est une opération simple et linéaire.
Procédure de Réunion de deux classes Dans cette procédure, on connaît le représentant de l'intersection de C1 et C2 (défini par Rc ci-dessus) et le cardinal de l'intersection (défini par CαrdC ci- dessus). On cherche donc à créer la classe C1 u C2 , sans effectuer de tri linéaire complet.
***********************************************************************************************
Procédure Réunion (Classe C1 , Classe C2 , Représentant Inter, Entier
Cαrdlnter)
Vecteur temporaire de taille (CαrdC , + CαrdC 2 - Cαrdlnter) Entier position = 0
Lx = liste des objets de C1 e = tête de la liste Lx L2 = liste des objets de C2 / = tête de la liste L2 Tant que la liste L1 n'est pas parcourue Faire
Tant que la liste L2 n'est pas parcourue Faire Si e = f Faire el = e e = tête de la liste Lx / = tête de la liste L2
Sinon Si e < / Faire el = e e = tête de la liste L1 Sinon el = f f = tête de la liste L2 Fin Si
Temporaire[position] = el Position = position + 1 Fin Tant que
Fin Tant que Recopie Temporaire dans la liste des objets
Représentant = Représentant ( C1 ) + Représentant ( C0 ) - Inter ***********************************************************************************************
Procédure Regrouper (Partition P) 44
Soit K le nombre de classes de la partition P
Pour chaque classe Cq de la partition P , on calcule Contrib(Cq )
Soit Cx la classe qui possède la contribution la plus forte Nous calculons le vecteur S de κ — \ valeurs définies par :
S = (sv s2,..., sk_, ) et où
[ LUm(C x,C, ) ά l < x
S' [Lien(C x, C1+1 ) si I > x
Pour toutes les valeurs de Lien positives de S , on va fusionner les classes correspondantes. L'ensemble de ces classes seront marquées comme affectées et ne pourront plus être fusionnées par la suite. On itère le processus avec l'ensemble
K' des classes non marquées.
Procédé d'agrégation hiérarchique des classes de l'invention Dans la figure 8, est représenté un exemple d'architecture du procédé d'agrégation hiérarchique des classes en méta-classes.
Ce procédé consiste, notamment, à regrouper sur plusieurs niveaux (le nombre de niveaux est à fixer par l'utilisateur) les classes entre elles. L'optimisation du critère global passe, par exemple, par la maximisation des liens entre les classes constituées. En d'autres termes, les classes obtenues doivent, in fine, avoir des liens négatifs. Or, le calcul des liens est fondé sur la définition de la contribution Contrit^, d'une paire (i,f) d'objets. On rappelle ci-dessous la définition de la contribution d'une paire d'objets lorsque la fonction / est la fonction Minimum : Contribu, = C11, - α x MIn(Cn , C,,,,) Le procédé d'agrégation des classes, proposé par l'invention, consiste alors à diminuer à chaque niveau, la valeur du seuil structurel 80, de sorte que les contributions faiblement négatives puissent devenir positives. De cette manière, le lien entre deux classes peut devenir positif ce qui permet de les regrouper 81 , et de mettre en évidence des relations entre les classes d'une partition. On répète ce processus autant de fois qu'il y a de niveaux 82. On obtient alors un ensemble de
partitions emboîtées 83, qui permet de détecter des relations hiérarchiques et conceptuelles (sur plusieurs niveaux) entre les classes considérées initialement dans la partition 45. L'invention, par ce principe, permet ainsi de faire de la découverte de connaissances. La procédure d'agrégation hiérarchique des classes d'un niveau j à un niveau y + 1 est similaire à la procédure Regrouper décrite ci-dessus.
Calculs permettant l'évaluation de la qualité des résultats de classification de l'invention On donne ici les formules théoriques des indices de mesure de la qualité de la solution obtenue qui s'expriment en pourcentage. Plus l'indice est proche de 100%, plus la qualité de la solution étudiée (qualités partition, classe ou individu) est bonne.
On introduit tout d'abord quelques notations :
L'accord entre deux classes : A
cσ - ^ ]T C
11,
L'accord maximal entre deux classes : AM cc, = ∑ ∑f (C111C1.,.) ιeC l'eC
Le désaccord entre deux classes : A ^rCrC, -~ A ΛM1V± rCrC. - A Λ rCrC,
La qualité finale de la partition obtenue est donnée par :
∑Acc +∑ ∑Âcc ∑Ac -∑ ∑Acσ + ∑ V∑A ΛMλ/t C, C
C=I C=I C'≠C _ C=I C=I C'≠C C=I C≠C
Q =
∑∑^cc ∑∑AMcc
C=I C=I C=I C=I où K est le nombre de classes de la partition.
La qualité d'une classe C est donnée par :
Acc + 2x ∑Âcc ACc -2x ∑Acc + 2x ∑AMt CC C'≠C _ C'≠C C≠C
Qc C = NbCl NbCl
AM cC + 2 x ^ AM cσ AM cc +2^ γjA 4M λyf
CcC
C'≠C C'≠C
La qualité d'un objet i appartenant à une classe C est donnée par :
ΣC«' +∑Q. ∑C, -∑Cπ, + ∑/(CB,C,,) p. _ i'eC t'tC _ l'eC (VC ι^C_
∑f(Cu,CιV) ∑/(CB,C,V)
,'=1 ,'=1 où Cn, = f(Cu,ClY) - Cn, est le désaccord entre l'individu i et l'individu i'.
Les sommes sur les termes Acσ sont linéarisâmes lorsque les similarités Cn, sont des produits scalaires grâce aux propriétés de linéarité de ces derniers. On donne ci-dessous des exemples de procédures permettant de calculer linéairement les quantités suivantes intervenant dans les différentes formules de qualités lorsque
/(C,,,ClV) =M«(C,,,C,v) :
ClY)
• ∑Min(C,,,CιY) t'sC On note respectivement ces quantités SS'MinCC, S'MinC et MiniC :
***********************************************************************************************
Procédure SS'MinCC (Classe C, Classe C)
Nécessite ; K > 0 Entier : résultat = 0
Pour z = l jusqu'à n par incrément de 1 Faire résultat = résultat + ((n - i + V) x 2 - 1) x Cn Fin Pour
***********************************************************************************************
**************************************************************************
Procédure S'MinCC (Classe C, Classe C)
Nécessite : CαrdC > 0 Nécessite : K > 0
Nécessite ; Liste triée d'individus pour les classes C Entier : résultat - 0 Entier : nb _lignes = CardC Entier : nb _cols = n Entier : j = prochain élément de C
Entier : i = 1
Tant que la classe i ≤ n et C n'est pas parcourue Faire Si / = j faire résultat - résultat + (nb _ cols + nb_ lignes - 1) x Cn nb _ lignes = nb _ lignes - 1 nb _ cols = nb _cols - 1 i = i + l j = prochain élément de C Sinon résultat = résultat + nb_ lignes x C17
/ = / + 1 nb _cols = nb _cols - 1
Fin Si Fin tant que
***********************************************************************************************
******************************************************************************
Procédure MiniC (Classe C)
Nécessite : CαrdC > 0 Nécessite : Liste triée d'individus pour la classe C
Entier : résultat = 0 Entier : nb_cols = CardC Entier : j = prochain élément de C
Tant que la classe C n'est pas parcourue et nb _cols ≤ j Faire Si z = / Faire résultat = résultat + nb _ cols x Cn Sinon résultat = résultat + C j - prochain élément de C nb _cols = nb _cols -\
Fin Si
Fin Tant que
***********************************************************************************************