Social Impacts of public investment in Viet Nam Vu Tuan Anh.
Stage-le Anh Tuan
-
Upload
kawtar-l-azaar -
Category
Documents
-
view
219 -
download
0
Transcript of Stage-le Anh Tuan
-
8/18/2019 Stage-le Anh Tuan
1/59
INSTITUT DE LA FRANCOPHONIE POUR L’INFORMATIQUE
RAPPORT DU STAGE
REDUCTION DE BASE DE DONNEES PAR LACLASSIFICATION AUTOMATIQUE
Sous la direction de
Pr. Georges HEBRAIL, ENST Paris
Réalisé par
LE Anh Tuan, IFI Hanoi
Décembre 2004
-
8/18/2019 Stage-le Anh Tuan
2/59
1
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.
-
8/18/2019 Stage-le Anh Tuan
3/59
2
Table de matières
Résumé ..................................................................................................................... 4
Abstract..................................................................................................................... 4
Chapitre 1. Introduction............................................................................................. 5
Chapitre 2. Etat de l’art.............................................................................................. 7
1. Classification de données............................................................................... 7
2. Types de données et les mesures........................................................................ 8
1) Classification basée sur la taille de domaine :............................................. 8
2) Classification basée sur l’échelle de mesure : ............................................. 8
3. 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..............................................................................................19ii. 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...................................................................................................26ii. STIRR...................................................................................................26
iii. CACTUS..............................................................................................27
Chapitre 4. Classification sur le flux de données.......................................................29
1. Classification sur le flux de données .................... .........................................29
i. STREAM-LOCALSEARCH.................................................................30
ii. GenIc....................................................................................................31
2. 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..........................................................................................42i. Maintenance en ligne des micros classes ...............................................43
ii. Création des macros classes ..................................................................44
iii. Analyse d’évolution des classes ................... .........................................45
Chapitre 3. Implémentation et expérimentation.........................................................46
1. Implémentation du BIRCH ...........................................................................46
2. Expérimentation du BIRCH..........................................................................51
Chapitre 4. Conclusion et perspectives .....................................................................52
Annexe 1. Sommaire des algorithmes de classification .............................................53
-
8/18/2019 Stage-le Anh Tuan
4/59
3
Annexe 2. Liste des figures.......................................................................................55
Références................................................................................................................56
-
8/18/2019 Stage-le Anh Tuan
5/59
4
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... Pource 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 permetde 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.
-
8/18/2019 Stage-le Anh Tuan
6/59
5
Chapitre 1. 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 deDonné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
-
8/18/2019 Stage-le Anh Tuan
7/59
6
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 2 décrit le problème de
classification de données en général et de différents algorithmes de classification. Le
chapitre 3 parle de l’algorithme BIRCH et CLUSTREAM. Le chapitre 4 décrit notre
implémentation et expérimentation de l’algorithme BIRCH. Le chapitre 5 est une
conclusion avec quelques perspectives.
-
8/18/2019 Stage-le Anh Tuan
8/59
7
Chapitre 2. Etat de l’art
1.
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éeset un individu, il s’agit de trouver la meilleure classe à laquelle cet individu
appartient.
- Classification non supervisée : Etant donné un ensemble des individus, ils’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é desindividus 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 enterme 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.
-
8/18/2019 Stage-le Anh Tuan
9/59
8
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…
2. Types de données et les mesures
Dans la classification, le type d’objets traités est divers (des personnes, desavis, 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 nombresentiers 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 ensembledont 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 exactement2 valeurs.
2) Classification basée sur l’échelle de mesure :Cette classification distingue des attributs selon leur échelle de mesure.
Supposons que ),...,( 1 k x x x = , ),...,( 1 k y y y = et ),...,( 1 k z z z = 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 ii y x = ou ii y x ≠ . 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 undispositif 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 ii y x = ou ii y x ≠ on peut dire ii y x < ou ii y x > .
- Une échelle d'intervalle mesure des valeurs dans l’échelle linéaire. Avecl’é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 ii y x > alors nous pouvons également indiquer
que x est différent deii
y x − unités de y pour l’attribut i.
- Une échelle de rapport est une échelle d'intervalle avec un point nulsignificatif.
-
8/18/2019 Stage-le Anh Tuan
10/59
9
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éschangeantes 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, k i ≤≤1 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 :
( )ii
n
iiiii m xm xm xn
s −++−+−= ...1 21
, tels que xi1, xi
2, …, xi
n sont n
valeurs de l’attribut i dans n objets, et m i est la moyenne de l’attribut i.
- Déterminer la mesure standardisée :i
ii
j
ji s
m x z −
= , ni ≤≤1
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étriquedoit satisfaire 4 conditions : non négative, définitive (la distance entre un objet et soi-
mê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 :
+ Distance de Minkowski :
qn
i
q
ii y x y xd
1
1),(
−= ∑=
+ Distance euclidienne : ( )
−= ∑
=
n
i
ii y x y xd 1
2),( (Minkowski, q = 2).
+ Distance de Manhattan : ∑=
−=
n
i
ii y x y xd 1
),( (Minkowski, q = 1).
+ Distance maximum: iiin y x y xd −= =1max),( . (Minkowski, ∞→ p ).
-
8/18/2019 Stage-le Anh Tuan
11/59
10
En cas où les attributs sont assignés à des poids, il faut transformer les
formules de distance en formules pondérées, e.g.: ∑=
−=k
i
iii y xw y xd
1
2)(),( , tel que
wi est le poids pour l’attribut i, i=1,…, k.
+ Distance de Mahanalobis :T
y x y x y xd ∑−
−−=1
)()(),( , tel que ∑ est unematrice de covariance d’échantillon ou une matrice de covariance connue du
processus de génération d’individus.
- Attributs binaires : Supposons que les attributs de 2 objets x et y n’aient queles valeurs 1 et 0.
+ Simple Matching Coefficient :τ
δ α +=),( y xd (x et y sont symétriques)
+ Jaccard Coefficient :γ β α
α
++=),( y xd (x et y sont asymétriques)
Tels que α est le nombre de valeurs d’attribut qui sont égales à 1 dans tous les deux
objets, β est le nombre de valeurs d’attribut qui sont égales à 1 dans x mais 0 dans y,γ est le nombre de valeurs d’attribut qui sont égales à 0 dans x mais 1 dans y, δ est le
nombre de valeurs d’attribut qui sont égales à 0 dans tous les deux objets,
δ γ β α τ +++=
- Attributs d’échelle nominale : p
m p y xd
−=),( , tels que m est le nombre
d’attributs dont la valeur est pareille dans tous les deux objets, p est le nombre total
d’attributs.
- Attributs d’échelle ordinale :
Ce type d’attributs peut être traité comme celui d’intervalle mais il a besoin
d’être converti en une forme convenable.
Supposons que i est un attribut d’échelle ordinale dont le domaine contient Mi
valeurs. Ces valeurs sont mises en ordre [1…M i], donc on peut remplacer chaque
valeur par son rang correspondant { }ii M r ,...,1∈ . Chaque attribut ordinal pourrait avoirune taille différente de domaine, donc il est souvent nécessaire de convertir chaque
valeur en une valeur se trouvant dans l’intervalle [0.0, 1.1] en utilisant la formule
suivante :1
1
−
−=
i
j
ii
j
M
r z
Après la transformation, on peut calculer la dissimilarité entre les objets par
les mesures des attributs d’intervalle en appliquant ces mesures sur les zi j.
- Attributs d’échelle de rapport :Il y a plusieurs méthodes pour calculer la dissimilarité entre ces attributs. Une
solution est d’appliquer une formule logarithmique sur chaque attribut. Le résultat
peut être traité comme un attribut d’intervalle. L’utilisation d’une transformation
dépend de la définition des attributs et de l’application.
-
8/18/2019 Stage-le Anh Tuan
12/59
11
- Attributs mélangés :
∑
∑
=
==
k
f
f
xy
k
f
f
xy
f
xy d
y xd
1
1),(
δ
δ
, tels que x et y sont des objets de
k attributs mélangés, f
xyδ signifie le degré de dissimilarité entre x et y à l’attribut f et f
xyd est la contribution de l’attribut f à la dissimilarité entre x et y.
3. Méthodes de classification
De nombreux algorithmes ont été inventés dans le domaine. Ils se diffèrent
grâce aux facteurs : le type 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 prédéfinis par utilisateurs ou la connaissance a priori surles données…
Selon ces critères et leurs combinaisons, il y a plusieurs types d’algorithmes de
classification. Traditionnellement et souvent, les méthodes de classification sont
divisées en 2 catégories principales : Méthodes hiérarchiques et méthodes departitionnement selon la manière dont on construit les classes. Tandis que lespremières établissent graduellement les classes, les dernières apprennent directementles classes. C'est-à-dire qu’elles les découvrent en faisant bouger des points entre les
classes.
Ensuite, les algorithmes se diffèrent grâce aux autres critères comme le
nombre de passes d’accès aux données, le nombre de dimensions, le type de donnéestraitées, la forme des classes… Ces algorithmes sont soit hiérarchiques, soit de type
partitionnement, soit une combinaison de ces deux types, et ils utilisent différents
mécanismes d’organisation des données, de recherche, de construction des classes …
Faire une classification pour tous les critères n’est pas facile, donc ici nous ne faisons
qu’une distinction entre les 2 types fondamentaux et nous décrirons certaines familles
d’algorithmes qui jouent un rôle important dans la communauté de classification. Ce
sont [1] [2] [3] : Méthodes hiérarchiques, méthodes de partitionnement, méthodesbasant sur la grille, méthodes basant sur la densité, algorithmes pour les donnéesqualitatives (catégorie), algorithmes pour les données en haute dimension etalgorithmes pour le flux de données.
1)
Méthodes hiérarchiques (hierarchical clustering)Ces méthodes construisent les classes graduellement sous une forme
hiérarchique, autrement dit, un arbre des classes qui est appelé un dendrogramme.
Elles sont divisées en 2 sous-types : Agglomération (ascendant) et division(descendant).
- Agglomération : On commence en considérant chaque point comme uneclasse et on essaye de fusionner deux ou plusieurs classes appropriées (selon une
-
8/18/2019 Stage-le Anh Tuan
13/59
12
similarité) pour former une nouvelle classe. Le processus est itéré jusqu’à ce que tous
les points se trouvent dans une même classe ou bien jusqu’à ce qu’on l’arrête.
- Division : En considérant tous les points comme une seule classe au début, ondivise successivement les classes en classes plus raffinées. Le processus marche
jusqu’à ce que chaque classe contienne un seul point ou bien si l’on atteint un nombre
de classes désiré.
Les méthodes hiérarchiques ont les avantages: La flexibilité pour le niveau de
granularité (on peut atteindre une classe la plus fine ou la plus épaisse comme
souhait), la capacité de traiter n’importe quelle mesure de similarité ou distance et
l’application sur n’importe quel type d’attributs. A côté, elles ont les inconvénients :
la critère de terminaison est souvent vague et le besoin de multi accès aux données.
La plupart des méthodes hiérarchiques utilisent le lien simple (single-link),
lien complet (complete-link) ou le lien moyen pour mesurer la similarité entre les
classes [1] [3]:
- Dans le lien simple, la distance entre 2 classes est la valeur minimum desdistances 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 desdistances entre toutes les paires d’individus
- Dans le lien moyen, la distance entre 2 classes est la valeur moyenne desdistances entre toutes les paires d’individus, l’un de la première classe, l’autre de la
deuxième.
Figure 1: Classification de lien simple (gauche) et complet (droite) d’objets contenant
2 classes 1 et 2 avec le brut *.
L'algorithme de lien complet produit des classes étroitement liées ou
compactes. En revanche, l'algorithme de lien simple souffre d'un effet
d'enchaînement. Il a une tendance de produire des classes qui sont prolongées (Voir
la figure ci-dessus). Cependant l'algorithme de lien simple est plus souple que
l'algorithme de lien complet. D’un point de vue pragmatique, on a observé que
l'algorithme de lien complet produit des hiérarchies plus utiles dans beaucoupd'applications que l'algorithme de lien simple [3].
Il y a de nombreux algorithmes qui sont proposés. Les algorithmes
hiérarchiques les plus connus sont CURE, COBWEB, CACTUS, BIRCH. Nousdécrirons COBWEB et CACTUS dans la section algorithmes pour les donnéesqualitatives, et BIRCH dans une section propre.
-
8/18/2019 Stage-le Anh Tuan
14/59
13
i. CURECURE (Clustering Using REpresentatives) a été proposé par Guha, Rastagi et
Sim [20]. Il est une approche hybride : utiliser tous les points de données et ainsi un
un centroid pour former les classes) : Il représente une classe par un nombre constant
de points de représentation appelés les représentants. Pour obtenir ces points, tout
d’abord, on choisit les 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 les surfaces anormales et diminuer les effets des points aberrants.
L’idée est basée sur le fait que les aberrants se trouvent normalement loin du centre de
la classe. En conséquence, le rétrécissement pourrait fait déplacer les aberrants plus
vers le centre tandis que les représentants sont moins déplacés. Le grand déplacement
des aberrants peut réduire de mauvaises fusions des classes.
La distance entre deux classes utilisée dans le processus d’agglomération n’est
ni le lien simple ni lien moyen. Seuls les points de représentants sont utilisés pour la
calculer. La distance est définie comme le minimum de distances entre deux
représentants de deux classes.
CURE est conçu pour traiter de gros jeux de données. Pour ce faire, on divise
l’algorithme en 2 passes. Dans la première, l’algorithme utilise des échantillonnages
aléatoires qui sont retirés du jeu de données et classifié pour former des partitions
partielles. Après, ces partitions partielles sont classifiées pendant la deuxième passe
pour former les classes désirées.
Pour chaque classe, on stocke son mean, un ensemble de représentants pour le
calcul de la distance entre elle et une autre classe et la classe la plus proche d’elle.
L’algorithme commence en considérant chaque point d’entrée comme une
classe et successivement fusionne chaque paire de classes les plus proches.
Initialement, les représentants d’une classe sont les points dans la classe. Chaque
classe est fusionnée avec sa classe la plus proche en faisant simplement une union des
points de deux classes. Dans la nouvelle classe, les représentants sont calculés en tout
d’abord choisissant par itérations les points bien éparpillés et après en les rétrécissant
vers le centre de la classe. Dans la première itération, le point le plus loin du centre
dans la classe est choisi comme le premier point éparpillé. Dans chaque itération
suivante, le point le plus loin des points éparpillés précédents est choisi. Après avoir
choisi les points bien éparpillés, les représentants sont obtenus par rétrécissement de
ces points par une fraction vers le centre de la classe.
L’algorithme utilise un arbre kd (kd-tree) où sont stockés les points
représentants des classes qui sont pris pour 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).
-
8/18/2019 Stage-le Anh Tuan
15/59
14
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 en optimisant une fonction objective qui
est définie d’une façon locale (sur un sous-ensemble des données) ou globale (sur
toutes les données) [3]. Le coût de construction des classes est cher, donc des
heuristiques sont utilisées pour l’optimisation d’itérations sous la forme de mécanismede réallocation qui réaffectent les points entre les classes. Ces méthodes raffinent
graduellement les classes et donc peuvent donner les classes de meilleure qualité. En
fait, les algorithmes ont besoin d’exécuter plusieurs fois avec différents états initiaux
afin d’obtenir un meilleur résultat.
Une approche est d’utiliser un point de vue conceptuel pour identifier les
classes en supposant que les données viennent d’un mélange de certaines populations
Une autre approche travaille avec une fonction objective définie sur chaque
classe. Dépendant de la représentation d’une classe, on classifie ces types
d’algorithmes en deux : k-medoids et k-means.
i. K-medoidsDans ces algorithmes, une classe est représentée par un de ses points, qui
s’appelle medoid. Une telle représentation nous donne deux avantages : elle s’adapte à
n’importe quel type d’attributs, et le médoid est choisi comme une fraction des points
prédominants dans une classe, donc il n’est pas sensible aux aberrants. Si les médoids
sont choisis, les classes sont définies comme les sous-ensembles de points proches du
médoid correspondant. Et la fonction objective sera définie comme la distance (ou
d’autres mesures de dissimilarité) moyenne entre un point et le medoid.
Les algorithmes les plus connus sont PAM, CLARA et CLARANS [1] [2] [10]
[11]
- PAM (Partitioning around Medoids) a été développé par Kaufman andRousseeuw [12]. PAM recherche les medoids des classes. Initialement, PAM choisit k
points représentatifs à partir des données de N points (k est le nombre de classes, N
est le nombre total de points). Ensuite, N-k points restants sont classifiés en se basant
sur leur distance aux medoids : chaque point restant appartient à une classe si la
distance entre ce point et le medoid de cette classe est la plus petite. Puis, PAM
échange 2 points : l’un de l’ensemble de medoids, et l’autre de l’ensemble de non-
medoids. Le critère de la sélection est que la somme de distance de tous les points à
leur medoid correspondant doit diminuer et avoir la décroissance la plus forte. PAM
calcule le changement de la distance après un échange pour toutes les paires (medoid
et non-medoid). Il choisira le pair dont la valeur de changement est la plus petite(cette valeur est toujours négative). S’il n’y a plus de paires dont le changement est
négatif, cela signifie que la classe courante est bonne, donc que PAM s’arrête et
renvoie k medoids. Les classes seront formées en calculant les distances entre les
points et ces medoids.
La complexité d’une seule itération (un échange) de PAM est O (k (N-k) 2
).
Donc le coût total de calcul est vraiment cher car il a de plus besoin de nombreuses
itérations avant de terminer.
-
8/18/2019 Stage-le Anh Tuan
16/59
15
- CLARA (Clustering LARge Applications) est aussi développé par Kaufmanet Rousseeuw [12]. L’amélioration de CLARAN par rapport de PAM est qu’il ne se
base pas sur l’ensemble entier de points, il travaille sur les échantillons des points. On
prend une petite partie de données pour les représenter et k medoids sont déterminés
en appliquant PAM sur cet échantillon. Si cet échantillon est choisi d’une manière
aléatoire, alors il représente bien les données entières, donc les medoids sontsimilaires à ceux qui sont créés à partir des données tout entières. L’algorithme est
exécuté sur plusieurs échantillons pour obtenir le meilleur résultat. En conséquence,
CLARA peut traiter un plus gros jeu de données que PAM. La complexité d’une
itération est O (kS2+k (n-k)) avec S est la taille d’un échantillon. Les auteurs ont
indiqué, suite à leurs expérimentations, que la taille d’un échantillon de 40+2k donne
un bon résultat. Un inconvénient de cet algorithme est qu’un point qui serait le
meilleur medoid n’apparaît dans aucun échantillon, alors CLARA ne trouvera jamais
le meilleur résultat.
- CLARANS (Clustering Large Applications based on RANdomized Search)est une combinaison de PAM et CLARA. Il a été développé par Raymon Ng et Jiawei
Han [12]. Dans cet algorithme, les auteurs ont utilisé une abstraction de graphe pourreprésenter le problème de recherche des k meilleurs medoids. On construit un graphe
dont chaque nœud est un ensemble de k points (intuitivement, ce sont k medoids).
Deux nœuds sont dits voisinages s’ils ne diffèrent que par un seul point. En
conséquence, le problème de déterminer un ensemble de k meilleurs medoids devient
le problème de recherche dans ce graphe du meilleur nœud. Le critère pour estimer
qu’un nœud est meilleur qu’un autre est comme dans le PAM : on minimise le
changement dans la distance si un medoid est remplacé par un point non medoid en
parcourant d’un nœud à un nœud voisin. Ce changement est appelé le coût différentiel
de remplacement d’un medoid par un point non medoid. PAM le fait en parcourant
tous les nœuds voisins d’un nœud donc c’est trop cher. CLARAN le fait en parcourant
un sous graphe. En conséquence, cela ne donne pas toujours un bon résultat car il
travaille sur une région localisée. CLARANS est une combinaison des deux
algorithmes. C’est à dire à partir d’un nœud dans le graphe, il n’examine pas tous les
voisinages. Il choisit un nombre (donné comme un paramètre de l’algorithme) de
voisins aléatoires (ce n’est pas tous les voisins) pour rechercher un voisin dont le coût
de remplacement de ce nœud par son voisin est minimisé. Si ce coût est négatif, i.e. le
remplacement ne peut optimiser plus le résultat, le nœud trouvé est le meilleur
résultat, et le processus peut s’arrêter.
Théoriquement, la complexité de CLARA est O (k 3+nk) pour chaque itération,
tandis que celle de CLARANS est linéaire par rapport au nombre de points, donc le
deuxième est théoriquement meilleur que le premier. L’expérimentation des auteurs
prouve également que CLARANS est meilleur que CLARA dans tous les cas [12]
ii.
K-meansCet algorithme est le plus connu dans la communauté de classification des
données. Dans cet algorithme, chaque classe est représentée par la moyenne (mean)
ou la moyenne pondérée qui est nommée le centroid. K-means est un algorithme
itératif. Il commence avec un ensemble de k points de référence (centroid) choisi par
l’utilisateur. Au début, les points de données sont partitionnés dans k classes : Un
point appartient à une classe si le point de référence de cette classe est le plus proche
-
8/18/2019 Stage-le Anh Tuan
17/59
16
de lui. La mise à jour des points de référence et l’affectation des points de données
aux classes sont réalisées pendant les itérations successives.
Il y a plusieurs versions de k-means. On peut les distinguer selon deux
critères : la différence dans la mise à jour des classes et le critère pour faire cette mise
à jour.
Pour le premier critère, les algorithmes de ce type diffèrent dans le détail de la
génération et de l’ajustement des classes. Il y a 3 algorithmes de base de ce type :
Standard K-means, l’algorithme de Lloyd, et continuous K-means qui a été proposé
par McQueen en 1967 [15].
- L’algorithme de Lloyd : L’initialisation de l’algorithme est similaire à ladescription ci-dessus. Les ajustements sont réalisés en calculant le centroid pour
chaque classe et en utilisant ces centroids comme les points de référence dans
l’itération suivante pour tous les points de données. La mise à jour des centroids n’est
faite qu’après une itération.
- Standard k-means: Cet algorithme est meilleur que celui de Lloyd en termede l’utilisation plus efficace de l’information à chaque pas d’itération. C’est à dire la
mise à jour des centroids est faite pendant et après une itération. Si un pointappartient à une classe et que pour lui, le centroid de cette classe est le point de
référence le plus proche, alors il n’y aura aucun ajustement. Mais si après avoir
affecté un point x à une classe A, on trouve qu’il y a une autre classe B dont le
centroid est le point de référence plus proche de x que celui de A, alors il faut
réaffecter x à la classe B et recalculer les centroids de toutes les deux classes, et les
points de référence de ces deux classes se déplacent aux nouveaux centroids.
- Continuous k-means: Cet algorithme diffère au standard k-means par le
choix des points de référence initiaux et la sélection des points pour la mise à jour des
classes. Dans la première différence, pas comme dans Lloyd ou standard k-means où
les points de référence initiaux sont arbitrairement choisis, dans cet algorithme, ces
points sont choisis comme un échantillon aléatoire de la population entière des points.
Si l’échantillon est assez gros, alors la distribution des points de référence initiaux
pourrait refléter celle des points de la population. La deuxième différence,
contrairement au standard k-means où tous les points sont séquentiellement examinés,
cet algorithme n’examine qu’un échantillon aléatoire des points. Si le jeu de données
est gros et l’échantillon est représentatif du jeu de données, alors l’algorithme peut
converger plus vite qu’un algorithme qui doit examiner séquentiellement tous les
points.
Pour le deuxième, il y a deux versions de l’optimisation itérative de k-means [1]:
- L’algorithme de Forgy, est similaire à l’algorithme EM et ses itérationsdisposent de deux pas : réaffecter tous les points à leur centroid le plus proche et
recalculer les centroids des nouveaux groupes créés. Les itérations continuent jusqu’à
ce qu’on atteigne un critère de terminaison (par exemple, il n’y a plus de réaffection).
Les avantages sont la capacité de travailler sur toutes les normes Lp, la facilité de
paralléliser, l’insensibilité à l’ordre des données.
-
8/18/2019 Stage-le Anh Tuan
18/59
17
- L’algorithme d’optimisation itérative réaffecte les points en se basant surune analyse plus détaillée des effets sur la fonction objective quand un point est
déplacé de sa classe à une classe potentielle. Si l’effet est positif, ce point sera
réaffecté et deux centroids seront recalculés. L’expérimentation prouve que la version
classique est souvent meilleure que celle de Forgy [4].
K-means est populaire et beaucoup utilisé grâce à sa simplicité. En fait, il apas mal des inconvénients : Le résultat est vraiment dépendant des centroids initiaux,
l’optimum local calculé est trop différent de la valeur globale, il n’est pas facile de
déterminer un bon nombre de classes utilisé pour l’algorithme, le processus est
sensible aux aberrants, l’algorithme n’est pas extensible et l’algorithme ne travaille
que sur les données numériques.
Pour remédier à ces inconvénients, certaines améliorations et extensions sont
proposées comme ISODATA qui permet de déterminer automatiquement un bon
nombre de classes utilisé pour donner un bon résultat, k-modes, k-prototypes pour
manipuler sur les données catégorie [5] ou l’accélération de k-means par l’inéquation
triangulaire, single pass k-means pour travailler sur un gros jeu de données [6]…
- ISODATA : Comme on a vu, le nombre de classes K est toujours déterminé àpriori pour k-means. ISODATA a été proposé pour remédier à cet inconvénient. Il
intercale des phases de fusion et d’éclatement de groupes dans k-means [14] :
fusionner 2 classes si la distance entre elles est faible (inférieure à un seuil) et éclater
une classe en 2 classes si son inertie est trop grande (supérieure à un seuil).
Initialement, on donne un nombre k assez grand comme l’entrée du nombre de classes
de k-means. Après avoir appliqué k-means sur ces données, on fait la fusion et
l’éclatement pour trouver un bon nombre de classes. La difficulté est que l’on a besoin
déterminer deux seuils pour la phase supplémentaire.
- K-modes, k-prototypes sont développés par Z. Huang [5]. On sait que K-means ne travaille que sur les données numériques sur lesquelles on utilise la distance
euclidienne pour calculer la dissimilarité entre les points ou les classes. Pour que cet
algorithme puisse marcher avec les données catégoriques, Z. Huang a proposé deux
extensions de k-means en définissant une mesure de dissimilarité pour comparer les
objets de données. En conséquence, on utilise les modes au lieu des means et une
méthode basée sur la fréquence pour mettre à jour les modes.
Etant donnés 2 objets de type catégorie, la dissimilarité entre eux est définie
comme le nombre d’attributs différents correspondants entre ces deux objets.
∑=
=
n
i
ii y x y xd 1
),(),( δ Tel que
≠
==
ii
ii
ii y xsi
y xsi y x
1
0),(δ
Le mode d’une classe est l’objet qui apparaît le plus dans la classe.
L’algorithme k-modes a pour but de traiter seulement les données catégorie, k-
prototypes vise à manipuler les données mélangées (numérique et catégorie) en
additionnant la distance euclidienne pour les attributs numériques avec la distance
décrite ci-dessus pour les attributs catégoriques avec un poids (la somme pondérée) :
-
8/18/2019 Stage-le Anh Tuan
19/59
18
cn d d d .λ += , tels que dn est la distance numérique et dc est la distance catégorique,
λ est un poids qui équilibre la domination des attributs catégorie sur les attributsnumériques. Cette distance est utilisée dans l’algorithme k-means.
- Single pass k-means (Scalable k-means): Cet algorithme a été développé parBradley, Fayyad et Reina [6]. Il vise à augmenter l’extensibilité de k-means pour de
gros jeux de données. L’idée de cet algorithme est basée sur la notion que lessolutions effectives de classification peuvent être obtenues en sélectionnant et
stockant des parties importantes de données et résumant les autres. Il est capable
d’identifier les régions de données qui sont compressibles, les régions qui doivent être
gardées dans la mémoire et les régions qui peuvent être supprimées.
Pour représenter un groupe de données (une sous-classe) sous une forme
compressée, l’algorithme utilise un triplet de statistique (SUM, SQUAREDSUM, N)
tels que SUM est la somme linéaire de tous les points dans le groupe,
SQUAREDSUM est la somme des écarts carrés des points au centroid, et N est le
nombre de points dans ce groupe. Il a besoin de 3 types de jeu de données stockés
dans la mémoire : DS- jeu de données supprimées, CS- jeu de données compressées et
RS- jeu de données gardées. Notons que DS et CS stocke les statistiques de données.
L’algorithme comprend 2 étapes de compression : la compression primaire a
pour but de déterminer les données qui sont supprimées (donc stockées dans DS). La
compression secondaire vise à compresser les données qui ne sont pas supprimées
dans la première phase (le résultat est stocké dans CS). Les données qui ne sont pas
traitées dans ces 2 étapes de compression sont stockées dans RS. Les points qui sont
supprimés dans la première étape sont ceux qui ne se déplacent quasiment jamais à
une autre classe. Cette tâche est effectuée en utilisant le seuillage d’un rayon de
Mahalanobis autour du centre d’une classe. Les points se trouvent dans ce rayon sont
compressés. Chaque classe a un jeu de données supprimées représenté par le triplet ci-
dessus pour représenter tous les points appartenant à cette classe. La première étapetrouve les régions denses (les sous-classes) qui ne sont pas compressées par la
première étape en appliquant l’algorithme k-means avec un nombre de classes k’ > k.
Après avoir trouvé k’ sous-classes, on applique un critère de compacité (dense) sur
ces k’ classes comme un filtre: une sous-classe dont la covariance est inférieure à un
seuil est passée ce filtre. Les sous-classes filtrées sont fusionnées avec celles stockées
dans CS et les autres points par une classification hiérarchique d’agglomération.
- Accélération de k-means : En utilisant l’inégalité triangulaire, Elkan aproposé une amélioration qui permet de diminuer le coût de calcul des distances dans
k-means [13]. L’idée est basée sur le fait que la plupart des calculs de distance sont
redondants. Si un point se trouve très loin d’un centre, alors ce n’est pas nécessaire de
calculer la distance exacte entre lui et ce centre afin de savoir si ce point peut êtreaffecté à ce centre. En plus, si un point est vraiment plus proche d’un centre que tous
les autres centres, on n’a pas besoin de calculer les distances exactes pour décider si le
point appartient à ce centre.
3) Méthodes basées sur la densité
C’est des méthodes hiérarchiques dans lesquelles les classes sont considérées
comme des régions en haute densité qui sont séparées par des régions en faible
-
8/18/2019 Stage-le Anh Tuan
20/59
19
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, 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é).
i. DBSCANDBSCAN (Density Based Spatial Clustering of Applications with Noise) est
un algorithme très populaire dans ce type d’algorithme de classification [2] [18]. Pour
chaque objet, il cherche le voisinage qui contient un nombre minimum d’objets. Une
classe est formée par tous les objets qui sont transitivement connectés par leurs
voisinages. Un voisinage de rayon Eps contenant au moins MinPts objets d’un objet
est appelé le voisinage Eps-MinPts de cet objet.
On utilise la notion connecté-densité pour former des classes :
- Un objet est dit directement accessible-densité Eps-MinPts d’un autre objet
s’il se trouve dans le voisinage Eps-MinPts de cet objet.
- Un objet est dit accessible-densité Eps-MinPts d’un autre objet s’il y a une
chaîne d’objets entre eux dont tous les 2 objets successifs sont directement accessible
densité Eps-MinPts.
- Un objet est dit connecté-densité Eps-MinPts d’un autre objet s’il y a un objet
duquel tous les deux objets sont accessibles-densité.
Une classe avec Eps et MinPts prédéfinis est définie comme un ensemble non
vide d’objets qui satisfait 2 conditions, l’une est la condition de connectivité, i.e. tous
les objets de la classe doivent être connectés-densité, l’autre est la condition de
maximum, i.e. tous les objets qui se trouvent dans le voisinage Eps-MinPts d’un objet
de la classe doivent appartenir à cette classe.
Le bruit est défini comme un ensemble d’objets qui n’appartiennent à aucune
classe.
Il y a deux objets différents qui sont pris en compte dans la classification :
l’objet de noyau et non noyau. Un objet de noyau est celui qui a un voisinage Eps-MinPts. Un objet non noyau est celui qui n’a pas un tel voisinage. Un objet non noyau
peut être un objet de frontière ou un bruit.
L’algorithme commence en prenant en compte d’un objet arbitraire et cherche
tous les objets accessibles densité. S’il est objet de noyau, alors cette phase forme une
classe. S’il est un objet de frontière et qu’il n’y a aucun objet qui est accessible densité
depuis lui, alors c’est un bruit, l’algorithme passe à un autre objet.
-
8/18/2019 Stage-le Anh Tuan
21/59
20
Normalement, la complexité de la recherche du voisinage est O(N2). Pour
accélérer cette recherche, on peut utiliser certaines méthodes d’accès spatial comme
l’arbre R* ou l’arbre M pour obtenir une complexité de O (N logN). On les verra dans
la section de Méthodes de recherche d’un voisinage.
DBSCAN peut chercher les classes de forme arbitraire. Il est insensible à
l’ordre d’entrée des objets. Il est incrémental car un nouvel objet qui arrive peutaffecter certains voisinages. A côté, l’algorithme a des inconvénients : il est difficile à
préciser le rayon Eps et le seuil de la cardinalité d’un voisinage et la performance peut
être diminuée pour les données de haute dimension.
ii. DENCLUEDENCLUE (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 être choisis pour définir des classes d'une
manière simple.
Typiquement la fonction d'influence est symétrique (i.e. elle est la même dans
toutes les directions) et sa valeur (contribution) diminue si la distance du point au
centre augmente. Une fonction d’influence très connue est la fonction gaussienne
2
2
2
),(tan
)( σ y xcedis
e xK
−
=
Figure 2 : La fonction d’influence gaussienne, un jeu de points
et la fonction de densité globale
DENCLUE a deux étapes, une étape de prétraitement et une étape de
classification. Dans l'étape de prétraitement, une grille pour les données est créée en
divisant l’hyper rectangle englobant minimal en hyper rectangles d dimensionnels
avec la longueur d’arête égale à σ 2 . Les cellules de grille qui contiennent des pointssont alors déterminées (seulement les cellules occupées de grille doivent être
construites). Les cellules de grille sont numérotées selon une origine particulière (sur
une arête de l’hyper rectangle englobant) et les clefs sont stockées dans un arbre de
recherche pour fournir un accès efficace au traitement ultérieur. Pour chaque cellule
de grille, le nombre de points, la somme des points dans la cellule, et des connexions
aux cellules voisines sont également stockés.
-
8/18/2019 Stage-le Anh Tuan
22/59
-
8/18/2019 Stage-le Anh Tuan
23/59
22
ii. WaveClusterC’est un algorithme qui est conçu pour travailler sur des données spatiales.
Dans l’algorithme, on considère les données spatiales comme les signaux
multidimensionnels et on applique une technique de traitement de signal qui s’appelle
la transformation wavelet pour transformer l’espace de données vers un domaine de
fréquence [16]. L’idée est basée sur le fait que les parties de haute fréquence du signal
correspondent aux régions de l’espace spatial de données où il y a un changementbrusque dans la distribution des objets. Ce sont les frontières des classes. Au
contraire, les parties de basse fréquence du signal correspondent aux régions de
l’espace de données où les objets sont concentrés. Autrement dit, ce sont les classes.
Tout d’abord, l’algorithme quantifie l’espace de données (divise l’espace en
cellules) et affecte les objets aux cellules. Ensuite, il applique la transformation
wavelet pour l’espace quantifié afin d’obtenir un espace transformé. Puis il cherche
les composantes connectées (les classes) dans les sous bandes (l’espace transformé est
un espace de fréquence). Deux composantes sont dites connectées si le nombre
d’objets de chacune dans l’espace transformé est supérieur à un seuil et si elles sont
epsilons voisins (la distance entre eux est inférieure à epsilon). Enfin, il étiquette les
cellules et réaffecte les objets à leurs classes correspondantes.
WaveCluster est capable de traiter efficacement les gros jeux de données
spatiales donc en basse dimension. Il peut découvrir des classes de forme arbitraire et
bien traiter le bruit. En plus, grâce au traitement du signal appliqué, WaveCluster nous
donne la multi résolution, i.e. il peut donner des classes de différent niveau du détail.
La complexité de la phase de quantification est O (N) et celle de la phase de
transformation wavelet est au plus de O (4/3K) tel que K est le nombre de cellules
[16].
iii. CLIQUE
Au lieu de construire les classes dans l’espace original comme les autresalgorithmes, CLIQUE (CLustering In QUEst) le fait dans des sous-espaces en
dimension la plus haute si possible [2] [17]. L’idée est basée sur le fait que si une
collection de points S est une classe dans un espace de k dimensions, alors S est ainsi
une partie d’une classe dans n’importe quelle projection en k-1 dimensions de cet
espace.
L’algorithme travaille en niveaux. Tout d’abord, il détermine toutes les unités
denses en 1 dimension en balayant une fois les données. Après avoir déterminé les
unités denses en (k-1) dimensions, il détermine les unités denses candidates en k
dimensions en utilisant une procédure qui génère les unités candidates.
La procédure de génération utilise l’ensemble de toutes les unités denses en k-1 dimensions Dk-1. Elle joint Dk-1 avec elle-même sous une condition où les unités qui
sont jointes partagent les premières k-2 dimensions pour obtenir un ensemble de
candidates Ck . On supprimera les unités denses de Ck qui ont une projection en k
dimensions qui ne sont pas incluse dans Ck-1. L’algorithme se termine lorsqu’il n’y a
plus de candidatures générées.
CLIQUE est une solution pour la classification de données en haute
dimension. Il est insensible à l’ordre des données. Cependant, sa complexité est
-
8/18/2019 Stage-le Anh Tuan
24/59
23
exponentielle. Supposons que k est le nombre le plus haut de dimensions du sous-
espace auquel l’algorithme se termine, m est la cardinalité du jeu de données,
l’algorithme doit accéder au jeu de données k fois. La complexité est O (ck + mk) où c
est une constante.
5) Algorithmes pour des données de haute dimension
Les objets utilisés dans la classification peuvent disposer de centaines
attributs. La classification dans un tel espace de haute dimensionnalité est
extrêmement difficile. Le calcul de similarité devient très coûteux. Un problème très
connu sous le nom de malédiction de dimensionnalité (dimensionnality curse), quiest le manque de propriétés de données dans un espace de haute dimension. Par
exemple, dans un espace bidimensionnel, un cercle peut être approximé par un carré
englobant minimum et le rapport des régions est 1 / 4 ≈π tandis que dans un espacede 100 dimensions, le rapport des volumes est approximativement 4,2. 10
39 [21]. Cela
signifie que la plupart du volume d’un hyper cube de 100 dimensions est hors de la
plus grande hyper sphère inscrite, autrement dit, les hyper cubes sont de mauvaises
approximations des hyper sphères. Or, la plupart de structures de recherche du voisin
le plus proche (utilisées dans la classification) divisent l’espace de recherche en hyper
cubes où hyper rectangles. En entrant à un espace de dimensionnalité plus haute, les
données deviennent plus clairsemées. Un autre problème peut survenir dans un espace
de haute dimension, c’est la présence d’attributs non pertinents qui affectent
négativement les mesures de proximité et donc peuvent menacer l’existence des
classes dans la classification. En fait, ce phénomène peut figurer avec des données de
basse dimension, mais la possibilité de présence et le nombre des attributs non
pertinents augmentent avec la dimensionnalité.
Il y a certaines techniques pour résoudre les problèmes ci-dessus, on peut
trouver la technique de sélection d’attributs, la réduction de dimensionnalité, la
classification dans des sous-espaces et la co-classification.
i. Sélection d’attributsAvant la classification, il est possible qu’on sache à priori que seul un petit
nombre de variables ont de l'intérêt. Dans ce cas, ces variables peuvent être choisies,
et les autres être jetées, de ce fait réduisant la dimensionnalité du jeu de données. Plus
généralement, l'analyse de données (classification ou autre) est souvent précédée par
une étape de choix des caractéristiques qui essaye d'enlever les caractéristiques non
pertinentes. Ceci peut être accompli en jetant les caractéristiques qui montrent peu de
variation ou qui sont fortement corrélés avec d'autres caractéristiques (La méthode de
sélection un sujet compliqué).
ii.
Réduction de dimensionnalitéDans ce type de méthodes, il y a deux techniques principales. Ce sont la
transformation des attributs et la décomposition de domaine.
- Les transformations des attributs sont des fonctions simples des attributs
existants. Dans la statistique multi variable, on utilise l’analyse de composantes
principales (ACP). Dans la récupération d’information, c’est la décomposition de
valeur singulière. On reverra ces techniques en détail dans la section de recherche du
voisin le plus proche.
-
8/18/2019 Stage-le Anh Tuan
25/59
24
- La décomposition de domaine vise à diviser un ensemble de données en sous-
ensembles, en fait, ce sont des classes, appelés les verrières (canopies en anglais) [22]
en utilisant certaines mesures de similarité peu coûteuses pour que le calcul de haute
dimension a lieu sur les jeux de données plus petits. La dimensionnalité est pareille
mais le coût de calcul est réduit. Cette approche cible à la situation de haute
dimension, de gros jeu de données et beaucoup de classes.
iii. Classification dans sous-espacesLes approches de réduction de caractéristiques et de réduction de
dimensionnalité basées sur PCA ou SVD peuvent être inadéquates si les différentes
classes se situent dans de différents sous-espaces. En effet, on souligne que pour
beaucoup de jeux de données de dimension élevée, il est probable que les classes se
situent seulement dans les sous-ensembles du plein espace. Ainsi, beaucoup
d'algorithmes pour classifier des données de dimension élevée trouvent
automatiquement des classes dans les sous-espaces du plein espace.
On peut trouver l’algorithme CLIQUE décrit ci-dessus est un algorithme ne
fait pas la classification dans l’espace original, mais dans les sous espaces.
Il y a un autre algorithme qui s’appelle MAFIA (Merging of Adaptive Finite
Intervals) [23]. C’est une technique pour le calcul adaptative des intervalles finis
(appelés les casiers, bins en anglais) en chaque dimension qui sont fusionnés pour
explorer les classes en haute dimension. En conséquence, les auteurs utilisent les
grilles adaptatives pour réduire le calcul et améliorer la qualité des classes en
concentrant sur les parties de l’espace de données qui ont plus de points donc elles ont
probablement des classes se trouvant dedans. L’algorithme ascendant (bottom-up)
pour la classification dans sous-espaces calcule les unités denses sur toutes les
dimensions et combine ces unités pour générer les unités denses en plus haute
dimension. MAFIA est aussi un algorithme basé sur la densité.
MAFIA construit les classes de la même manière que CLIQUE. La différence
principale et aussi une amélioration) entre MAFIA et CLIQUE est que dans CLIQUE,
on utilise la taille des unités en chaque dimension est constante. Par conséquent, on
néglige la distribution de données au long de chaque dimension. Les régions denses et
clairsemées sont toutes les deux représentées par les mêmes tailles de grille. MAFIA
utilise une taille d’intervalle adaptative pour diviser chaque dimension dépendant de
la distribution de données dans la dimension. En utilisant un histogramme construit
par une passe sur les données, on détermine le nombre minimum de casiers
(intervalles) pour chaque dimension. Les casiers contigus avec un histogramme
similaire sont combinés pour former un casier plus large. Les casiers et les cellules
dont la densité de données est faible sont supprimés pour diminuer le nombre d’unités
denses candidates, donc réduire le coût de calcul. Les frontières des casiers ne sontpas rigides comme dans le cas des casiers de taille uniforme, donc elles sont capables
de tracer plus exactement les frontières des classes.
-
8/18/2019 Stage-le Anh Tuan
26/59
25
Figure 3: Grille de taille uniforme (a) et Grille de taille adaptative (b)
Une autre différence entre 2 algorithmes est dans la phase de génération des
unités candidates. Pour construire une unité candidate de k dimensions, CLIQUE
combine deux unités de k-1 dimensions qui partagent k-2 premières dimensions,
tandis que dans MAFIA, ce sont deux unités de k-1 dimensions qui partagent
n’importe quel k-2 dimensions. Cela crée plus d’unités candidates.
La complexité de MAFIA est O (ck + kn) tels que c est un constant, n est lenombre de points de données est k est le nombre maximum de dimension des sous-
espaces. 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-classificationLe 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 des points en se
basant sur leurs attributs, elle essaie de faire la classification les attributs en se basantsur les points. Si un jeu de données est représenté par une matrice donc les lignes
expriment les points et les colonnes expriment les attributs. Au lieu de grouper
seulement les lignes, on groupe également les colonnes.
6) Algorithmes pour les données qualitatives (catégorie)
Les 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 est toujours
définie en basant sur les caractéristiques des données. Pas comme les données
numériques, les données de catégorie n’ont pas toujours de caractéristiques
géographiques inhérentes. Donc la classification de données de catégorie est vraiment
compliquée que celle de données numériques. En fait, pour les données numériques, iln’est pas difficile de définir la similarité de la position géographique des données,
tandis que pour les données de catégorie, ce n’est pas facile.
La mesure de similarité de données catégories dépendant fortement de leurs
caractéristiques et l’application. A côté des algorithmes k-modes, k-prototypes que
nous avons présentés dans la section de l’algorithme k-means, il existe assez
d’algorithmes qui permettent de traiter des données catégories. Parmi eux, ROCK,
CACTUS, STIRR sont les plus connus.
-
8/18/2019 Stage-le Anh Tuan
27/59
-
8/18/2019 Stage-le Anh Tuan
28/59
27
domaine de j-ième attribut est Di, alors le nombre de nœuds dans le graphe est ∑i
i D .
Pour chaque uplet dans la base de données, un arc représente un ensemble de nœuds
qui participent à ce uplet. Ainsi un uplet est représenté une collection de nœuds
chaque type d'attribut. L'ensemble de poids de tous les nœuds définit une
configuration de cette structure. Les poids initiaux de nœuds peuvent être assignés
uniformément, aléatoirement ou par une technique quelconque.
Figure 4: Une base de données et sa représentation de graphe
STIRR change itérativement la configuration en mettant à jour le poids de
n'importe quel nœud simple (single node). Le nouveau poids d’un nœud est calculé
en basant sur une fonction de combinaison, qui combine les poids d'autres nœuds
participant à n'importe quel uplet avec le nœud donné pour lequel le poids doit être
mis à jour. C’est-à-dire qu’il se déplace d'une configuration à une autre jusqu'à ce
qu'il atteigne un point stable, appelé comme bassin. La convergence dépend de la
fonction de combinaison. L'analyse de la stabilité est dure. Cependant, pour le
combinateur simple fonctionne comme la somme ou la multiplication, le système
converge certainement à un point fixe. Il est facile de voir que, pour des attributs
catégoriques, les valeurs qui sont connexes par les uplets communs s'influencent
pendant la modification de poids. C’est la raison pour laquelle on n'exige vraiment
d'aucune définition de similarité métrique pour des attributs de catégorie. Une choseest intéressante dans STIRR est que, afin de grouper l'ensemble d’uplets, l’algorithme
maintient les copies multiples des poids. Quand le point fixe est atteint, les poids dans
un ou plusieurs bassins isolent deux groupes de valeurs d'attribut sur chaque attribut :
le premier avec de grands poids positifs et la seconde avec de petits poids négatifs.
Les nœuds avec de grands poids positifs et grands poids négatifs sont groupés pour
déterminer des classes. Ces groupes correspondent intuitivement aux projections des
classes sur l'attribut. Cependant, l'identification automatique de tels ensembles de
valeurs d'attribut à partir de leurs poids exige une étape non triviale de post-
traitement; une telle étape de post-traitement n'a pas été adressée dans leur travail.
D'ailleurs, l'étape de post-traitement déterminera également quelles sont les classes
qui seront créées. L’algorithme requis une seule passe sur les données. Sa complexité
est O (n).
iii. CACTUSCACTUS (Clustering Categorical Data Using Summaries) fait la classification
sur les données de catégorie. L'idée centrale de CACTUS est que l'information
résumée formée à partir de l'ensemble entier de données est suffisante pour découvrir
des classes. L’hypothèse est que l'information résumée peut être mise dans la
-
8/18/2019 Stage-le Anh Tuan
29/59
28
mémoire centrale, et qu'elle peut être construite efficacement par une seule passe sur
les données.
Intuitivement, une classe sur un ensemble d'attributs numériques identifie une
région dense dans l'espace d'attributs. En général, la classe des régions rectangulaires
peut être exprimée comme un produit cartésien des intervalles. Puisque des domaines
des attributs de catégorie ne sont pas ordonnés, le concept d'un intervalle n'existe pas.Cependant, on peut considérer un intervalle dans le domaine de catégorie comme un
ensemble de valeurs d'attribut.
CACTUS définit une région d’intervalle comme un produit croisé des
ensembles de valeurs d’attribut. Un uplet est dit appartenir à une région si la valeur de
tous les attributs de ce uplet se trouve dans le domaine correspondant de la région. Le
support d’un pair de valeurs d’attribut est le nombre d’uplets (objets) dans le jeu de
données alors que ces deux valeurs apparaissent à la fois. Le support d’une région
d’intervalle est le nombre de uplets dans le jeu de données qui appartiennent à cette
région. Deux valeurs d’attribut est appelées fortement connectées (strongly connected)
si le support de ce pair de valeurs est supérieur α fois à l’espérance des supports de
tous pairs de valeurs dans les domaines correspondants.
En basant sur les concepts ci-dessus, l’algorithme comprend 3 phases :
- La phase de réduction : Il y a deux types de résumé : le résumé d’inter attribut
compte tous les pairs de valeurs d’attribut qui sont fortement connectées dans de
différents attributs. Le résumé d’intra attribut calcule les similarités entre les valeurs
d’attribut du même attribut. On suppose que ces résumés peuvent être mis
complètement dans la mémoire.
- La phase de classification : Il y a deux étapes dans cette phase. Tout d’abord,
on calcule les projections des classes sur les attributs en basant sur le fait que une
classe sur un ensemble d’attributs induit une sous classe sur un pair d’attribut (l’idée
est comme celle des algorithmes de classification dans les sous espaces). Cette étape a
pour but de déterminer les classes candidates sur un pair d’attributs et les projections
sont calculées en basant sur les deux résumés obtenus de la première phase. L’étape
suivante vise à construire des classes en faisant l’intersection des projections de
classes sur un attribut calculées dans la première étape en jointant ces projections
successivement sur plusieurs attributs.
- La phase de validation : l'algorithme identifie les classes candidates fausses en
vérifiant si le support de chaque classe candidate est plus grand qu’un seuil exigé.
CACTUS est un algorithme extensible (scalable algorithm) puisqu'il exige
seulement un passage du jeu de données. Le deuxième passage est nécessaire pour la
phase de validation, sans aucune implication sur l’extensibilité. Les auteurs présentent
les résultats expérimentaux suffisants qui prouvent une meilleure exécution comparéeà STIRR, en termes de période et nombre d'attributs.
-
8/18/2019 Stage-le Anh Tuan
30/59
29
Chapitre 4. Classification sur le flux de données
1.
Classification sur le flux de données
Le modèle du flux de données a récemment attiré l'attention pour son
applicabilité à de nombreux types de données, y compris des données decommunications téléphoniques, des documents web et des navigations sur Internet
(clickstream). Pour l'analyse de telles données, on a besoin de traiter les données dans
un passage simple, ou d’un nombre limité de passages et d’un espace limité [25].
Un flux de données est intuitivement une séquence d’éléments de données x1 ,
x2 ,…,xi,…qui peuvent être lus une seule fois en ordre croissant des indices i [53].
L’accès aléatoire aux données n’est pas permis. En général, le jeu de données sur un
flux est souvent gros et les éléments de données arrivent continuellement. Les flux de
données diffèrent d’autres modèles de stockage des données sur les caractéristiques
suivantes [54]:
- Les éléments de données sur un flux de données arrivent en ligne.
- Il est impossible de contrôler l’ordre d’arrivée des éléments.- Les flux de données sont potentiellement illimités en taille.- Une fois qu’un élément de données sur le flux est traité, il est soit archivé soit
écarté.
Le traitement en général et la classification en particulier sur un flux de
données doit satisfaire 2 restrictions: une seule passe ou peu de passes d’accès aux
données et une mémoire limitée. Par conséquent, le calcul sur un flux de données doit
être simple à cause de ces restrictions. En plus, puisque la quantité de données
dépasse beaucoup l’espace de mémoire disponible pour le traitement, il est impossible
de se souvenir de tous les éléments de données lus dans le passé. La pénurie d’espace
nécessite de nouveaux algorithmes qui ne sauvegardent qu’un résumé de données du
passé et laissent suffisamment d’espace au traitement des données dans le futur. Il
existe plusieurs types de résumé des données, un centre de gravité, par exemple, d’une
classe est un résumé des éléments de données qui se groupent dans cette classe
comme dans les algorithmes de type k-means, un élément représentatif des classes est
aussi un résumé de la classe, comme dans les algorithmes de type k-medoids…
Un flux de données est une séquence ordonnée de points de données qui ne
peuvent être accédés que séquentiellement et une seule fois (balayage linéaire). En
général, un jeu de données dans un flux est vraiment gros donc il est impossible de le
mettre en mémoire. Il est souvent stocké dans un dispositif de stockage secondaire.
Puisque les jeux de données sont gros, il faut utiliser un balayage linéaire pour
économiser le coût d’accès aux dispositifs de stockage secondaires qui sont toujoursplus lents que la mémoire centrale. Puisque la mémoire est limitée, les algorithmes de
classification sur les flux de données ne peuvent pas se souvenir de beaucoup de
données accédées dans le passé. Des algorithmes de classification spécifiques ont été
développés pour répondre à cette demande en ne stockant que des résumés de
données du passé qui sont toujours plus petits que les données elles-mêmes afin
d’avoir suffisamment d’espace pour les données du futur.
-
8/18/2019 Stage-le Anh Tuan
31/59
30
Dans la recherche des algorithmes de classification ci-dessus, nous trouvons
que le concept de vecteur de CF (Cluster Feature) de l’algorithme BIRCH est un bon
résumé d’une classe, car il stocke non seulement le centre de la classe mais aussi
d’autres informations concernant tous les éléments de la classe qui permettent de
facilement calculer la compacité d’une classe, l’ampleur d’une classe…qui ne
peuvent pas être calculées en utilisant le centre d’une classe tout seul.
Plusieurs algorithmes de classification sur un flux de données ont été
proposés. La plupart d’entre eux sont simplement une extension d’un algorithme en
une seule passe (single pass algorithm) qui calcule les classes sur toutes les données
du flux. Bien que ces algorithmes s’attaquent à l’extensibilité du problème de
classification (la capacité d’un algorithme de traiter un gros jeu de données), ils ne
considèrent pas l’évolution des données, donc la qualité des classes produites devient
mauvaise quand les données évoluent considérablement dans le temps et ils ne
permettent pas aux utilisateurs de découvrir et exploiter efficacement les classes sur
différentes parties du flux de données. En analysant certains algorithmes de
classification sur le flux de données, nous avons trouvé que le modèle CLUSTREAM
est le modèle qui est le plus approprié aux exigences de notre problème.
Avant tout, nous présentons deux algorithmes de classification développés
pour faire de la classification sur le flux de données STREAM-LOCALSEARCH et
GenIc. Après, nous parlerons en détail à l’algorithme BIRCH et CLUSTREAM.
i. STREAM-LOCALSEARCHC’est un algorithme qui s’appelle STREAM développé par O’Callaghan,
Mishra, Meyerson, Guha et Motwani [30] dans lequel on utilise une procédure
nommée LOCALSEARCH.
Dans cet algorithme, on suppose que les données arrivent sous forme de n
morceaux Xi, chacun peut être complètement mis en mémoire (on peut découpern’importe quel flux de données comme un flux de morceaux en attendant
suffisamment de données qui arrivent).
L’idée principale de l’algorithme est qu’on fait tout d’abord la classification
sur chaque morceau de données en utilisant une procédure qui s’appelle
LOCALSEARCH. De chaque morceau, on obtient k centres pondérés des classes
trouvées par LOCALSEARCH. Après, on applique LOCALSEARCH sur l’ensemble
des centres pondérés qu’on obtient de tous les morceaux du flux, pour produire k
centres de classes de tout le flux de données.
Pour chaque morceau, on le représente sous forme d’un jeu de données
pondérées dans lequel chaque point de données distingué apparaît une seule fois avecun poids qui indique la fréquence d’apparition de ce point dans le morceau. Cette
représentation requiert un temps O (nq) tels que n est le nombre de morceaux, q est le
nombre de points distingués, donc on souhaite créer une telle représentation
seulement si les données sont vraiment redondantes, i.e. q est petit. Pour décider dans
quelle situation on crée une telle représentation, on a prouvé une réclamation dans
laquelle on dit que si un ensemble de données N contient l > k valeurs distinctes du
-
8/18/2019 Stage-le Anh Tuan
32/59
31
poi