REDUCTION DE BASE DE DONNEES PAR LA CLASSIFICATION AUTOMATIQUE

59 342 0
REDUCTION DE BASE DE DONNEES PAR LA CLASSIFICATION AUTOMATIQUE

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

INSTITUT DE LA FRANCOPHONIE POUR L’INFORMATIQUE RAPPORT DU STAGE REDUCTION DE BASE DE DONNEES PAR LA CLASSIFICATION AUTOMATIQUE Sous la direction de Pr Georges HEBRAIL, ENST Paris Réalisé par LE Anh Tuan, IFI Hanoi Décembre 2004 Remerciements Je tiens remercier mon encadrant du stage, Monsieur Georges Hébrail, le professeur du département Informatique et Réseaux (INFRES), ENST Paris, pour sa disponibilité, son soutient et son aide précieuse pendant toute la durée du stage Je voudrais également remercier chaleureusement Madame Sophie Bizart, le secrétaire du département INFRES de m’avoir accueilli et son aide pendant le stage Un grand merci l’IFI d’avoir bien préparé mon stage J’ai le plaisir de remercier tous les stagiaires au département INFRES, ENST qui m’ont porté leur amitié J’exprime mon entière reconnaissance ma famille et mes amis pour leurs soutiens, leurs aides et leurs encouragements Table de matières Résumé Abstract Chapitre Introduction Chapitre Etat de l’art Classification de données Types de données et les mesures 1) Classification basée sur la taille de domaine : 2) Classification basée sur l’échelle de mesure : Méthodes de classification 11 1) Méthodes hiérarchiques (hierarchical clustering) .11 i CURE 13 2) Méthodes de partitionnement (partitional clustering): 14 i K-medoids 14 ii K-means 15 3) Méthodes basées sur la densité 18 i DBSCAN 19 ii DENCLUE 20 4) Méthodes basées sur la grille 21 i STING 21 ii WaveCluster 22 iii CLIQUE .22 5) Algorithmes pour des données de haute dimension 23 i Sélection d’attributs 23 ii Réduction de dimensionnalité 23 iii Classification dans sous-espaces 24 iv Co-classification 25 6) Algorithmes pour les données qualitatives (catégorie) .25 i ROCK 26 ii STIRR 26 iii CACTUS 27 Chapitre Classification sur le flux de données .29 Classification sur le flux de données .29 i STREAM-LOCALSEARCH .30 ii GenIc 31 Algorithmes BIRCH et CLUSTREAM 32 1) BIRCH 32 i Arbre des CFs .32 ii Algorithme 33 iii Cluster Feature et la distance dans BIRCH 38 2) CLUSTREAM 42 i Maintenance en ligne des micros classes .43 ii Création des macros classes 44 iii Analyse d’évolution des classes 45 Chapitre Implémentation et expérimentation .46 Implémentation du BIRCH 46 Expérimentation du BIRCH 51 Chapitre Conclusion et perspectives .52 Annexe Sommaire des algorithmes de classification .53 Annexe Liste des figures .55 Références 56 Résumé Aujourd’hui, il y a plus en plus des applications dont la base de données est très grosse et les données apparaissent sous la forme d’un flux de données infini comme des enregistrements de coup de téléphone, la surveillance de réseaux Pour ce type de données, les systèmes de gestion de base de données (SGBDs) traditionnels semblent ne pas convenables parce que ils ne traitent que des données taille limitée Pour exploiter efficacement des données massives en utilisant un espace de stockage limité, il faut trouver un traitement spécial qui réduit les données afin d’obtenir des informations nécessaires appelées des résumés partir de ces données Il y a certaines méthodes pour ce fait : échantillonnage, compression et classification Parmi eux, la classification est la solution la plus convenable Dans ce rapport, nous parlons des algorithmes de classification en général et particulièrement de ceux qui sont pour le flux de données Après avoir découvert plusieurs algorithmes de classification, nous avons trouvé que l’algorithme BIRCH est une solution de réduction de données très bonnes et le modèle CLUSTREAM permet de traiter efficacement les données sur un flux de données Nous avons également implémenté l’algorithme BIRCH pour tester sa performance Abstract Today, there is more and more applications whose database is very large and the data appear in the form of an infinite data stream like records of telephone call, the monitoring of networks For this type of data, the traditional database management systems (DBMS) seem not suitable because they treat only data with limited size To exploit effectively massive data by using a space of limited storage, it is necessary to find a special processing which reduces the data in order to obtain necessary information called the summaries from these data There are certain methods for this: sampling, compression and clustering Among them, clustering is the most suitable solution In this report, we talk about the general clustering algorithms and particularly about those which are for the data flow After having studied several clustering algorithms, we found that BIRCH algorithm is a very good data reduction solution and the CLUSTREAM is a model which allows to effectively treating the data stream We also implemented algorithm BIRCH to test its performance Chapitre Introduction Aujourd’hui, il y a plusieurs applications qui ont besoin d’un autre modèle de stockage des données que le modèle des SGBD (Système de Gestion de Base de Données) traditionnel Un modèle de SGBD traditionnel stocke des jeux de données finis et persistants, donc il n’est approprié qu’aux applications dont le volume de données n’est pas gigantesque, dont des parties significatives de données sont souvent requises et dont les mises jour sont relativement peu fréquentes On peut trouver de telles nouvelles applications dans les télécommunications, la surveillance des réseaux, les affaires, les marchés financiers, les flux de clics sur les pages web…Dans ces applications, les données arrivent sous la forme d’un flux de données, i.e un gros volume de données qui arrive continuellement Les données ne sont accessibles que par ordre d’arrivée, les accès aléatoires ne sont pas permis La mémoire réservée aux données est relativement plus petite que le volume total du flux de données, donc il n’y a qu’une petite quantité de données qui peut être gardée Dans les télécommunications, par exemple, les enregistrements d’appel sont continuellement générés Typiquement, la plupart de traitements sont faits en examinant un enregistrement une seule fois Après, il ne sera plus examiné Il existe des méthodes pour réaliser un compromis entre un gros volume de données qui arrivent et un espace de stockage et petit On peut échantillonner les données qui arrivent et utiliser les échantillons obtenus dans les opérations de l’application Cette méthode perd beaucoup d’informations concernant le jeu entier de données Une autre méthode est de compresser les données et d’utiliser les données compressées au lieu des données originales Dans ce cas, les données compressées ne peuvent pas être efficacement interprétées et directement utilisées sans être décompressées La classification automatique est aussi une technique de compression (réduction) de données mais les données sont bien compressées en sens que le jeu de données peut être bien interprété en n’utilisant que les données compressées La classification automatique des données consiste diviser un jeu de données en sous-ensembles de données appelés classes pour que tous les individus dans même une classe soient similaires et les individus de classes distinctes soient dissimilaires Typiquement, chaque classe est représentée par un individu qui s’appelle le centre de la classe ou par certaines informations dérivées de tous les individus de la classe qui sont suffisantes de décrire la classe Il y a plusieurs algorithmes de classification des données Ils diffèrent par la nature de données qu’ils traitent (données numériques ou données de catégorie, petit jeu de données ou gros jeu de données, données de dimension élevée ou moins élevée, sur un flux de données ou pas…), par les méthodes de distribution des données en classes, par la représentation des classes… Ce stage de fin d’étude a eu lieu l’Ecole Nationale Supérieure des Télécommunications de Paris, France J’ai travaillé sous la direction du professeur Georges HEBRAIL Mon travail dans ce stage est de découvrir tout d’abord le domaine de classification de données en général Ce travail consiste faire connaissance le concept de classification des données, les problèmes concernant du domaine, une classification des algorithmes de classification différents afin de trouver que l’algorithme BIRCH et le modèle CLUSTREAM est une bonne solution pour le problème de classification sur le flux de données Nous avons également implémenté l’algorithme BIRCH et fait des expérimentations pour évaluer sa performance Une simulation simple de classification sur un flux de données est également réalisée en se basant sur cet algorithme Ce rapport est organisé comme suivant : Le chapitre décrit le problème de classification de données en général et de différents algorithmes de classification Le chapitre parle de l’algorithme BIRCH et CLUSTREAM Le chapitre décrit notre implémentation et expérimentation de l’algorithme BIRCH Le chapitre est une conclusion avec quelques perspectives Chapitre Etat de l’art Classification de données La classification est une méthode qui a pour but de grouper les individus d’une population en des classes disjointes telles que dans une même classe, les membres sont similaires et dans les classes différentes, les individus sont dissimilaires Il faut distinguer la classification (la classification non supervisée) avec le classement (la classification supervisée) [1][3] : Classification supervisée: Etant donné un ensemble des classes déjà identifiées et un individu, il s’agit de trouver la meilleure classe laquelle cet individu appartient Classification non supervisée : Etant donné un ensemble des individus, il s’agit de structurer des classes pas encore identifiées qui groupent ces individus Nous nous intéressons la classification non supervisée dans la fouille de données dans laquelle les exigences principales sont la capacité de traitement d’un gros jeu de données et la capacité de traitement des différents types de données Le processus de classification comprend les étapes suivantes [2] [3] : (1) représentation des individus, (2) définition d’une mesure de similarité appropriée aux données, (3) classification, (4) abstraction des données, (5) validation du résultat La représentation des individus (patterns) a pour but de déterminer les informations concernant les données : le nombre de classes désiré, le nombre d’individus disponibles, le nombre, le type et l’échelle des attributs de données Ces informations sont utilisées dans l’algorithme de classification La proximité des individus est souvent mesurée par une fonction de distance entre chaque pair d’individus De nombreuses mesures de proximité sont proposées, se basant sur la nature de données La classification est une phase de groupement des individus dans les classes Plusieurs algorithmes de classification sont proposés La différence entre eux est la manière dont ils groupent les individus telles que la méthode hiérarchique, la méthode de partition…, le type de données qu’ils traitent comme des données numériques, de catégorie, le flux de données…, la mesure de proximité des individus et des classes qu’ils utilisent, telles que la distance euclidienne, la distance de Minkowski, le lien simple ou le lien complet…ou le critère selon lequel on construit des classes L’abstraction des données est un processus d’extraction d’une représentation simple et compacte pour un jeu de données Typiquement, une abstraction des données est une description compacte de chaque classe, souvent en terme de prototypes des classes ou d’individus représentatifs des classes comme le centre des classes La validation du résultat vise déterminer si les classes fournies sont significatives en utilisant un critère spécifique d’optimalité Cependant, un tel critère est souvent subjectif, donc il y a peu de manières standard pour valider la classification sauf dans certains domaines bien décrits priori La classification est utile dans une variété de domaines comme : reconnaissance des formes, apprentissage, fouille de données, recherche de documents, segmentation d’images… Types de données et les mesures Dans la classification, le type d’objets traités est divers (des personnes, des avis, des entités…) Ces objets doivent être soigneusement présentés en termes de leurs caractéristiques Ces caractéristiques sont les variables principales du problème et leur choix influence considérablement sur les résultats d'un algorithme de classification Nous présentons une classification basée sur deux caractéristiques : la taille de domaine et l’échelle de mesure [1][24] 1) Classification basée sur la taille de domaine : Cette classification distingue des objets sur une variable en se basant sur la taille de leur domaine, i.e le nombre de valeurs distinctes de la variable Un attribut est continu si son domaine n’est pas compté et infini, i.e ses éléments ne peuvent pas être mis dans une bijection avec l'ensemble de nombres entiers positifs Cela signifie qu’entre deux valeurs quelconques de l'attribut, il existe un nombre infini de valeurs Un attribut est discret si son domaine est un ensemble fini, i.e un ensemble dont les éléments peuvent être mis dans une bijection avec un sous-ensemble fini des nombres entiers positifs Un attribut est binaire s’il est un attribut dont le domaine contient exactement valeurs 2) Classification basée sur l’échelle de mesure : Cette classification distingue des attributs selon leur échelle de mesure Supposons que x = ( x1 , , xk ) , y = ( y1 , , y k ) et z = ( z1 , , z k ) sont des objets dans un jeu de données D en k dimensions, xi, yi, zi sont des attributs, i = 1,…, k Une échelle nominale distingue les catégories Cela signifie que nous pouvons seulement dire si xi = yi ou xi ≠ yi Les valeurs ne peuvent pas être totalement ordonnées Elles sont simplement une généralisation des attributs binaires, avec un domaine plus de deux valeurs discrètes Une échelle ordinale implique des attributs d’échelle nominale utilisant un dispositif additionnel pour que leurs valeurs soient totalement mises en ordre, mais les différences entre les valeurs ne peuvent pas être quantifiées Par conséquent, au lieu de dire xi = yi ou xi ≠ yi on peut dire xi < yi ou xi > yi Une échelle d'intervalle mesure des valeurs dans l’échelle linéaire Avec l’échelle d'intervalle nous pouvons dire non seulement si une valeur se trouve avant ou après une autre, mais aussi quelle distance avant ou après Puisque des valeurs sont mises sur une échelle linéaire, si xi > yi alors nous pouvons également indiquer que x est différent de xi − yi unités de y pour l’attribut i Une échelle de rapport est une échelle d'intervalle avec un point nul significatif Des attributs d’échelle nominale et ordinale s’appellent des attributs qualitatifs (ou catégoriques), alors que l’échelle d'intervalle et de rapport s’appelle des attributs quantitatifs Il est évident que des attributs quantitatifs sont mesurés en utilisant les unités spécifiques, telles que des kilogrammes et des centimètres Les unités de mesure affectent les résultats d'analyse des classes, puisque, par exemple, les unités changeantes de mesure des kilogrammes livres pour le poids, peuvent mener un résultat différent Le remède ce problème s'appelle la standardisation Etant donné un attribut i, ≤ i ≤ k et n objets x1, x2, …, xn Il s’agit de deux phases dans la standardisation : Trouver la déviation absolue moyenne si de i, pour tous les objets : si = x1i − mi + x i − mi + + x n i − mi , tels que xi1, xi2, …, xin sont n n valeurs de l’attribut i dans n objets, et mi est la moyenne de l’attribut i x j i − mi j , 1≤ i ≤ n Déterminer la mesure standardisée : z i = si Une fois que les caractéristiques des données ont été déterminées, nous sommes confrontés au problème de trouver des moyens appropriés de décider quelle distance un objet se trouve de l’autre Les calculs de proximité sont des mesures de la ressemblance ou de l’association entre les paires d'objets de données Un calcul de proximité peut mesurer la similarité ou la dissimilarité : plus deux objets se ressemblent, plus leur similarité est grande et plus leur dissimilarité est petite La dissimilarité peut être mesurée de différentes manières, l’une est la distance Quant elle, la distance peut également être mesurée de plusieurs façons Chaque mesure de distance est dépendante des caractéristiques des données qu’on traite - ( ) Les métriques sont les mesures de distance les plus importantes Une métrique doit satisfaire conditions : non négative, définitive (la distance entre un objet et soimême doit être zéro), symétrique et l’inéquation triangulaire En conséquence, une métrique est toujours une mesure mais l’inverse n’est pas toujours vrai Nous présentons une description brève de mesures pour chaque type d’attribut de données : Attributs d’échelle d’intervalle: Après la standardisation, la dissimilarité entre deux objets x et y peut être calculé par les métriques suivantes : +  n q q Distance de Minkowski : d ( x, y ) =  ∑ xi − yi   i =1  +  n 2 Distance euclidienne : d ( x, y ) =  ∑ (xi − yi )  (Minkowski, q = 2)  i =1  + Distance de Manhattan : d ( x, y ) = ∑ xi − yi (Minkowski, q = 1) + Distance maximum: d ( x, y ) = max n i=1 xi − yi (Minkowski, p → ∞ ) n i =1 Il faut d'abord créer q micros classes initiales Ceci est fait en utilisant un processus en ligne au commencement du processus de calcul du flux de données Au commencement du flux de données, on stocke les premiers InitNumber points sur le disque et utilise l'algorithme k-means pour créer q micros classes initiales La valeur de InitNumber est choisie aussi grande qu'autorisé par la complexité de calcul de l'algorithme k-means créant q classes Une fois que ces micros classes initiales sont créées, le processus en ligne de mise jour des micros classes est lancé Quand un nouveau point de données X ik arrive, les micros classes sont mises jour afin de refléter les changements Chaque point de données doit être absorbé par une micro classe ou il doit être mis dans une classe On cherche tout d’abord la micro classe la plus proche du point X ik Si ce point ne se trouve pas dans la frontière maximum de la micro classe la plus proche, alors une nouvelle micro classe doit être créée pour contenir ce point et elle est assignée par une nouvelle identification Cependant, afin de créer cette nouvelle micro classe, le nombre d'autres classes doit être réduit par un afin de créer l'espace de mémoire Ceci peut être réalisé en supprimant une vieille classe ou en joignant deux vieilles classes Pour supprimer une classe, il faut d’abord vérifier si elle est aberrante, et si elle l’est, on peut la supprimer Sinon, les deux classes qui sont les plus proches seront fusionnées La nouvelle classe formée est associée par une liste de deux identifications correspondantes Alors que le processus de la mise jour est exécuté pour chaque point de données qui arrive, un processus additionnel est exécuté chaque temps d'horloge précisé pour stocker l'ensemble courant de micros classes (probablement sur le disque) avec leur liste d'identification, et indexées par leur moment de stockage ii Création des macros classes Les micros classes produites par l'algorithme servent de représentation statistique intermédiaire qui peut être maintenue d'une manière efficace même pour un flux de données de gros volume D'autre part, le processus de macro classification n'utilise pas le flux de données lui-même, mais les statistiques des résumés compacts Par conséquent, il n'est pas contraint par l’exigence d’un seul passage aux données On suppose que l’horizon temporel h et le nombre de classes de niveau plus élevé k sont des entrées de l’algorithme Le choix de l'horizon temporel h détermine la quantité d'histoire qui est utilisée afin de créer les classes du niveau plus élevé Le choix du nombre de classes k détermine si des classes plus détaillées sont trouvées ou si des classes plus grossières sont extraites L'ensemble de micros classes chaque étape de l'algorithme est basé sur l'histoire entière du flux Cette phase vise chercher les micros classes qui sont spécifiques l’horizon temporel h en utilisant la caractéristique additive et soustractive des vecteurs de CF temporel La propriété additive : Si C1 et C2 sont deux ensembles de points, alors le vecteur CF CFT (C1UC ) est calculé par la somme CFT (C1 ) + CFT (C ) La propriété soustractive : Si C1 et C2 sont deux ensembles de points et C1 ⊇ C , alors le vecteur CF CFT (C1 − C ) est calculé par la soustraction 44 CFT (C1 ) - CFT (C ) La propriété soustractive aide considérablement dans la détermination des micros classes pendant un horizon pré-spécifié de temps C'est parce qu'en utilisant deux snapshots aux intervalles prédéfinis, il est possible de déterminer les micros classes approximatives pendant un horizon pré-spécifié de temps Les classes sont créées partir des micros classes d’un horizon temporel l’aide de l’algorithme k-means modifié Les micros classes sont traitées comme des pseudo points qui sont classifiés afin de déterminer les classes de niveau plus élevé Dans la modification de k-means, les germes (seeds) de chaque itération ne sont plus aléatoirement choisis Ils sont échantillonnés avec une probabilité proportionnelle au nombre de points dans une micro classe Dans le calcul de distance, le centre d’une micro classe est utilisé Dans l’étape d’ajustement des germes pour une partition (après une itération), un nouveau germe est défini comme un centre pesé de la micro classe dans cette partition Dans une exécution de macro classification, il faut traiter seulement snapshots bien choisis de la fenêtre pyramidale de temps Cette compacité permet la flexibilité dans les requêtes des micros classes stockées avec de différents niveaux de granularité et horizons temporels iii Analyse d’évolution des classes Pour analyser l’évolution des classes au cours du temps, il faut fournir les paramètres suivants l’algorithme : Deux temps d'horloge t1 et t2 auxquels les classes sont comparées (t2 > t1) L’horizon temporel h pendant lequel les classes sont calculées Cela signifie que les classes créées par les données qui arrivent dans l’intervalle [t2-h, t2] sont comparées avec celles dans l’intervalle [t1-h, t1] Les changements des classes aux temps différents sont : Les nouvelles classes créées au moment t2 par rapport au moment t1 Les classes au moment t1 qui disparaissent au moment t2 Les classes qui changent la position et la nature entre deux moments On peut trouver ces changements l’aide des listes d’identification créées pendant la micro classification Par exemple, les nouvelles classes qui sont créées au moment t2 par rapport au moment t1 sont les classes dont les identifications correspondantes n’apparaissent pas dans l’ensemble des classes du moment t1 - L’algorithme CLUSTREAM essaie de faire classification sur le flux de données entier plutôt que regarder le flux de données comme un processus de changement au cours du temps Il fournit un framework pour la classification le flux de données évolutives dans lequel il y a une grande variété de fonctionnalités telles que la création de macro classes sur différents horizons temporels et l'analyse de l'évolution du flux de données La combinaison de la fenêtre pyramidale de temps et la micro classification peut capturer des statistiques suffisantes des flux de données évoluées sans sacrifier l'efficacité fondamentale de l'espace et de temps du processus de classification en ligne 45 Chapitre Implémentation et expérimentation Implémentation du BIRCH Nous avons implémenté l’algorithme BIRCH en ANSI C++ Le programme se compose des classes principales ci-dessous : Nom de la classe CCFTree CCFNode CCFEntryList CCFEntry CCFVector Descriptions C’est l’arbre de CF Il se compose d’un CCFNode qui joue le rôle de la racine et un ensemble de nœuds CCFNode CCFTree supporte les opérations de construction de l’arbre (insertion, reconstruction) et d’exportation des résultats de la classification (exporter les feuilles de l’arbre qui sont des sous classes et la structure hiérarchique de l’arbre de CF sous forme de XML) C’est le nœud de CF : il y a deux types de nœuds : non feuille et feuille dont la différence principale est le nombre maximal d’entrées qu’ils contiennent (taille du nœud) Un nœud possède d’une liste d’entrées CCFEntryList C’est la liste d’entrées d’un nœud Elle sert gérer les opérations d’insertion, de suppression des entrées d’un nœud C’est une entrée dans un nœud qui contient un vecteur de CF Elle est une sous classe créée lors de la classification Un point de données peut être considéré comme une entrée libre Elle peut être insérée un nœud, se déplacer d’un nœud un autre, être absorbée par une autre entrée C’est le vecteur de CF Il est une collection d’informations concernant une sous classe Il supporte les opérations d’addition, de soustraction, le calcul de compacité, la distance entre lui et un autre vecteur de CF Cette classe est conçue virtuelle Un vecteur réel peut contenir les informations concrètes concernant la sous classe (par exemple CCFNumVector pour les données numériques ou un autre pour les données catégorie, mélangées,…) Classe CCFTree Pour construire un arbre de CFs, il faut fournir les informations suivantes (arguments d’entrée) : Argument treeSize nodeSize Description La taille de l’arbre, mesurée par le nombre de nœuds maximum que l’arbre peut contenir La taille d’un nœud dans l’arbre, mesurée par le nombre 46 d’entrées maximum qu’un nœud peut contenir leafSize La taille d’une feuille dans l’arbre, mesurée par le nombre d’entréees maximum qu’une feuille peut contenir dataDim Le nombre de dimensions des données traitées outlierThres Le seuil pour déterminer des aberrants C’est le nombre maximum de points de données d’une entrée feuille afin de décider si une entrée feuille est considérée comme une sous classe ou un aberrant C’est dire si le nombre de points contenus dans une entrée feuille est moins que cette valeur, alors cette entrée est un aberrant maxOutSaved L’espace de disque réservé stocker temporellement les aberrants potentiels, mesuré par le nombre d’entrées feuilles maximum qui sont considérées comme des aberrants qu’on veut sauvegarder sur le disque maxDelaySaved L’espace de disque réservé stocker temporellement les points retardés lors de leur insertion dans l’arbre, mesuré par le nombre de points maximum qu’on veut stocker sur le disque en attendant la reconstruction de l’arbre Le seuil d’absorption des entrées de feuilles de l’arbre Il vaut mieux mettre cette valeur zéro au début de la construction de l’arbre afin d’obtenir un arbre plus compact que possible threshold En utilisant ces informations d’entrée, un arbre de CFs avec le nœud de racine sera créé et prêt accueillir les points qui arrivent pour former un arbre de CFs dont les nœuds sont des sous-classes contenant les points de données qui sont les plus similaires Le degré de raffinement des sous-classes (la compacité ou le diamètre) est réduit de bas en haut Les opérations principales supportées dans la classe CCFTree : Nom insertEntry getNewThreshold reinsertDelays reinsertOutliers saveOutlier saveDelay Description Insérer une entrée dans l’arbre en visitant tout d’abord le nœud de racine et descendant dans l’arbre jusqu’à une feuille appropriée Calculer le nouveau seuil d’absorption pour la reconstruction de l’arbre Réinsérer les points retardés stockés sur le disque après avoir reconstruit l’arbre Réinsérer les classes considérées comme des aberrants potentiels stockés sur le disque après avoir reconstruit l’arbre Sauvegarder une sous classe considérée comme un aberrant potentiel sur le disque pendant la reconstruction de l’arbre Sauvegarder un point qui ne peut pas être inséré 47 Rebuild dans l’arbre sans augmenter la taille de l’arbre sur le disque Reconstruire l’arbre avec le nouveau seuil d’absorption Pour insérer un point de données dans l’arbre, tout d’abord, ce point est représenté comme une entrée L’arbre de CFs insère une entrée en commençant au nœud de racine, en descendant récursivement pour trouver un nœud de feuille approprié Cette entrée est soit insérée un nœud de feuille comme une nouvelle entrée, soit absorbée par une entrée existante dans ce nœud Si cette opération ne fait pas dépasser le nombre de nœuds de l’arbre, alors un autre point peut être inséré Au contraire, on fait retarder ce point en vérifiant si l’espace réservé aux points retardés est encore disponible S’il l’est, le point est sauvegardé sur le disque S’il ne l’est pas, c’est dire que n’importe quel point qui arrive n’est ni inséré dans l’arbre car l’espace de l’arbre peut être dépassé sa capacité disponible s’il est inséré, ni sauvegardé sur le disque comme un point retardé qui attend une nouvelle chance d’être inséré l’arbre, alors il faut reconstruire l’arbre en augmentant le seuil d’absorption des entrées Après avoir reconstruit l’arbre, on réinsère les points retardés stockés au disque au nouvel arbre de CFs, si un point retardé n’est pas réinséré, il est encore considéré comme un point retardé et il reste au disque Pour calculer le nouveau seuil, le programme extrait tous les nœuds de feuille de l’arbre actuel A chaque nœud de feuille, pour chaque entrée, on cherche l’entrée la plus proche dans le même nœud Pour tous les pairs d’entrées les plus proches, on calcule la somme de leurs distances Si un nœud contient une seule entrée, alors on cherche l’entrée la plus proche d’elle dans tous les nœuds de feuille de l’arbre en profitant des liens précédents et suivants de chaque nœud de feuille L’augmentation du seuil est la moyenne de la somme totale de distances de tous les pairs d’entrées les plus proches dans tous les nœuds de feuille En utilisant ce nouveau seuil, on espère que la moitié de nœuds de feuille est réduite Après avoir terminé la construction d’un arbre de CFs, on obtient les informations suivantes (sorties): Nom cftree.xml clusters.dat outliers.dat Description L’image de l’arbre de CFs obtenu est représentée sous la forme d’un fichier XML qui exprime très bien la structure hiérarchique d’arbre de CFs qu’on obtient la fin de la construction de l’arbre Les sous classes produites de la construction de l’arbre Les sous classes considérées comme des vrais aberrants qu’on obtient la fin de la construction de l’arbre Classe CCFNode Pour construire un noeud, il faut fournir les informations suivantes: Argument size threshold Description La taille du nœud, mesurée par le nombre d’entrées maximum qu’il peut contenir Le seuil d’absorption des entrées contenues dans le nœud 48 En utilisant ces informations, on construit un nœud avec une taille et un seuil d’absorption précisé Normalement, seuls les nœuds de feuille sont liés par deux liens : un vers le nœud précédé, un vers le nœud suivant En plus, la différence entre deux types de nœuds (non feuille et feuille) est également la taille spécifiée par l’arbre de CFs lors de l’insertion d’un point l’arbre Une liste d’entrée vide taille du nœud est créée pour stocker les sous-classes groupées dans le nœud Le parent d’un nœud est une entrée Initialement, le parent d’un nœud est nul Les opérations principales de CFFNode: Nom insert getClosest absorb insertEnd testSplit split updateParent insertOutlier computePath reinsert Description Insérer une entrée dans l’arbre A un nœud, il faut d’abord chercher l’entrée la plus proche parmi toutes les entrées situées dans le nœud Si l’entrée trouvée est une entrée feuille, alors on décide si cette entrée est absorbée ou insérée au nœud Au contraire, on descend au nœud fils de cette entrée Chercher l’entrée la plus proche d’une entrée insérer dans un nœud en calculant les distances entre l’entrée insérer avec toutes les entrées ou une partie d’entrées (en cas de reconstruire l’arbre) et choisir l’entrée dont la distance est la plus petite Absorber entrées Ces deux entrées sont l’entrée insérer dans l’arbre et son entrée la plus proche dans le nœud L’entrée insérer est absorbée par l’entrée la plus proche si la compacité de la sous-classe formée en fusionnant ces deux entrées est inférieure au seuil d’absorption Insérer une entrée la fin de la liste d’entrées du nœud (En cas de ne pas absorber une entrée) Prévoir si une insertion la fin d’une entrée au nœud peut causer le dépassement de capacité de l’arbre C'est-à-dire calculer le nombre de nœuds qui sont créés par une insertion d’entrée pour décider quand il faut reconstruire l’arbre Décomposer le nœud en deux nœuds en cherchant tout d’abord le pair d’entrées qui sont les plus loin et puis, distribuant toutes les entrées restantes au tour de ces deux entrées selon le critère de proximité Mettre jour le contenu de l’entrée parent si le nœud insère, absorbe ou supprime une entrée Insérer une entrée qui est considérée comme un aberrant potentiel sauvegardé dans le disque Calculer le chemin du nœud qui sert reconstruire l’arbre Un chemin est une collection des étiquettes des entrées partir du nœud de racine au nœud actuel L’étiquette d’une entrée est sa position dans un nœud Réinsérer une entrée de feuille lors de la reconstruction de l’arbre Pour insérer une entrée E un nœud, on cherche l’entrée la plus proche de E Si le nœud actuel est une feuille, on vérifie si E peut être absorbée par son entrée la plus proche en fusionnant ces deux entrées pour former une sous-classe et teste si la compacité (le diamètre) de la sous-classe formée est inférieure au seuil d’absorption S’il ne l’est pas, on calcule le nombre de nœuds qui seront créés si on insère E la fin 49 de la liste d’entrées du nœud Si le nombre de nœuds créés dépasse le nombre de nœuds restant, alors on stocke E sur le disque comme un point retardé S’il y a assez d’espace, alors on insère E au nœud Si le nœud actuel n’est pas une feuille, alors on descend au nœud fils de l’entrée la plus proche de E Si E est insérée la fin de la liste d’entrées du nœud et le nœud est dépassé sa capacité, alors il faut diviser ce nœud en nœuds en cherchant deux entrées qui sont les plus loin et distribuer les entrées restantes au tour ces deux germes selon le critère de proximité : On affecte une entrée un germe si elle est plus proche de ce germe par rapport au germe restant On crée une nouvelle entrée qui joue le rôle de parent du nouveau nœud et insère cette nouvelle entrée au nœud parent (qui contient l’entrée parent du nœud divisé) La division peut être propagée en haut de l’arbre Si la racine est divisée, alors la hauteur de l’arbre est augmentée par L’insertion, la division et l’absorption évoquent la mise jour des entrées parent de bas en haut Classe CCFEntryList Pour construire une liste d’entrée, il faut spécifier sa taille C’est également la taille du nœud qui possède cette liste Les opérations principales d’une liste d’entrées : Nom insert remove Description Insérer une entrée la fin de la liste d’entrées Supprimer une entrée dans la liste n’importe quelle position Classe CCFEntry En étant donné un seuil d’absorption, on crée une entrée contenant un vecteur de CF nul Le fils d’une entrée est le nœud auquel il pointe, autrement dit, c’est la sous-classe que cette entrée contient Chaque entrée a une enveloppe qui est le nœud la contient une fois cette entrée est insérée ce nœud Les opérations principales d’une entrée de CFs : Nom distance tightness add sub Description Calculer la distance entre l’entrée actuelle avec une autre entrée Cette opération est utilisée pour déterminer l’entrée la plus proche ou la plus loin d’une entrée Calculer la compacité d’une entrée Cette valeur est mesurée par le diamètre d’une classe Additionner une entrée une autre entrée C'est-à-dire additionner les vecteurs de CFs de deux entrées Cette opération est utilisée quand une entrée insère ou absorbe une autre entrée pour former une nouvelle sous-classe Soustraire une entrée par une autre entrée C’est-à-dire soustraire les vecteurs de CFs de deux entrées Cette opération est utilisée quand une entrée se déplace d’un nœud un autre nœud lors de la reconstruction de l’arbre 50 Classe CCFVector C’est une classe vide qui supporte les opérations de calculer la distance, la compacité, l’addition et la soustraction d’une entrée décrite ci-dessus CCFNumVector est une classe qui hérite la classe CCFVector Elle se compose du nombre des points, de la somme linéaire des points et de la somme des carrées des points dans une sous classe Nous avons utilisé cette classe pour la classification des données purement numériques Expérimentation du BIRCH Nous avons testé l’algorithme BIRCH sur des jeux de données synthétiques, sur une machine Sun Solaris avec un processeur Sparcv9 vitesse 440 MHz, 256 Mo de RAM et le système d’exploitation SunOS Les relations Nombre de dimensions-Temps, Taille du jeu de données-Temps sont représentées par les schémas ci-dessous Dimension/Temps 40 35 30 25 20 15 10 10 12 14 16 Nombre de dimensions 18 Dimension/Temps 70 20000 points 65 60 55 50 45 40 35 30 25 20 10 15 20 25 30 35 40 45 50 55 Nombre de dimensions Temps de classification Temps de classification 10000 points 20000 points 20 Figure : Relation du nombre de dimensions et le temps de classification Les schémas ci-dessus indiquent que le temps de classification augmente plus vite dans les espaces de haute dimension (un exemple pour le problème de malédiction de dimensionnalité) Temps de classification Taille/Temps 60 55 50 45 40 35 30 25 20 15 10 10 10 dimensions 15 20 25 30 35 40 45 Nombre de points (mille points) 50 55 Figure : Relation du nombre de points et le temps de classification Les tests avec des aberrants indiquent que l’algorithme peut les bien distinguer 51 Chapitre Conclusion et perspectives La classification sur le flux de données est très importante dans divers domaines d’application dont les données arrivent sous forme d’un flux Elle permet d’analyser le comportement des utilisateurs d’un site web, d’un réseau téléphonique, … en donnant un regroupement des utilisateurs selon leur similarité de comportement Ces connaissances sont vraiment utiles Plusieurs algorithmes sont proposés pour le problème général de classification Ils diffèrent par les méthodes de classification, les mesures de proximité qu’ils utilisent, la nature des données qu’ils traitent Le choix d’un algorithme approprié dépend fortement de l’application, la nature des données et les ressources disponibles Une analyse attentive des données aide bien choisir le meilleur algorithme Il n’existe pas un algorithme qui peut répondre toutes les demandes BIRCH est incrémental et il utilise des résumés compacts de données au lieu des données initiales C’est pourquoi il est très efficace dans le traitement des gros jeux de données avec un espace limité Le concept des vecteurs de CF aide fournir des classes significatives : une classe est représentée par des informations compactes mais suffisantes pour bien la décrire CLUSTREAM est un cadre pour la classification des flux de données évolutives en considérant un flux de données comme un processus qui change dans le temps L’utilisation du modèle fenêtre pyramidale de temps (pyramidal time window) assure que les statistiques essentielles des flux de données évolutives peuvent être capturées sans perdre en efficacité sur l’espace et le temps requis pour le processus de classification BIRCH et CLUSTREAM laissent encore des problèmes résoudre Ces deux algorithmes et leurs extensions peuvent traiter efficacement des données numériques et de type catégorie Pour un attribut dont le domaine de valeurs est extrêmement grand, la transformation en tableau disjonctif n’est pas réaliste, parce que le nombre d’attributs devient très grand Par conséquent, on rencontre le problème de malédiction de dimensionnalité De plus, le choix d’une bonne augmentation du seuil d’absorption et une définition explicite des aberrants est encore un défi 52 Annexe Sommaire des algorithmes de classification Type Paramètres d’algorithme d’entrée Partition Nombre de classes Forme des classes Sphérique Caractéristiqu es de données Petits jeux de données PAM Partition Sphérique CLARA Partition Nombre de classes Nombre de classes CLARANS Partition Nombre de classes, Maximum nombre de voisins Sphérique Petits jeux de données Jeux de données relativement gros Données spatiales CURE Hiérarchique Arbitraire BIRCH Hybride : partition pour résumer des données et n’importe quelle méthode pour la classification des résumés Basé sur densité Nombre de classes, Nombre de représentatifs Nombre d’embranchement, Seuil de compacité Rayon d’une classe, Nombre minimum de points dans une classe Rayon d’une classe, Nombre minimum d’objets Rayon minimum, maximum d’une classe, Nombre minimum d’objets Nombre de Arbitraire Gros jeux de données Traite les aberrants Complexité : O (n log n) Approche hybride : basé sur densité et grille Arbitraire Gros jeux de données Arbitraire Gros jeux de données Traite les aberrants Complexité O (n log n) Avoir une fondation mathématique forte Traite les aberrants Complexité : O (n log n) Frontière Gros jeux de Traite les aberrants Nom k-means DBSCAN DENCLUE Basé sur densité OPTICS Basé sur densité STING Basé sur Sphérique Sphérique Jeux de données relativement gros Gros jeux de données Caractéristiques de l’algorithme Ne traite pas les aberrants Complexité : O (Ikn) Il existe certaines versions qui diffèrent par la mise jour des centroids Ne traite pas les aberrants Complexité: O (Ik (n-k) 2) Ne traite pas les aberrants Complexité : O (ks2+k (nk)) Ne traite pas les aberrants Complexité : O (kn2) Combinaison entre PAM et CLARA donc donner une meilleure qualité de classes Traite les aberrants Complexité : O (n2 log n) Utiliser le résumé de données Traite les aberrants Complexité : O (n) Utiliser le résumé de données Trois versions pour données numériques, mélangées et flux de données 53 grille WaveClust er Basé sur grille CLIQUE Basé sur grille MAFIA Basé sur grille kprototypes Partition, données de catégorie k-modes Partition, données de catégorie Hiérarchique, données de catégorie Partition, données de catégorie ROCK STIRR CACTUS Partition, données de catégorie cellules au niveau le plus bas, Nombre d’objets dans une cellule Nombre de cellules pour chaque dimension, Wavelet, Nombre d’applications de transformation Taille de la grille, Nombre minimum de points dans une cellule Facteur de dominance de classes, Nombre minimum de points dans une cellule Nombre de classes verticale et données horizontale spatiales Complexité O (n) Arbitraire Gros jeux de données Traite les aberrants Complexité O (n) Arbitraire Gros jeux de données de haute dimension Traite les aberrants Complexité O (ck+kn) Classification faite dans sous-espaces Arbitraire Gros jeux de données de haute de dimension Sphérique Nombre de classes Sphérique Données mélangées (qualitatives, quantitatives) Données qualitatives Traite les aberrants Complexité O (ck+kn) Classification faite dans sous-espaces Meilleur que CLIQUE en terme de qualité et performance Ne traite pas les aberrants Complexité O (Ikn) Type de partition Nombre de classe Configuration initiale, Opérateur de combinaison, Critère de terminaison Seuil de support, Seuil de validation Petits jeux de données avec bruit Gros jeux de données avec bruit Gros jeux de données, petite dimensionnalit é, Petite taille du domaine d’attributs Ne traite pas les aberrants Complexité O (Ikn) Type de partition Traite les aberrants Complexité : O (n2+nmmma+n2log n) Traite les aberrants Complexité O (n) Traite les aberrants Complexité O (n) 54 Annexe Liste des figures Figure 1: Classification de lien simple (gauche) et complet (droite) d’objets contenant classes et avec le brut * Figure 2: La fonction d’influence gaussienne, un jeu de points et la fonction de densité globale Figure 3: Grille de taille uniforme (a) et Grille de taille adaptative (b) Figure 4: Une base de données et sa représentation de graphe Figure 5: Illustration d’un arbre de CFs Figure 6: Reconstruire l’arbre de CFs Figure 7: Relation du nombre de dimensions et le temps de classification Figure 8: Insertion des individus dans l’arbre de CFs Figure 9: Relation du nombre de points et le temps de classification 55 Références [1] P Berkshire: Survey of Clustering Data Mining Techniques, 2002 [2] P Andritsos: Data Clustering Techniques, 2002 [3] A K Jain, M N Murty, P J Flynn: Data Clustering: A Review, ACM Computing Serveys, Vol 31, No.3, September 1999 [4] Steinbach, Karypis, Kumar: A comparison of document clustering techniques, ACM SIGKDD, 6th World Text Mining Conference, 2000 [5] Z Huang: Extension to the k-means algorithm for clustering large data sets with categorical values, 1998 [6] P Bradley, U Fayyad, and C Reina: Scaling clustering algorithms to large databases Proceedings of the Fourth International Conference on Knowledge Discovery and Data Mining, 1998 [7] C Elkan: Using the Triangle Inequality to Accelerate k-means, Proceedings of the 12th International Conference on Machine Learning, 2003 [8] G Karypis, E.H Han, V Kumar: CHAMELEON: A Hierarchical Clustering Algorithm Using Dynamic Modeling, 1999 [9] T Zhang, R Ramakrishnan, M Livny: BIRCH: A New Data Clustering Algorithm and Its Applications, 1996 [10] http://db.cs.sfu.ca/GeoMiner/survey/html/node9.html [11] C.M Fei, F.C Wing, O.S.K Yan, T.T Shing : Funny thing in clustering, 1997 [12] R.T Ng, J Han: Efficient and Effective Clusterig Methods for Spatial Data Mining, Proceedings of 1994 Int Conference on Very Large Databases, 1994 [14] http://www.isys.ucl.ac.be/etudes/cours/linf2275/09cours.pdf [15] V Faber : Clustering and Continuous K-means, Los Alamos Science, 1994 [16] M Ankerst, M Breunig, H.P Kriegel, S Sander: Ordering Points to Identify the Clustering Structure, SIGMOD 1999 [17] G Sheikholeslami, S Chatterjee, A Zhang: WaveCluster: A Wavelet-based clustering approach for spatial data in very large databases [18] R Agrawal, J Gehrke, D Gunopulos, P Raghavan: Automatic Subspace Clustering of High Dimensional Data for Data Mining Applications, SIGMOD, 1998 [19] M Ester, H.P Kriegel, J Sander, M Wimmer, X Xu: Incremental Clustering for Mining in a Data Warehousing Environment, Proceedings of 24th VLDB Conference, 1998 [20] S Guha, R Rastogi, K Sim : CURE : An Efficient Clustering Algorithm for Large Databases, SIGMOD, 1998 [21] V Castelli: Multidimensional Indexing Structures for Content-based Retrieval, IBM Research Report, 2001 [22] A McCallum, K Nigam, L Ungar: Efficient Clustering of High Dimensional Data Sets with Application to Reference Matching [23] S Goil, H Nagesh, A Choudhary: MAFIA: Efficient and Scalable Subspace for Very Large Data Sets, Technical Report [24] M Steinbach, L Ertöz, V Kumar: The Challenges of Clustering High Dimensional Data [25] S Guha, A Mayerson, N Mishra, R Motwani: Clustering Data Streams: Theory and Practice, 2003 [26] S Guha, N Mishra, R Motwani, L O’Callaghan: Clustering Data Streams 56 [27] S Guha, R Rastogi, K Shim: ROCK: A robust clustering algorithm for categorical attributes, Proceedings of the IEEE International Conference on Data Engineering, 1999 [28] D Gibson, J Kleinberg, P Raghavan.: Clustering categorical data: An approach based on dynamical systems Proceeding of the 24th VLDV Conference, 1998 [29] V Ganti, J Gehrke, R Ramakrishnan: CACTUS: Clustering Categorical Data Using Summaries Proceeding of the 5th International Conference on Knowledge Discovery and Data Mining, (KDD), 1999 [30] L O’Callaghan, N Mishra, A Meyerson, S Guha, R Motwani: Streaming-Data Algorithms For High-Quality Clustering, 2001 [31] C Aggarwal, J Han, J Wang, P Wu: A Framework for Clustering Evolving Data Streams, Proceeding of 29th VLDB Conference, 2003 [32] R Webber, J Schek, S Blott: A quantitative analysis and performance study for similarity-search methods in highdimensional space Proceeding of the International Conference on VLDB, 1998 [33] X Zhou, G.Wang, J.X Yu, G.Yu: M+-tree: A New Dynamical Multidimensional Index for Metric Spaces, Paper of 14th ADC (Australian Database Conference), 2003 [34] P Ciaccia, M Patella, P Zezula: M-tree: An Efficient Access Method for Similarity Search in Metric Space, Proceedings of 23rd VLDB Conference, 1997 [35] A Guttman: R-trees: A Dynamic Index Structure for Spatial Searching, ACM 1984 [36] G Rozenberg: Curves That Fill Space [37] D.E.Knuth: The Art of Computer Programming, Addison Wesley, 1973 [38] J Kuan, P Lewis: A Study on Data Point Search for HG-trees [39] J K Lawder, P J H King: Querying Multi-dimensional Data Indexed Using the Hilbert Space-Filling Curve, SIGMOD Record, 2001 [40] J L Bently: Multidimensional Binary Search Trees Used for Associative Searching, ACM, 1975 [41] S Berchtold, B Ertl, D A Keim, H P Kriegel, T Seidl: Fast Nearest Neighbor Search in High-dimensional Space, 14th ICDE, 1998 [42] F Aurenhammer: Voronoi Diagrams- A survey of a Fundamental Geometric Data Structure, ACM Computing Survey, 1991 [43] S Berchtold, D A Keim, H P Kriegei: The X-tree: An Index Structure for High-Dimensional Data, Proceedings of the 22nd VLDB Conference, 1996 [44] N Beckmann, H P Kriegel, R Schneider, B Seeger: The R*-tree: An Efficient and Robust Access Method for Points and Rectangles, ACM, 1990 [45] T Sellis, N Roussopoulos, C Faloutsos : The R+-tree : A Dynamic Index for Multi-Dimensional Objects, In Proceedings of 13th Int Conf on VLDB, 1987 [46] N Katayama, S I Satoh: The SR-tree: An Index Structure for High Dimensional Nearest Neighbor Queries, ACM, 1997 [47] C Böhm, S Berchtold, D A Keim: Searching in High-Dimensional Spaces— Index Structures for Improving the Performance of Multimedia Databases, ACM Computing Surveys, 2001 [48] L Wu, T Bretschneider: Comparative Analysis of the Efficiency of R-tree Based Indexing Strategies for Information Retrieval [49] G H Cha, X Zhu, D Petkovic, C W Chung: An Efficient Indexing Method for Nearest Neighbor Searches in High Dimensional Image Databases, IEEE Transactions on Multimedia, 2002 57 [50] H Samet: The Quadtree and Related Hierarchical Data Structures, ACM Computing Surveys, 1984 [51] J Nievergelt, H Hinterberger: The Grid File: An Adaptable, Symmetric Multikey File Structure, ACM Transactions On Database Systems, 1984 [52] V Gaede, O Günther: Multidimensional Access Methods, ACM Computing Surveys, 1998 [53] M R Henzinger, P Raghavan, S Rajagopalan: Computing on Data Streams, SRC Technical Note, 1998 [54] B Babcock, S Babu, M Datar, R Motwani, J Widom: Models and Issues in Data Stream Systems, Proceeding of 21th ACM Symposium on Principles of Database Systems, 2002 58 [...]... d’attributs de données qu’ils traitent (numériques, de catégorie, taxonomiques…) donc la structure de données utilisée est différente, la capacité de traiter un gros jeu de données, la capacité de traiter des données en haute dimension, la capacité de traiter des observations aberrantes, la complexité de l’algorithme (temps de calcul), la dépendance de l’ordre des données qui arrivent, la dépendance des paramètres... s par es par des régions en faible 18 densité La densité est représentée par le nombre d’objets de données dans le voisinage C’est pourquoi ces méthodes sont capables de chercher des classes de forme arbitraire Elles ne travaillent que dans un espace métrique, donc elles sont utilisées dans la classification de données spatiales Pour réduire le coût de calcul lors de la classification, les données sont indexées,... calculer la classe la plus proche d’une classe La complexité de temps du pire cas est O (n2log n) Si la dimension des données est petite, la complexité de temps peut être réduite à O (n2) [20] La complexité d’espace est O (n) 13 2) Méthodes de partitionnement (partitional clustering): Ces méthodes produisent une seule partition des données au lieu d’une structure des classes Elles créent les classes... points qui s’éparpillent bien autour d’une classe Ensuite on les fait rétrécir vers le centroid de la classe par une fraction quelconque Ces points éparpillés après le rétrécissement seront utilisés comme les représentants de la classe Les représentants visent à capturer la forme et l’ampleur de la classe Le rétrécissement des points éparpillés vers le mean de la classe par un facteur a pour but de débarrasser... diminuée pour les données de haute dimension ii DENCLUE DENCLUE (DENsity CLUstEring) est une approche de classification basée sur la densité mais travaille d’une manière plus formelle que DBSCAN en modélisant la densité globale d'un ensemble de points comme somme des fonctions d’influence de densité associées à chaque point La fonction de densité globale aura des maxima locaux de densité, ces maxima peuvent... nombre de points de données est k est le nombre maximum de dimension des sousespaces L’expérimentation des auteurs de l’algorithme prouve que la performance et la qualité de MAFIA atteignent 40 fois d’amélioration que CLIQUE [23] iv Co -classification Le co -classification est la classification simultanée des points et leurs attributs tous les deux Elle inverse une lutte : afin d’améliorer la classification. .. nombre de liens entre une paire de points est grand, plus la possibilité qu'ils appartiennent à une même classe ROCK peut être utilisé pour faire la classification de gros jeux de données et bien extensible à la taille de la base de données La complexité de ROCK est O (n2+nmmma+n2logn) tels que mm est le nombre maximum de voisins et ma est le nombre moyen de voisins d’un objet de données, n est la taille... indexées, par exemple R*-tree (cf section Méthodes de recherche de voisinage), donc elles ne sont efficaces qu’avec les données en basse dimension Il y a deux approches dans ce type de classification, l’une est basée sur la connectivité de densité, l’autre est basée sur la fonction de densité Les algorithmes les plus connus de ce type sont DBSCAN (connectivité de densité) et DENCLUE (fonction de densité)... algorithmes de classification visent à diviser un jeu de données en des partitions (classes) pour que les points qui sont situés dans une même partition soient plus semblables que les points dans différentes partitions Pour le faire, il faut utiliser une mesure qui permet de définir et calculer la similarité ou la dissimilarité entre les points et les partitions La mesure qu’on utilise dans la classification. .. mesurer la similarité entre les classes [1] [3]: Dans le lien simple, la distance entre 2 classes est la valeur minimum des distances entre toutes les paires d’individus, l’un de la première classe, l’autre de la deuxième Dans le lien complet, la distance entre 2 classes est la valeur maximum des distances entre toutes les paires d’individus Dans le lien moyen, la distance entre 2 classes est la valeur

Ngày đăng: 27/10/2016, 23:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan