PROCEDE ET SYSTEME POUR CLASSIFIER DES DONNEES ISSUES DE
BASE DE DONNEES
L'objet de la présente invention concerne notamment un procédé et un système permettant de classifier des données se présentant sous la forme de matrices relationnelles, c'est-à-dire qu'il existe des relations entre les objets O1 ou données de cette base de données. L'invention peut également traiter des tableaux rectangulaires, dans la mesure où il est toujours possible de déduire d'un tableau rectangulaire (objetsXattributs) un tableau carré par calcul de mesures de similarités entre les objets du tableau d'origine.
L'invention peut être utilisée dans le domaine de la classification automatique (plus connu sous le terme anglo-saxon « clustering »). Elle trouve son application notamment dans le cas où les données à classifier se présentent sous la forme de matrices relationnelles (relations entre les objets à classifier) et qui, de fait, permettent une représentation très souple de graphes ou de réseaux d'interdépendance.
Dans le domaine de la classification automatique de données, les problèmes à résoudre consistent à partir d'une base de données contenant des quantités importantes de données, de l'ordre de quelques centaines de milliers ou de quelques millions, relatives à n objets ou individus O1 à trier très rapidement ces données. Ces données se présentent généralement sous la forme de tableaux (ou matrices) de deux types : des matrices rectangulaires (objetsXattributs mesurés sur ces objets) ou bien des matrices carrées (objetsXobjets), représentant des relations entre les objets. Le but de la classification consiste à construire à partir de ces matrices, des groupes d'objets cohérents ayant de fortes similarités descriptives (description des individus) et/ou comportementales.
Lorsque les données se présentent sous forme de matrices carrées, elles représentent, le plus souvent, des mesures de ressemblances ou de proximités entre les objets de la base. Le but ensuite est de chercher à découvrir une décomposition optimale et automatique de la population en un nombre de classes d'objets (similaires ou ayant les mêmes comportements) beaucoup plus réduit et de définir ensuite des stratégies d'actions, selon le domaine concerné. Par exemple, une des actions possibles est de découvrir les pannes permettant de prédire d'autres pannes dans un réseau informatique. Un autre exemple est de découvrir un ensemble de clients d'une banque auxquels il est possible de proposer certains produits et qui ont une forte probabilité de réponse positive. Une autre action est de découvrir des niches de sociétaires d'entreprises d'assurances pour lesquels on peut créer des polices spécifiques qui n'étaient, a priori, pas évidentes, etc. L'une des difficultés principales pour découvrir ces classes résulte du fait que, malgré les progrès réalisés dans la puissance de calcul des processeurs, de la capacité de stockage des ordinateurs actuels, les données stockées étant de plus en plus volumineuses, ou occupant de plus en plus de place mémoire, il est très difficile de classifier les objets d'une base de données avec des temps de traitement raisonnables. Ceci est encore plus vrai lorsque les données disponibles se présentent sous la forme de matrices carrées représentant des relations entre objets.
Différentes méthodes de classification automatiques sont connues de l'art antérieur. Ainsi, il est possible de citer la méthode des k plus proches voisins (ou k-means), la classification hiérarchique ou encore l'analyse relationnelle.
La demande de brevet EP 1960916 déposée par le Demandeur, décrit un procédé de classification où les données initiales se présentent sous la forme de tables ayant pour lignes les individus à classifier et pour colonnes des variables mesurées sur ces individus. Malgré les bons résultats offerts par ces méthodes de l'art antérieur, ces dernières présentent notamment les faiblesses suivantes :
1 ) un problème de fixation du nombre de classes et des référents (centres) à utiliser pour initialiser la partition finale à trouver. En effet, les méthodes de type k-means, par exemple, ont besoin de fixer de manière arbitraire et, a priori, le nombre de classes à trouver dans les données ainsi que quelques individus initiaux ;
2) un problème de fixation, arbitraire et a priori, du niveau de coupure de l'arbre pour les méthodes de classification hiérarchiques,
3) une impossibilité de traiter de manière linéaire des volumes importants de données en des temps raisonnables lorsque les données se présentent sous la forme de données relationnelles.
Ainsi, les méthodes de classification usuelles connues du Demandeur ne permettent pas, d'une part, de traiter de façon linéaire des données de type graphe ou relationnelle et d'autre part, elles dépendent étroitement de la fixation de paramètres tels que le nombre de classes à trouver ou les centres (objets choisis parmi la population selon des tirages mathématiques aléatoires ou de façon arbitraire).
Le procédé selon l'invention repose notamment sur la théorie de l'analyse relationnelle présentant comme avantage de ne pas faire d'hypothèses arbitraires et a priori, quant aux résultats attendus du processus de classification.
Le système et le procédé selon l'invention proposent une nouvelle approche utilisant des lignes des matrices relationnelles à traiter et permettent, grâce à ces représentations, de traiter de très gros volumes de données en des temps rapides en réduisant à la fois l'espace mémoire nécessaire et les temps de calcul.
L'invention concerne un procédé de classification de données ou d'objets O1 , Oj se présentant sous la forme d'un tableau S, chacun des éléments dudit tableau S correspondant à une valeur de similarité ^ existant entre lesdits objets O1 et O1 ledit procédé étant mis en œuvre au sein d'un
calculateur en liaison avec une base de données contenant les données ou objets à classifier comprenant une mémoire de travail, un processeur caractérisé en ce qu'il comporte au moins les étapes suivantes : 1 ) déterminer un nombre k de classes d'objets de la manière suivante : prendre un objet O1 qui a le moins de similarités sy possibles avec les autres n objets Oj , c'est-à-dire celui dont la somme des composantes YV. de son
profil est la plus petite
Mettre l'individu Oi dans une première classe C1 ,
Considérer les objets O1 avec O1 différent de O1 restants et prendre parmi eux un deuxième objet O1 dont la somme des composantes de son profil est la plus petite parmi les objets restants, si le lien /^ calculé entre le nouvel objet O1 avec la classe précédente
C1 constituée d'un seul individu est négatif, alors créer une nouvelle classe C2 et mettre l'objet O1 dans cette nouvelle classe C2 , sinon (i.e si ce lien est positif) mettre l'objet O1 dans la classe C1 , réitérer jusqu'à ce que tous les objets O1 appartiennent à une classe d'indice k, à l'issue de cette première étape le procédé dispose d'un ensemble de o classes,
2) pour chacune des ^ classes trouvées à l'étape 1 ) déterminer la valeur des liens /CΛ entre une classe Ck et les autres classes Ck, telles que k' soit différent de k, si tous les liens déterminées /CΛ sont négatifs, alors ne pas réunir la classe Ck avec une autre classe, sinon réunir la classe considérée Ck avec la classe Ck, avec laquelle ladite classe considérée Ck a le lien le plus fort, la valeur /CΛ la plus élevée, ajouter cette valeur au critère
CpOώ^jçς \ÈJqQ jusqu'à obtenir une stabilité du critère n
C(X)=( ∑lCA )+/QQ , à l'issue de cette étape 2), ledit procédé dispose k=ï de L classes avec L≤ K ,
3) prendre chaque objet O1 de chaque classe C1 (l≤ L) un par un, déterminer la valeur du lien lιC de cet objet avec chacune des classes C1 autre que la classe d'indice k dans laquelle il a été classé dans l'étape initiale, si la valeur du lien lιC avec la classe d'indice m est supérieure à la valeur du lien lιCt alors transférer l'objet de sa classe d'indice k à la nouvelle classe d'indice m, ceci est poursuivi jusqu'à ce que toutes les valeurs des liens lιCt soient négatives. La définition du lien /„' entre les objets ou les individus O1 et O, est explicitée plus en avant dans la description. A partir de la définition du critère de Condorcet C(X) défini par l'équation (4) ,
C(Z) = VVI su, -ax- S11 + S1,..
I=I V=I 2
= ∑∑(Au, -axAMir)xu, (4)
I=I V=I n n
I=I V=I
II ressort que le lien /„' entre les deux objets O1 et O1- n'est autre que le coût de la fonction économique du critère i.e :
I "1n1, = A U,,, - axAM,,,
Où A.., et AM11, sont l'accord (respectivement l'accord maximum possible) entre les deux objets O1 et O1, ,
Les liens entre un objet et une classe ainsi qu'entre deux classes sont définis plus loin dans la description.
Le tableau est par exemple un tableau carré représentatif de nxn objets.
Selon un mode de mise en œuvre, le procédé est exécuté pour un tableau rectangulaire représentatif de n objetsxa attributs et comporte une
étape de transformation du tableau n objetsxa attributs au tableau S contenant les valeurs de similarité sy existant entre lesdits objets O1.
L'invention concerne aussi un système permettant de classifier des données se présentant sous la forme d'un tableau S, chacun des éléments dudit tableau S correspondant à une valeur de similarité sυ existant entre lesdits objets O1 , caractérisé en ce qu'il comporte au moins les éléments suivants : un calculateur en liaison avec une base de données à classifier comprenant une mémoire de travail un processeur adapté à exécuter les étapes du procédé présentant l'une des caractéristiques précitées. Le système peut comporter une base de données contenant le résultat du procédé de classification selon l'invention exécuté sur le processeur.
D'autres caractéristiques et avantages de la présente invention apparaîtront mieux à la lecture d'un exemple non limitatif de réalisation en se référant aux figures qui représentent :
• La figure 1 , un schéma correspondant à une plateforme de traitement des données à classifier comprenant un moyen d'exécution du 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 des données ou de classification automatique des données.
La figure 1 représente un exemple de plate-forme sur laquelle le procédé selon l'invention est mis en œuvre. Cette plateforme comprend, par exemple, un calculateur 1 comprenant une mémoire de travail 2, un processeur 3, une mémoire tampon 4 dans le cas où la taille de la mémoire de travail n'est pas suffisante par rapport au volume des données traitées. La plateforme peut aussi contenir une base de données 5 contenant le résultat du procédé de classification selon l'invention exécuté sur le processeur 3. Le
calculateur 1 est en liaison avec une base de données 6 contenant les données à classifier. Le calculateur comporte aussi des entrées/sorties ou Interface Homme machine 7. L'interface Homme machine peut être un écran d'affichage sur lequel le résultat de classification sera présenté à un utilisateur. Les flèches représentées sur la figure 1 schématisent les différents échanges existant entre le processeur 3 et les différents éléments contenus dans la plateforme ou les éléments extérieurs à cette dernière.
Dans certains cas d'applications, lorsque les données ou objets à classifier ne se présentent pas sous une forme de tableau carré de dimension nxn, le procédé comprendra une phase de prétraitement ayant notamment pour fonction de mettre en forme les objets ou données à classifier sous une forme de tableau carré à n dimensions, où n est le nombre d'objets à classifier, un élément sv de ce tableau correspondant à la valeur de similarité existant entre deux objets O1 , O1 du tableau. Cette valeur de similarité est déterminée en mettant en œuvre un procédé connu de l'Homme du métier sous l'intitulé « calcul de similarité », qui ne sera pas explicité dans la suite de la description.
Dans l'exemple donné, le procédé va utiliser les objets d'une base dans laquelle les relations entre objets sont stockées et va considérer que chaque ligne du tableau carré contenant un profil de similarité sv correspondant à un objet donné O1 avec les autres objets O1 de la base de données à traiter. Les données traitées dans la présente demande de brevet sont des données se présentant sous la forme de carrés (ObjetsxObjets).
Le procédé va ensuite utiliser un profil binaire pour calculer rapidement les liens I11 entre tous les couples d'objets ( O1 1 O7 ). En utilisant des produits scalaires entre les deux profils des deux objets ( 0^ O1 ) ci- dessus, le procédé permet de ne faire qu'un produit scalaire global, pour calculer les similarités entre un objet et une classe au lieu de faire autant de produits scalaires que le nombre d'individus appartenant à la classe.
En résumé, l'algorithme de classification exécuté sur le processeur, va prendre en entrée, des données ou objets relationnelles complexes n*n où n est le nombre d'objets à traiter, et traiter ces objets O, de façon linéaire sans fixation arbitraire et a priori des paramètres de classification. Les résultats obtenus seront réinsérés dans une base de données. Si les données ne se présentent pas sous forme relationnelle, une étape de pré-traitement consistant à transformer ces données sous forme relationnelle par calcul de similarités entre objets, sera appliquée en amont. Ainsi, lorsque les données se présentent sous forme rectangulaire, un procédé de calcul de mesures de similarité entre les objets en présence sera utilisé pour créer des matrices carrées, qui traduisent les relations retenues entre les objets.
L'exemple qui suit est donné pour une base de données se présentant sous la forme d'un tableau carré S de dimensions n2 et de terme général sn, représentant la valeur de la similarité précitée obtenue par des méthodes connues de l'Homme du métier, entre deux objets O1 et O1, , où n est le nombre d'objets à classifier.
Les objets sont numérotés de 1 à n , l'indice / de l'objet O1 est donc le numéro de l'objet considéré.
Chaque objet O1 est représenté par deux vecteurs profils P" et P^ de dimension n tels que :
P
1" = (0,0, ... ,l, ...,0)
Le vecteur profil P
1" représente les similarités de l'objet O
1 avec les n autres objets de la population étudiée, y compris lui-même et P^ est un vecteur binaire ne contenant qu'une seule valeur non nulle égale à 1 à la position i de ce vecteur (numéro de O
1 ). Le critère à maximiser pour obtenir la partition finale ou classification d'un ensemble d'objets est le critère de Condorcet modifié C(Z) défini par :
Où :
• f(su,sιr) est une fonction des similarités propres (su ,sι,ι.) entre les
deux objets O1 et O1, , par exemple : f(sn ,sιY) = — — — pour une
moyenne arithmétique ou bien f(su ,sι,ι,) = φusιY pour une moyenne géométrique, etc.
• a est un seuil de similarité qui peut, soit, être calculé automatiquement par une fonction prenant en compte les similarités entre les objets de la base de données, soit, être défini par l'utilisateur.
Une fonction possible, donnant un seuil automatique est, par exemple,
• An, représente l'accord (ou similarité) entre les objets O1 et O1, ,
• AMn, représente l'accord maximum possible entre les objets O1 et O1, ,
• I
n, représente le lien entre les objets O
1 et O
1, (il représente aussi le coût de la fonction économique à maximiser), et
X
n, est le terme général de la matrice binaire carrée X de dimensions n
2 représentant la partition finale à trouver, et défini par : SiO
1 et O
1, sont dans la même classe de la partition finale
dans le cas contraire
En notant (•) le produit scalaire entre deux vecteurs quelconques et en utilisant les vecteurs profils P" et Pb on obtient :
p
b • p
s + p
s • p
b A. , = P
b » Pf = P
S » P
b = — — — —
i — — (1)
Pb • (?; -aP^+PÏ * (PS -aP;)
L = (3)
Ces calculs étant faits pour tous les couples d'objets de la base à classifier, l'algorithme est toujours de complexité O(n
2) à ce stade. Le critère à maximiser pour obtenir la partition finale ou classification d'un ensemble de classes est le critère de Condorcet modifié C(Z) défini par :
Pour passer au procédé de linéarisation, on doit calculer les termes correspondants aux formules (1 ), (2), (3) ci-dessus entre un objet O1 et une classe C et entre deux classes C et C
En utilisant la formule (1 ), il est possible de calculer les accords entre un objet O1 et une classe C et les accords entre deux classes C et C notés respectivement AιC et Acσ , en utilisant les deux formules suivantes
où Pc est un vecteur binaire de dimension n tel que toutes les composantes sont égales à 0 sauf celles correspondantes aux individus de la classe C et Pc est un vecteur de dimension n tel que chaque composante contient la somme des similarités entre chaque et tous les autres objets de la classe C :
ie C ps - Y PS ieC
De même, en utilisant la formule (2), il est possible de calculer les accords maximums possibles entre, d'une part, un objet O1 et une classe C noté
AMιC et, d'autre part, entre deux classes C et C noté AMCC, par les relations :
|C|(^ . ^)+
AM
!C = ∑AM
H, = (6) î'eC
ou :
= ∑(p>pή on définit, enfin, les liens lιC et lcc , entre respectivement un objet O1 et une classe C et entre deux classes C et C , par les relations :
lιC = A1C - OCX AM ιC lcc, = ACC, -axAMcc,
Si l'on note PG le vecteur binaire de dimension n dont toutes les composantes sont égales à 1 et PG , la trace de la matrice des similarités.
Autrement dit la somme des similarités propres de tous les objets de la population ou de tous les objets O
1 de la base de données :
alors la qualité Q
c d'une classe C sera donnée par la relation :
Les lettres C, C, ont été utilisées pour exposer de manière générique le principe du procédé mis en œuvre par l'invention, pour l'exemple qui va suivre, le Demandeur a utilisé des indices en plus pour différencier les classes.
Les définitions et les formulations étant posées, le procédé mis en œuvre par le processeur de la plateforme met en œuvre les étapes suivantes, étapes dont un synoptique est illustré à la figure 2. Etapel (Initialisation) :
L'initialisation consiste à partir des objets ^ contenus dans la base de données à classifier, et à former les classes au fur et à mesure. Il est bien entendu que pour cette étape, les données se trouvent déjà sous la forme d'un tableau carré T comme illustré précédemment qui a comme terme général sn, représentant la valeur prise par la similarité existante entre deux objets O1 et O1, .
La première étape consiste à prendre un objet O1 de la base qui a le moins de similarités possibles avec les autres objets, c'est-à-dire celui dont la
somme des composantes de son profil ^s est la plus petite. Autrement dit, on n choisit l'objet O1 pour lequel ∑sn, est la plus petite.
Ce choix permet d'identifier les classes d'objets les plus atypiques (celles qui contiennent les objets qui ont le moins de similarités avec la majorité des objets). Il permet aussi d'éviter d'avoir de très grosses classes, qui au fur et à mesure des itérations deviennent bruitées.
Il s'agit ensuite de mettre l'objet O1 trouvé dans une première classe C1 où il sera le seul élément. On choisira ensuite, parmi les objets restants, l'objet O1 dont la somme des éléments du profil P1 est la plus petite. On calcule ensuite le lien I jC λ
entre le nouvel objet O1 et la classe C1. Si le lien / ]C i est strictement positif
[ I 1C 1 > 0 ), alors on met l'objet O1 dans la classe C1 , sinon on crée une
nouvelle classe C2, dans laquelle on met le nouvel objet O1 .
Prendre, ensuite, un troisième objet O1,, , celui dont la somme des éléments du profil P1I la plus petite parmi ceux qui restent, calculer son lien Ii -C 1 ' ^ -C 2 avec les deux classes existantes C1 et C2 . Si les deux liens
Ii -C 1 ' ^ -C 2 sont négatifs, créer une nouvelle classe C3 et y mettre l'objet
O1,, , sinon mettre l'objet dans la classe C1 ou C2 avec laquelle il a le plus grand lien, valeur du lien la plus élevée.
Poursuivre ce procédé, jusqu'à ce que tous les objets soient affectés à une classe Ck .
A l'issue de cette première étape, le procédé dispose d'un ensemble de K classes contenant des objets qui sont reliés entre eux par des liens positifs les plus forts.
A cette étape le critère de Condorcet (formule 4) peut être reformulé en fonction des K classes sous la forme :
En effet à ce stade, seuls les liens des individus appartenant à une même classe seront pris en compte dans la valeur du critère. Etape2 ( Réunion de deux classes) : II s'agit ensuite de prendre les K classes C1 , C2, ..., C11. les unes après les autres, de calculer pour chaque classe considérée Ck ses liens lCtCt existant avec les autres classes Ck, (k'≠ k) . Si tous les liens de Ck avec les autres classes sont négatifs on laisse cette classe telle quelle et on choisit une autre classe, sinon on réunit la classe considérée Ck , avec la classe Q avec laquelle elle a le lien le plus fort, valeur /CΛ la plus élevée. Pour cela, le procédé va déterminer la valeur du lien /CΛ entre la classe Ck et une classe Ck, où (k'= l,2,..., κ) et (k'≠ k) ; cette réunion va augmenter la valeur du critère de Condorcet en l'augmentant de la valeur du lien /CΛ . Autrement dit en reprenant la formule (8) du critère on aura : C(X) = ( ∑/CΛ )+/CΛ (9)
Jt=I le procédé va donc déterminer la plus grande valeur du lien /CΛ trouvé et l'ajouter au critère C(x) . Ceci doit être réalisé tant qu'il y a une possibilité d'améliorer le critère. Le procédé calcule les liens tant qu'il existe un lien ayant une valeur positive. Il s'arrête quand tous les liens sont négatifs. A l'issue de cette deuxième étape, le procédé dispose d'un ensemble de L classes où L ≤ κ , (nombre de classes inférieur ou égal à la valeur K de classes initiales).
Etape 3 ( Transfert) :
L'étape transfert, consiste à transférer, lorsque cette opération participe à améliorer le critère de Condorcet, un objet O1 se trouvant dans une des L classes précédemment définies, de sa propre classe Ck à une autre classe Cm avec laquelle il a un meilleur lien c'est-à-dire, la classe telle que la valeur lιcm est la plus grande.
En effet, quand aucune réunion entre classes n'est plus possible, c'est-à-dire que tous les liens calculés à l'étape 2 sont négatifs, le procédé considère tous les objets O1 de chaque classe Ci un par un, avec / inférieur ou égal à L, le procédé détermine la valeur du lien de chaque objet O1 avec chacune des classes C1 autre que la classe d'indice k dans laquelle il a été classé dans l'étape initial. Si un objet O1 a un lien meilleur avec une autre classe que la sienne propre alors cet objet sera transféré de sa classe à la nouvelle classe d'indice m, avec laquelle il a le meilleur lien, ce qui correspond à la valeur lιC la plus élevée.
Ceci sera poursuivi jusqu'à ce qu'il n'y ait plus de possibilité d'amélioration du critère, c'est-à-dire lorsque toutes les valeurs des liens lιCt sont négatives.
Quand, aucun transfert des objets d'une classe à une autre n'est plus possible, on retourne à l'étape 2, pour voir s'il n'est pas possible d'améliorer le critère de Condorcet en réunissant d'autres classes. Les deux étapes précédentes seront appliquées jusqu'à ce qu'il ne puisse plus y avoir d'amélioration de la valeur du critère de Condorcet.
Cette invention trouve son application dans différents domaines aussi variés que le marketing en ligne, par exemple, ou la veille stratégique (co-dépôts de brevets, co-citations, co-publications, inventions communes, collaborations, etc.).
Pour le marketing en ligne, il est possible d'imaginer la surveillance de blogs sur Internet. Pour cela un nombre N de blogs sera étudié et un prétraitement préalable à la mise en œuvre du procédé permettra d'identifier sur chacun des blogs, les autres blogs référencés. A l'issue de ce prétraitement une matrice NXN identifiant les blogs qui sont en relation sera générée. Cette matrice correspond au tableau carré précité. Classifier ces blogs en mettant en œuvre le procédé selon l'invention, reviendra, donc, à identifier les groupes de blogs qui sont les plus liés les uns aux autres. On procédera ensuite, à l'intérieur de chaque groupe à des calculs statistiques pour identifier le blog le plus dynamique dans chaque groupe. Il suffira alors de proposer un produit donné à ce blog, pour qu'il en fasse la promotion auprès des autres blogs avec lesquels il est lié.
Pour une application à la veille stratégique, il sera possible d'aller regarder les bases de données brevets, presse, scientifiques, etc. On pourra, ensuite, extraire de ces bases des informations du type : quels sont les co- inventeurs dans le cas des brevets, quelles sont les co-citations dans des articles scientifiques, par exemple, les collaborations, etc. Toutes ces informations une fois classifiées (ou clusterisées) en exécutant le procédé selon l'invention, pourront permettre d'identifier les centres d'intérêt d'un groupe d'inventeurs (ou même d'une entreprise ou d'un pays) etc.
Cette invention utilise un procédé nouveau et original pour classifier de grandes bases de données, de façon rapide et linéaire. Elle prend en compte différents types de données : soit de type rectangulaire (objetsXvariables) représentant des variables mesurées sur les objets de la base, les variables sont par exemple des attributs a, soit de type carré (ObjetsXObjets) représentant des mesures de similarités ou de façon plus générale, des relations entre les objets de la base.