FR 3016062 A1 20150703 FR 1303123 A 20131231 Procédé de classification non supervisée d'une pluralité d'objets et le dispositif pour la classification non supervisée associé à ce procédé La présente invention concerne un procédé de classification non supervisée d'une pluralité d'objets techniques pour obtenir une partition de ces objets en une pluralité de classes permettant d'analyser ces objets, chaque objet technique étant décrit par une variable quantitative ou par une variable qualitative, la qualité de la partition obtenue étant décrite par un indicateur de qualité de cette partition, le procédé comportant une étape initiale comprenant : - la création d'un ensemble de classes à séparer comportant une ou plusieurs classes complémentaires composées de tous les objets techniques, et d'un ensemble vide de classes insécables ; et - le calcul d'un indicateur courant de qualité correspondant à l'indicateur de qualité de la partition obtenue. De tels procédés de classification sont utilisés dans de nombreux domaines techniques comme par exemple le domaine d'apprentissage non-supervisé, le domaine de cyber sécurité, le domaine de détection de fraude par exemple concernant l'utilisation de la carte bancaire ou tout autre domaine exploitant un grand nombre de données. Ces procédés de classification sont connus généralement sous le terme anglais « clustering ». De manière générale, les procédés de classification permettent d'analyser une base de données comportant des objets et de regrouper ces objets selon un ou plusieurs critères de ressemblance. Ces objets sont également appelés «les individus » dans l'état de la technique et la base de données dont ils font partie, est appelée « la population ». Chaque objet ou individu est décrit par une pluralité de variables permettant de le distinguer parmi d'autres objets. Il est courant d'utiliser deux types différents de telles variables. Un premier type de variables correspond aux variables qualitatives représentant une caractéristique ou une qualité de chaque objet. Ainsi, par exemple, dans le domaine de détection de fraude à la carte bancaire, chaque objet représentant une carte bancaire, peut être décrit par une variable qualitative indiquant le numéro de la carte bancaire associée, ou bien l'identifiant du commerçant ayant effectué la dernière transaction avec cette carte, ou encore le type de bien acheté par cette transaction. Dans le domaine de cyber sécurité, les variables qualitatives décrivant par exemple un poste connecté à un réseau informatique, sont représentées par exemple par l'adresse IP de ce poste, le protocole utilisé pour un flux de réseau ou encore un identificateur d'un paquet de données. Un deuxième type de variables correspond aux variables quantitatives représentant une quantité ou une mesure numérique liée à chaque objet. Dans le précédent exemple avec les cartes bancaires, une variable quantitative représente par exemple la valeur d'une transaction bancaire ou un nombre de transactions sur les dernières 24 heures effectuées par une carte donnée. En cyber sécurité, une telle variable quantitative représente par exemple la taille d'un paquet, une durée de connexion, un nombre de tentatives d'accès d'un utilisateur. Parfois, un troisième type de variables correspondant aux variables binaires, est utilisé. Toutefois, ce type de variables peut être considéré comme un cas particulier de variables qualitatives. Le partitionnement d'une base de données ou d'une population permet d'obtenir une partition d'objets ou d'individus dans une pluralité de classes de manière que des objets ou des individus d'une même classe se ressemblent plus que des objets ou des individus de classes différentes. Une telle ressemblance est souvent déterminée par une fonction de similarité de chaque couple d'objets ou d'individus définie pour une variable de chaque type. Il existe également des techniques qui n'utilisent pas de fonction de qualité mais uniquement des distances entre individus. Ainsi, la technique « K-means » est un exemple classique de technique de classification qui n'utilise pas le concept de qualité mais la distance euclidienne. De son côté, chaque partition obtenue est caractérisée par la qualité de cette partition. Cette qualité est décrite par exemple par un indicateur de qualité qui est d'autant plus grand que la qualité de la partition est élevée. Finalement, les procédés de classification non supervisée permettent de déterminer une partition de manière automatique satisfaisant à un ou plusieurs critères de classification prédéterminés. Le partitionnement obtenu est utilisé par exemple pour détecter des anomalies dans la base de données initiale. Plus particulièrement, la détection d'anomalies se base sur une première hypothèse selon laquelle les objets « normaux » sont fortement majoritaires dans la base de données initiale, et sur une deuxième selon laquelle les objets « anormaux » sont différents des objets « normaux ». La « normalité » d'objets est décrite donc par la taille de la classe contenant cet objet. Différents procédés de classification non-supervisée existent déjà dans l'état de la technique. Ainsi, par exemple, le procédé de classification non supervisée décrit dans le document WO 2007/068741 Al permet de déterminer une partition d'un grand nombre d'objets décrits par une pluralité de variables quantitatives dans des temps raisonnables sans avoir nécessité de fixer le nombre de classes de cette partition a priori. Cependant ce procédé comporte un certain nombre d'inconvénients. En particulier, pour les variables qualitatives ce procédé effectue une discrétisation ou un échantillonnage ce qui mène à une perte d'information. D'autres procédés existants dans l'état de la technique mènent souvent à des complexités de calcul trop élevées (quadratique en nombre d'objets par exemple) ou à une impossibilité de traiter simultanément les variables quantitatives et qualitatives ou à une nécessité de fixer a priori le nombre de classes dans la partition finale. La présente invention a pour but de remédier aux inconvénients cités ci-dessus. A cet effet, l'invention a pour objet un procédé de classification non supervisée d'une pluralité d'objets du type précité, caractérisé en ce qu'il comprend les étapes suivantes : - la séparation d'une classe sélectionnée dans l'ensemble de classes à séparer en deux classes intermédiaires et le calcul d'un indicateur suivant de qualité correspondant à l'indicateur de qualité de la partition obtenue ; - si l'indicateur suivant de qualité est supérieur à l'indicateur courant de qualité, l'ajout des deux classes intermédiaires dans l'ensemble de classes à séparer ; - dans le cas contraire : + pour chaque classe de l'ensemble de classes à séparer, le calcul de l'indicateur de qualité d'une partition obtenue après une fusion de cette classe avec la classe sélectionnée ; + le calcul d'un indicateur maximal parmi tous les indicateurs de qualité calculés ; + si l'indicateur maximal de qualité est supérieur à l'indicateur courant de qualité, l'ajout de la classe fusionnée correspondant à cet indicateur maximal de qualité, dans l'ensemble de classes à séparer ; + dans le cas contraire, l'ajout de la classe sélectionnée dans l'ensemble de classes insécables. Suivant d'autres aspects avantageux de l'invention, le procédé de classification non- supervisée d'une pluralité d'objets, comprend une ou plusieurs des caractéristiques suivantes, prises isolément ou suivant toutes les combinaisons techniquement possibles : - l'étape de séparation d'une classe en deux classes intermédiaires comprend les sous-étapes suivantes : - l'affectation de chaque objet de la classe à séparer à une première classe intermédiaire ou à une deuxième classe intermédiaire et le calcul d'un indicateur local courant de qualité correspondant à l'indicateur de qualité de la partition obtenue ; - pour chaque objet de la première classe intermédiaire, le calcul d'une valeur de transfert correspondant à la différence entre l'indicateur de qualité d'une partition obtenue après un transfert de cet objet vers la deuxième classe intermédiaire, et l'indicateur local courant de qualité ; - le calcul d'une valeur de transfert maximale parmi toutes les valeurs de transfert obtenues et l'initialisation d'un seuil de transfert, le seuil de transfert étant proportionnel à la valeur de transfert ; - tant que la valeur de transfert est supérieure à zéro : + la sélection d'un des objets correspondant à la valeur de transfert maximale et le transfert de tous les objets de la même classe intermédiaire que l'objet sélectionné et les valeurs de transfert supérieures ou égales au seuil de transfert, vers l'autre classes intermédiaires ; + le calcul d'un indicateur local suivant de qualité correspondant à l'indicateur de qualité de la partition obtenue ; + l'actualisation de la valeur de transfert maximale et de l'indicateur local courant de qualité par l'indicateur local suivant de qualité ; - le seuil de transfert est diminué si l'indicateur local suivant de qualité est supérieur à l'indicateur local courant de qualité ; et le seuil de transfert est augmenté dans le cas contraire ; - l'indicateur de qualité d'une partition donnée dépend de chaque fonction de similarité de chaque couple d'objets définie pour chaque variable quantitative ou qualitative ; - la fonction de similarité d'un couple d'objets formé d'un premier objet et d'un deuxième objet, pour une variable qualitative, est une fonction d'un nombre d'objets sur lesquelles cette variable qualitative prend une même valeur qui est égale à la valeur de cette variable qualitative sur le premier objet ; - la fonction de similarité d'un couple d'objets formé d'un premier objet et d'un deuxième objet, pour une variable quantitative, est une fonction d'un nombre d'objets sur lesquelles cette variable quantitative prend une valeur comprise dans un intervalle défini par des valeurs correspondant aux valeurs que prend cette variable quantitative sur le premier objet et sur le deuxième objet ; - le procédé comprend en outre une étape de recherche d'anomalies dans chaque partition obtenue, consistant à associer un niveau d'anormalité pour chaque classe de la partition obtenue, des anomalies étant contenues dans chaque classe avec un niveau d'anormalité supérieur à un seuil d'anormalité prédéterminé ; - le niveau d'anormalité est déterminé pour chaque classe à l'aide d'une fonction de dissimilarité globale de chaque couple d'objets déterminant la dissemblance de ces objets indépendamment des variables vk ; - les objets techniques sont d'un type compris dans le groupe consistant en : - un évènement dans un réseau informatique ; - un évènement relatif à une utilisation d'une carte bancaire. L'invention a également pour objet un produit programme d'ordinateur comportant des instructions logicielles qui, lorsque mis en oeuvre par un équipement informatique, met en oeuvre un procédé tel que défini ci-dessus. L'invention a également pour objet un dispositif pour la classification non supervisée d'une pluralité d'objets techniques pour obtenir une partition de ces objets en une pluralité de classes permettant d'analyser ces objets, chaque objet technique étant décrit par une variable quantitative ou par une variable qualitative, la qualité de la partition obtenue étant décrite par un indicateur de qualité de cette partition, le dispositif étant caractérisé en ce qu'il comporte des moyens de traitement aptes à: - créer un ensemble de classes à séparer comportant une ou plusieurs classes complémentaires composées de tous les objets techniques, et un ensemble vide de classes insécables ; et - calculer un indicateur courant de qualité correspondant à l'indicateur de qualité de la partition obtenue ; - séparer une classe sélectionnée dans l'ensemble de classes à séparer en deux classes intermédiaires et calculer un indicateur suivant de qualité correspondant à l'indicateur de qualité de la partition obtenue ; - si l'indicateur suivant de qualité est supérieur à l'indicateur courant de qualité, ajouter les deux classes intermédiaires dans l'ensemble de classes à séparer ; - dans le cas contraire : + pour chaque classe de l'ensemble de classes à séparer, calculer l'indicateur de qualité d'une partition obtenue après une fusion de cette classe avec la classe sélectionnée ; + calculer un indicateur maximal parmi tous les indicateurs de qualité calculés ; + si l'indicateur maximal de qualité est supérieur à l'indicateur courant de qualité, ajouter la classe fusionnée correspondant à cet indicateur maximal de qualité, dans l'ensemble de classes à séparer ; + dans le cas contraire, ajouter la classe sélectionnée dans l'ensemble de classes insécables. Ces caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple non limitatif, et faite en référence aux dessins annexés, sur lesquels : - la figure 1 est une vue schématique du dispositif pour la classification non supervisée selon l'invention ; - la figure 2 est un organigramme d'un procédé de classification non supervisée selon l'invention ; - la figure 3 est un organigramme d'une étape de séparation faisant partie du procédé de la figure 2 ; et - la figure 4 est un graphe illustrant le temps de calcul du procédé de la figure 2 pour des nombres différents de données d'entrée. Un dispositif 10 pour la classification non supervisée est illustré sur la figure 1. Le dispositif 10 comporte une unité 12 de traitement de données formée par exemple d'un processeur 14 et d'une mémoire 16 associée à ce processeur 14. Le processeur 14 est apte à exécuter une pluralité de logiciels que la mémoire 16 est apte à stocker. En variante, le dispositif 10 comporte une pluralité de processeurs 14 permettant d'exécuter plusieurs logiciels ou des parties différentes d'un même logiciel en parallèle. Ainsi, la mémoire 16 est apte à stocker un logiciel 20 de classification non supervisée mettant un oeuvre un procédé 100 de classification non supervisée selon l'invention. Le dispositif 10 est par exemple un ordinateur ou un calculateur comportant une pluralité de processeurs et connecté à un réseau informatique. Le logiciel de classification 20 est utilisé par exemple dans le domaine de cyber sécurité et permet de détecter des intrusions dans des flux du réseau informatique. Pour ceci, le logiciel 20 est relié à des moyens de détection d'évènements du réseau informatique. Le logiciel 20 est alors apte à obtenir une partition de ces évènements et à analyser la partition obtenue afin de déterminer des évènements anormaux. La détermination des évènements anormaux permet ainsi de détecter des intrusions dans des flux du réseau informatique. Plus particulièrement, le logiciel de classification non supervisée 20 est relié à une première base de données BD, et à une deuxième base de données BD2. Les deux bases de données BD, et BD2 sont stockées dans la mémoire 16. En variante, au moins l'une des bases de données BD, ou BD2 est stockée hors du dispositif 10 dans un serveur relié au dispositif 10 via le réseau informatique. La première base de données BD, comporte un ensemble O composé de N objets oi, c'est-à-dire : O = (01, 02, ..- , ON). Chaque objet oi désigne par exemple un évènement du réseau informatique fourni 35 par les moyens de détection d'évènements. Chaque évènement correspond par exemple à toute action effectuée par un utilisateur ou un logiciel du réseau informatique et ayant un impact sur le fonctionnement de ce réseau informatique. Plus particulièrement, ces évènements sont fournis par exemple par un fichier « logs de firewalls » mémorisant des évènements comme : la connexion d'un utilisateur à un ordinateur donné, la durée ou la fréquence de cette connexion supérieure à un seuil prédéterminé, la taille totale de paquets échangés supérieure à un seuil prédéterminé ou bien d'autres. Ainsi, par exemple, chaque objet oi est représenté dans la base de données BDi sous la forme d'un identifiant unique numérique ou alphanumérique relatif à l'évènement correspondant. Cet identifiant permet ainsi de distinguer chaque objet ot ou évènement de façon unique et certaine. La première base de données Bai comporte en autre un ensemble V composé de M variables vk, c'est-à-dire : V = v2, vm). Chaque variable 12k permet de décrire chaque objet oi en associant à cet objet oi une valeur ot . Plus précisément, une variable vk qualitative permet de décrire un évènement en associant à l'objet oi correspondant une caractéristique ou une qualité. Ainsi, par exemple, pour un ensemble O composé de cinq évènements, une variable qualitative y1 indiquant le protocole utilisé lors d'une transmission de données via le réseau informatique, prend l'une de ces trois valeurs : « TCP », « UDP » et « ICMP ». Pour des raisons de commodité de représentation, une valeur numérique est associée à chacune de ces valeurs, à savoir « 1 » pour « TCP », « 2 » pour « UDP » et « 3 » pour « ICMP ». En outre, une variable vi quantitative permet de décrire un objet oi en représentant une quantité ou une mesure numérique liée à l'évènement correspondant. Dans l'exemple présenté ci-dessus, une variable quantitative 122 indiquant la taille d'un paquet de données transmis mesurée en Ko prend une valeur comprise par exemple entre « 100 » et « 200 ». Cette correspondance entre l'ensemble d'objets O et l'ensemble de variables V est stockée dans la première base de données BDi sous la forme d'une table T comportant N lignes et M colonnes. Ainsi, une cellule de la table T correspondant à une ligne avec le numéro i et à une colonne avec le numéro k comporte une valeur oit' que prend la variable vk sur l'objet oi. Un exemple d'une telle table T pour un ensemble d'objets O composé de cinq objets oi et l'ensemble de variables V composé de trois variables vk est illustré ci-dessous :35 V1 V2 V3 01 1 2 3 ol 01 01 02 ..., , 1 2 ,., 3 2 0 2 ,..,2 03 1 2 ,.., 3 03 03 ..,3 04 1 2 , 3 04 04 '-'4 05 1 2 3 05 05 05 Dans cette table, la variable y1 est par exemple une variable qualitative et les variables y2 et y3 sont par exemple des variables quantitative. La deuxième base de données BD2 comporte une partition Par d'objets oi en P classes différents, c'est-à-dire : Par = [C1, C2, , C,,) où le symbole C1 désigne une classe d'objets oi. Chaque partition Par est apte à être déterminée par le procédé de classification non supervisée 100 selon un critère de classification prédéterminé de façon que deux objets (01; of) quelconques pris dans une même classe C1 se ressemblent plus que deux objets (oi; of) quelconques pris dans deux classes différentes. Le critère de classification ainsi que la notion de ressemblance sont détaillés plus tard dans la description. Chaque partition Par est stockée dans la deuxième base de données BD2 sous la forme d'une liste de classes obtenues (C1, C2, , Cp) où chaque classe C1 est stockée sous la forme d'une liste d'identifiants des évènements correspondant aux objets ot de cette classe C1. La ressemblance de deux objets (os; of) quelconques est déterminée à l'aide d'une matrice Ck de ressemblance locale de taille N x N définie pour une variable vk avec un terme général Cf . Ce terme général Ci" prend une valeur « 1» si la variable vk prend une même valeur sur les deux objets (01; of), et une valeur « 0 » dans le cas contraire, c'est-à- dire : dc. =11 sio=of CJ sinon Une matrice C de ressemblance globale permet de caractériser la ressemblance de deux objets (ot; of) quelconques sur l'ensemble de variables V. Une telle matrice C est définie par la relation suivante : C =Ick k=1 Ainsi, la matrice de ressemblance globale C montre le nombre de variables vk pour lesquelles deux objets donnés partagent une même valeur. La ressemblance de deux objets (oi; of) quelconques sur une variable 12k est définie par une fonction Sti de similarité de ce couple d'objets. À son tour, cette fonction de similarité Se') est définie différemment pour une variable vk qualitative et pour une variable vk quantitative. La dissemblance de deux objets (oi; of) quelconques sur une variable vk est définie par une fonction de dissimilarite Sif complémentaire à la fonction de similarité si). -k La fonction de dissimilarité Sif est définie par la relation suivante : -k Sà S jkj k = 2 . Pour une variable vk qualitative, la fonction de similarité .51'f d'un couple d'objets (os; of) est définie par la relation suivante : cik* =fi - où Cik est définie par la relation cic* =Ici" j=1 et signifie le nombre d'objets sur lesquelles cette variable qualitative vk prend une même valeur qui est égale à la valeur ot de cette variable qualitative sur l'objet ot. Pour une variable vk quantitative, la fonction de similarité St./ d'un couple d'objets (oi; of) est définie par la relation suivante : SI) = 1 - Nsk- où Ni, signifie un nombre d'objets sur lesquelles cette variable quantitative vk prend une valeur comprise dans un intervalle intlici dont les bornes sont définies par les valeurs olic et of. Autrement dit, Ni) est la cardinalité de l'ensemble suivant : Inttf = E 01(01e Ok On V (Of Ok On), où le symbole V signifie la disjonction logique de deux propositions. Finalement, la ressemblance de deux objets (os; of) quelconques indépendamment des variables 12k est définie par une fonction Sif de similarité globale de ce couple d'objets. Cette fonction de similarité globale Sif est définie par la relation suivante : si = 0 sinon su . k=1 De manière analogue, une fonction de dissimilarité globale déterminant la dissemblance de deux objets (os; of) quelconques indépendamment des variables 17k, est définie par la relation suivante : k=1 Il est également possible d'utiliser autres types d'expressions pour les fonctions de -k similarité Sic], de dissimilarité Sii , de similarité globale Sii et/ou de dissimilarité globale S. Le critère de classification est basé sur la fonction de similarité globale Sif et consiste à trouver une partition Par = (Ci,C2,...,Cp) de façon à maximiser l'expression suivante : f Sii - (1 - Sul clEpar oi,ojEci otEci où 1C11 désigne le nombre d'objets dans la classe C1. Cette expression définit un indicateur / de qualité de la partition Par. La qualité de la partition Par est alors définie par la valeur numérique de cet indicateur I et est d'autant plus élevée que cette valeur est grande. Afin d'accélérer le calcul de l'indicateur de qualité I, les expressions Sii et Su oboject ojEci faisant partie de l'expression (6) sont aptes à être calculées séparément pour des variables qualitatives et pour des variables quantitatives. Ainsi, pour les variables qualitatives, ces expressions prennent les formes suivantes : Sii = Ci(vk)2 (1 °(12k)) et oi,ojEct isksp 1Su= C(v k) (1 ( (1) k) N )oiEci 15k513 où Ci(vk) désigne le nombre d'objets dans la classe C1 ayant la même valeur dans la variable vk et 0(vk) désigne le nombre d'objets dans l'ensemble d'objets O ayant la même valeur dans la variable vk. Pour les variables quantitatives, ces expressions prennent les formes suivantes : = = IC/12 - -2 I lp + Icil - p2 - 1 obojeci oiect N 15p5Icil Ainsi, l'indicateur / est apte à être calculé en un temps proportionnel au nombre d'objets N, c'est-à-dire en 0(N). Le fonctionnement du logiciel de classification 20 mis en oeuvre par le procédé de classification non supervisée 100 va désormais être expliqué. L'organigramme du procédé de classification non supervisée 100 est représenté sur la figure 2. Lors d'une étape 105 préliminaire, le logiciel de classification 20 reçoit la table T correspondant à l'ensemble d'objets O désignant chacun un évènement du réseau informatique, et à l'ensemble de variables V décrivant chacun des évènements 10 correspondants, en provenance de la première base de données BDi. Puis, le logiciel 20 crée un ensemble de classes à séparer CN contenant une classe unique C1. Cette classe C1 contient initialement tous les objets oi de l'ensemble d'objets 0, c'est-à-dire : CN = Ci.= O. Le logiciel 20 crée en outre un ensemble de classes insécables CO, cet ensemble CO 15 est initialement vide, c'est-à-dire : CO = 0. Le logiciel 20 obtient ainsi une partition Par contenant une seule classe C1, c'est-à- dire : Par = (CO. Il également possible de définir plusieurs classes différentes dans la partition initiale de façon que l'ensemble de ces classes contient chaque objet de l'ensemble d'objets. 20 Puis, le logiciel 20 calcule l'indicateur de qualité! de cette partition Par et définit une variable /c appelé également « indicateur courant de qualité » et égale à la valeur de cet indicateur!. Si lors de l'étape 110 l'ensemble de classes à séparer CN n'est pas vide, le logiciel 20 passe à l'étape 120. 25 Lors de cette étape 120, le logiciel 20 sélectionne une classe G5 dans l'ensemble de classes à séparer CN et sépare cette classe en deux classes intermédiaires complémentaires C et G, c'est-à-dire : Cs = u n = 0. La séparation de cette classe Cs s'effectue en plusieurs sous-étapes décrites ci-dessous. La figure 3 illustre un organigramme de cette étape 120. 30 Lors de la sous-étape 121, le logiciel 20 initialise les deux classes intermédiaires Ci et en distribuant chaque objet oi de la classe C1 dans l'une des classes intermédiaires. Cette distribution s'effectue par exemple aléatoirement ou en appliquant une loi de distribution prédéterminée. Puis, le logiciel 20 calcule un indicateur local courant de qualité //c correspondant à l'indicateur de qualité de la partition Par\{Cs)u (CD u (C). Lors de la sous-étape 122, pour chaque objet oi de la première classe intermédiaire CI, le logiciel 20 calcule une valeur de transfert Di correspondant à la différence entre l'indicateur de qualité / d'une partition obtenue après un transfert de cet objet oi vers la deuxième classe intermédiaire C, et l'indicateur local courant de qualité //c, c'est-à-dire : Di = I (Par\g's) u gl\(oi)} u U foi))) - Ilc. Le même calcul est effectué pour les objets de la deuxième classe intermédiaire. Lors de la sous-étape 123, le logiciel 20 calcule une valeur de transfert maximale M parmi toutes les valeurs de transfert Di obtenues, c'est-à-dire : M = max (Di] 1 5_ i Lors de cette même sous-étape, le logiciel 20 calcule un seuil de transfert L égal au produit de la valeur de transfert maximale M et d'une variable de transfert comprise entre 0 et 1, c'est-à-dire : L = Tant que la valeur de transfert maximale M est supérieure à zéro lors de la sous-étape 124, le logiciel 20 passe à la sous-étape 125 suivante. Lors de cette sous-étape 125, le logiciel 20 choisit un des objets correspondant à la valeur de transfert maximale M et fait le transfert de tous les objets ot de la même classe intermédiaire que l'objet choisi ayant les valeurs de transfert Di supérieures ou égales au seuil de transfert L, vers l'autre classe intermédiaire C. Puis, le logiciel 20 calcule un indicateur local suivant de qualité Ils correspondant à l'indicateur de qualité / de la partition obtenue, c'est-à-dire : Ils = I (Par\g's} u (Cl\T)U {C'u T)) où T est un ensemble défini par la relation suivante : T = (oilDi L). Si l'indicateur local suivant de qualité Ils est supérieur à l'indicateur local courant de qualité //c, le logiciel 20 diminue la valeur de la variable de transfert fi et actualise l'indicateur local courant de qualité //c par l'indicateur local suivant de qualité Ils. En outre, le logiciel 20 actualise les valeurs Di et M. Dans le cas contraire, le logiciel 20 augmente la valeur de la variable de transfert fi et fait un transfert inverse. Si lors de la sous-étape 124, la valeur de transfert maximale M est inférieure ou égale à zéro, lors de la sous-étape 126, le logiciel 29 calcule un indicateur suivant de qualité /s correspondant à l'indicateur de qualité de la partition Par' définie par la relation suivante : Par' = Par\(Cs) U (CD U {C) Si l'indicateur /s est supérieur à l'indicateur /c, la séparation de la classe C1 est effectuée et la partition Par obtenue est associée à la partition Par', c'est-à-dire : Par = Par'. Dans le cas contraire, le logiciel 20 réessaye de séparer la classe sélectionnée plusieurs fois afin d'atteindre une qualité améliorée de la partition. Puis, lors de cette étape 130, le logiciel 20 compare l'indicateur courant de qualité /c avec l'indicateur suivant de qualité /s. Si l'indicateur suivant de qualité /s est supérieur à l'indicateur courant /c de qualité, le logiciel 20 ajoute les deux classes intermédiaires C; et C dans l'ensemble de classes à séparer CN lors de l'étape 135, c'est-à-dire : CN' = CN u {Ci) u (C), CN = CN' et puis, passe à l'étape 110. Dans le cas contraire, lors de l'étape 150, pour chaque classe C1 de l'ensemble de classes insécables CO, le logiciel 20 calcule l'indicateur de qualité It d'une partition Par' obtenue après une fusion de cette classe avec la classe sélectionnée Cs, c'est-à-dire : = (Par'), Par' = Par\{C,} U (Cs u C1) avec C1 e CO. Puis, le logiciel 20 calcule un indicateur maximal de qualité Imax parmi tous les indicateurs de qualité // calculés. Si l'indicateur maximal Imax de qualité est supérieur à l'indicateur courant de qualité /c, le logiciel 20 ajoute la classe fusionnée correspondant à cet indicateur maximal de qualité Imax, dans l'ensemble de classes à séparer CN, c'est-à-dire : CN' = CN u (C; u C1), CN = CN'. Puis, le logiciel 20 actualise la partition Par par la partition Par' correspondant à cet indicateur maximal Imax de qualité. Dans le cas contraire, le logiciel 20 ajoute la classe sélectionnée Cs dans l'ensemble de classes insécables CO, c'est-à-dire : CO' = CO u [CO. Puis, le logiciel passe à l'étape 110. Lors de l'étape 160, le logiciel 20 détermine pour chaque classe Ci une liste d'évènements correspondant aux objets oi que cette classe Ci contient selon la partition obtenue Par = CO. Puis, le logiciel 20 envoie l'ensemble des listes obtenues vers la base de données BD2. Cette base de données BD2 est ensuite exploitée pour l'analyse des évènements du réseau informatique. En particulier, le logiciel 20 détecte des anomalies ou des intrusions dans le réseau informatique, en distinguant dans la partition obtenue des objets dits normaux on 10 correspondant aux évènements normaux, et des objets dits anormaux oa correspondant aux évènements anormaux. Selon une hypothèse, les objets normaux on sont fortement majoritaires dans l'ensemble d'objets O alors que les objets anormaux oa sont minoritaires. Ainsi, la détection d'anomalies consiste à associer un niveau d'anormalité AL pour 15 chaque classe de la partition obtenue, les objets anormaux oa étant contenues dans chaque classe avec un niveau d'anormalité supérieur à un seuil d'anormalité prédéterminé AT. Ce niveau d'anormalité AL est déterminé pour chaque partition obtenue Par à l'aide de la fonction de dissimilarité globale de chaque couple. Pour calculer ce niveau d'anormalité AL, lors du procédé de classification, le logiciel 20 20 construit un graphe G dont chaque noeud ri correspond à une exécution de l'étape 120 de séparation ou de l'étape 150 de fusion si cette fusion a amélioré l'indicateur de qualité de la partition Par. Chaque noeud de ce graphe G contient en plus des informations sur une classe temporaire P sur lequel le calcul lors de l'étape correspondante a été effectué. Ainsi, la 25 classe P correspond à la classe sélectionnée Cs lors de l'étape 120 de séparation et à la classe fusionnée lors de l'étape 150 de fusion. Le graphe G est stocké par exemple dans la mémoire 16. Le niveau d'anormalité AL pour une classe Ci de la partition Par finale est défini par la relation suivante : m(ci)( . Z 1 icin" 1 1 .'ccb / I ICMI(IPI - ICi(P)I) ICiIICil nEG j#i aECibECi / \nEG 30 où Ci(P) est un ensemble induit par la classe temporaire P sur la partition finale Par. Cet ensemble est définie par la relation suivante : CO) = Gin P. Finalement, le logiciel 20 compare le niveau d'anormalité AL de chaque classe avec le seuil prédéterminé. Les évènements anormaux du réseau informatique correspondent aux objets ot contenus dans les classes ayant le niveau d'anormalité AL supérieur à ce seuil. En variante, pour un dispositif 10 comportant plusieurs processeurs 14, une ou plusieurs étapes du procédé 100 sont exécutées en parallèle. Selon un mode de réalisation de l'invention, le calcul des valeurs de transfert Di lors des sous-étapes 122 et 125 du procédé 100 est optimisé par la formule suivante : = (2,6' - (1 - fl))Saa - 2 Sia 2 Sia - (1 - /3) Sii - sii otecl oiEq oieC otECI OÙ Da correspond à la valeur de transfert de l'objet oa E Pour les variables qualitatives les expressions ci-dessus prennent la forme suivante : O(v))Sia = (va) (1 N oieci et pour les variables quantitatives : Sa = Ti(I Ni a+1 ItOi E Ci la La figure 4 illustre un graphe de la dépendance du temps de calcul d'une partition par rapport au nombre d'objets N. Le nombre d'objets N varie entre 0 et 40 000. Le graphe illustré sur la figure 4 permet de conclure que cette dépendance est une fonction linéaire. Le procédé de classification non supervisée permet de déterminer une partition d'objets en une pluralité de classes sans avoir nécessité de définir le nombre de classes a priori. De plus, ce procédé permet de traiter un grand nombre de données hétérogènes en temps expérimentalement linéaire ce qui constitue un avantage particulier de la présente invention. En outre, ce procédé permet de détecter des objets « anormaux » dans la base de données initiale en temps expérimentalement linéaire. Ce procédé est simple en réalisation et se base sur la théorie de l'analyse relationnelle connue dans l'état de la technique d'après les travaux de Marcotorchino et Michaud. REVENDICATIONS1.- Procédé (100) de détermination d'évènements anormaux dans un réseau informatique consistant en une classification non supervisée d'une pluralité d'objets (or) techniques constituant chacun un évènement dans le réseau informatique, pour obtenir une partition (Par) de ces objets en une pluralité de classes (Cr) permettant d'analyser ces objets afin de déterminer des évènements anormaux, chaque objet technique (or) étant décrit par une variable (vk) quantitative ou par une variable (vk) qualitative, la qualité de la partition (Par) obtenue étant décrite par un indicateur (/) de qualité de cette partition (Par), le procédé (100) comportant une étape (105) initiale comprenant : - la création d'un ensemble de classes à séparer (CN) comportant une ou plusieurs classes complémentaires composées de tous les objets techniques (or), et d'un ensemble vide de classes insécables (CO) ; et - le calcul d'un indicateur courant de qualité (/c) correspondant à l'indicateur de qualité (/) de la partition (Par) obtenue ; et le procédé (100) étant caractérisé en ce qu'il comprend les étapes suivantes : - la séparation (120) d'une classe sélectionnée (C3) dans l'ensemble de classes à séparer (CN) en deux classes intermédiaires (Ci, CD et le calcul d'un indicateur suivant de qualité (/s) correspondant à l'indicateur de qualité (/) de la partition obtenue ; - si l'indicateur suivant de qualité (/s) est supérieur à l'indicateur courant de qualité (Ic), l'ajout (135) des deux classes intermédiaires (Ci, CD dans l'ensemble de classes à séparer (CN) ; - dans le cas contraire : + pour chaque classe (Cr) de l'ensemble de classes à séparer (CN), le calcul de l'indicateur de qualité (4) d'une partition (Par) obtenue après une fusion de cette classe (C1) avec la classe sélectionnée (C5) ; + le calcul d'un indicateur maximal (Imax) parmi tous les indicateurs de qualité (Ir) calculés ; + si l'indicateur maximal de qualité (Imax) est supérieur à l'indicateur courant de qualité (ic), l'ajout de la classe fusionnée correspondant à cet indicateur maximal de qualité, dans l'ensemble de classes à séparer (CN); + dans le cas contraire, l'ajout de la classe sélectionnée (CO dans l'ensemble de classes insécables (CO). 2.- Procédé (100) selon la revendication 1, caractérisé en ce que l'étape de séparation (120) d'une classe (Cr) en deux classes intermédiaires (CI, CD comprend les sous-étapes suivantes :- l'affectation (121) de chaque objet (or) de la classe (Ci) à séparer à une première classe intermédiaire (Ci) ou à une deuxième classe intermédiaire (Ci) et le calcul d'un indicateur local courant de qualité (1k) correspondant à l'indicateur de qualité (I) de la partition (Par) obtenue ; - pour chaque objet (os) de la première classe intermédiaire (CD, le calcul (122) d'une valeur de transfert (Di) correspondant à la différence entre l'indicateur de qualité (/) d'une partition obtenue après un transfert de cet objet (os) vers la deuxième classe intermédiaire (CD, et l'indicateur local courant de qualité (HO ; - le calcul (123) d'une valeur de transfert maximale (M) parmi toutes les valeurs de transfert (Di) obtenues et l'initialisation d'un seuil de transfert (L), le seuil de transfert (L) étant proportionnel à la valeur de transfert (Di) ; - tant que la valeur de transfert (Di) est supérieure à zéro : + la sélection d'un des objets (os) correspondant à la valeur de transfert maximale (M) et le transfert de tous les objets (os) de la même classe intermédiaire (CI, CD que l'objet sélectionné et les valeurs de transfert (De) supérieures ou égales au seuil de transfert (L), vers l'autre classes intermédiaires (CI, ; + le calcul d'un indicateur local suivant de qualité (Ils) correspondant à l'indicateur de qualité (I) de la partition (Par) obtenue ; + l'actualisation de la valeur de transfert maximale (M) et de l'indicateur local courant de qualité (Mc) par l'indicateur local suivant de qualité (Ils). 3.- Procédé (100) selon la revendication 2, caractérisé en ce que : - le seuil de transfert (L) est diminué si l'indicateur local suivant de qualité (Ils) est supérieur à l'indicateur local courant de qualité (tic) ; et - le seuil de transfert (L) est augmenté dans le cas contraire. 4.- Procédé (100) selon l'une quelconque des revendications précédentes, caractérisé en ce que l'indicateur de qualité (I) d'une partition (Par) donnée dépend de chaque fonction de similarité (Sri) de chaque couple d'objets (os; of) définie pour chaque variable (vk) quantitative ou qualitative. 5.- Procédé (100) selon la revendication 4, caractérisé en ce que la fonction de similarité (S)) d'un couple d'objets (os; oi) formé d'un premier objet (os) et d'un deuxième objet (of), pour une variable qualitative (vk), est une fonction d'un nombre d'objets (Cri) sur lesquelles cette variable qualitative (vk) prend une même valeur (or) qui est égale à la valeur (o(c) de cette variable qualitative (vk) sur le premier objet (os). 6.- Procédé (100) selon la revendication 4 ou 5, caractérisé en ce que la fonction de similarité (Sri) d'un couple d'objets (os; of) formé d'un premier objet (oi) et d'un deuxième objet (of), pour une variable quantitative (vk), est une fonction d'un nombre d'objets (Ne')) sur lesquelles cette variable quantitative (vk) prend une valeur (ok) comprise dans un intervalle défini par des valeurs correspondant aux valeurs (or; of) que prend cette variable quantitative (vk) sur le premier objet (oi) et sur le deuxième objet (oi). 7.- Procédé (100) selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend en outre une étape de recherche d'évènements anormaux dans chaque partition (Par) obtenue, consistant à associer un niveau d'anormalité (AL) pour chaque classe (C1) de la partition (Par) obtenue, des évènements anormaux étant contenus dans chaque classe (Ci) avec un niveau d'anormalité (AL) supérieur à un seuil d'anormalité (AT) prédéterminé. 8.- Procédé selon la revendication 7, caractérisé en ce que le niveau d'anormalité (AL) est déterminé pour chaque classe (C1) à l'aide d'une fonction de dissimilarité globale de chaque couple d'objets (os; ai) déterminant la dissemblance de ces objets (oi; of) indépendamment des variables vk. 9.- Produit programme d'ordinateur comportant des instructions logicielles qui, lorsqu'elles sont mises en oeuvre par un ordinateur, mettent en oeuvre le procédé (100) selon l'une quelconque des revendications précédentes. 10.- Dispositif (10) de détermination d'évènements anormaux dans un réseau informatique pour la classification non-supervisée d'une pluralité d'objets (oi) techniques constituant chacun un évènement dans le réseau informatique, pour obtenir une partition (Par) de ces objets en une pluralité de classes (C1) permettant d'analyser ces objets afin de 30 déterminer des évènements anormaux, chaque objet technique (oi) étant décrit par une variable (vk) quantitative ou par une variable (vk) qualitative, la qualité de la partition (Par) obtenue étant décrite par un indicateur (/) de qualité de cette partition (Par), le dispositif (10) étant caractérisé en ce qu'il comporte des moyens de traitement aptes à:- créer un ensemble de classes à séparer (CN) comportant une ou plusieurs classes complémentaires composées de tous les objets techniques (oi), et un ensemble vide de classes insécables (CO) ; et - calculer un indicateur courant de qualité (/c) correspondant à l'indicateur de qualité (/) de la partition (Par) obtenue ; - séparer (120) une classe sélectionnée (C,) dans l'ensemble de classes à séparer (CN) en deux classes intermédiaires (Ci, CD et calculer un indicateur suivant de qualité (/s) correspondant à l'indicateur de qualité (/) de la partition obtenue ; - si l'indicateur suivant de qualité (/s) est supérieur à l'indicateur courant de qualité VO, ajouter (135) les deux classes intermédiaires (CI, CD dans l'ensemble de classes à séparer (CN); - dans le cas contraire : + pour chaque classe (C1) de l'ensemble de classes à séparer (CN), calculer l'indicateur de qualité (//) d'une partition (Par) obtenue après une fusion de cette classe (C1) avec la classe sélectionnée (Cs) ; + calculer un indicateur maximal (/max) parmi tous les indicateurs de qualité (//) calculés ; + si l'indicateur maximal de qualité (Imax) est supérieur à l'indicateur courant de qualité (/c), ajouter la classe fusionnée correspondant à cet indicateur maximal de qualité, dans l'ensemble de classes à séparer (CN); + dans le cas contraire, ajouter la classe sélectionnée (Cs) dans l'ensemble de classes insécables (CO).