Approche de partitionnement pour un apprentissage
non supervisé des Usagers du Web (Amélioration de
l’approche k-means)
Hadj-Tayeb Karima
Département d’Informatique
Université des sciences et de la technologie d’Oran, Mohamed Boudiaf (USTO)
Oran, Algérie
Abstract La croissance explosive du Web et le nombre croissant
d'utilisateurs ont amené plusieurs organisations à mettre leurs
informations sur le Web. Pour exploiter ces vastes bases de
données, les techniques du Data Mining ont été appliquées. Parmi
ces techniques, l'analyse de cluster est considérée comme l'un des
aspects les plus importants dans le processus d'exploration du
web pour découvrir des groupes importants. L'objectif du
regroupement est de comprendre comment les utilisateurs
naviguent sur le site pour aider les développeurs du site à mettre
en œuvre des serveurs Web intelligents en temps réel. Dans le
cadre du regroupement des données, l'algorithme le plus
populaire est l'algorithme k-means. Cependant, cet algorithme
est jugé inadéquat sur ce type de données. Dans cet article, nous
présentons les inconvénients majeurs de k-means et nous
proposons notre approche pour palier ses limites afin d’obtenir
un bon partitionnement à travers les mesures d’évaluation de la
qualité du clustering dans un temps d’exécution minimal.
Keywords-web; clustering; k-means, mesure d’évaluation,
temps d’exacution.
I. INTRODUCTION
Le partitionnement des données est une tâche importante en
analyse de données, elle divise un ensemble de données en
plusieurs sous-ensembles, ces sous-ensembles appelés groupes
ou clusters. Le clustering peut alors être définie comme étant
l'ensemble des méthodes visant à découper un ensemble
d'objets en plusieurs groupes (clusters) en fonction des
attributs qui les décrivent. L'objectif du clustering est ainsi de
regrouper dans le même cluster les observations jugées
similaires, selon une certaine métrique.
Le clustering des utilisateurs dans le domaine du web en
regroupant les sessions de navigation, peut aider le
développeur Web à mieux comprendre le comportement de
navigation et donc à mieux cibler sa clientèle.
Dans le cadre du clustering des données, plusieurs méthodes
ont été développées, les plus populaires sont les approches
hiérarchiques et de partitionnement. Selon le domaine
d’application et le type de données à traiter, chacune de ces
méthodes se base sur une mesure de distance et de similarité
qui constitue un facteur clé dans la réussite de n’importe quel
algorithme de clustering.
Parmi ces algorithmes, le k-means est l’algorithme le plus
répondu. Il doit sa popularité à sa simplicité et sa capacité à
traiter de larges ensembles de données. Cependant cet
algorithme est inadapté sur les données web en raison de la
fonction de distance et de moyenne calculées qui ne reflètent
en aucun cas le comportement des navigateurs du point de vue
pages visitées.
Nous présentons dans cet article une étude brève des
algorithmes de clustering basés sur l’approche hiérarchique et
de partitionnement et nous proposons par la suite un nouvel
algorithme de clustering basé sur l’approche de
partitionnement appliqué sur des données Web. Nous visons
par notre démarche d’obtenir un bon partitionnement de nos
données en un temps de calcul minime en se basant sur les
mesures permettant d’évaluer la qualité du clustering.
II. MESURES DE SIMILARITE [7]
Les fonctions de distance et de similarité jouent un rôle
essentiel dans tous les algorithmes de clustering. En pratique,
la similarité entre objets est estimée par la fonction calculant
la distance entre les objets. Le regroupement des objets
consiste à diminuer la distance entre eux et donc à maximiser
la similarité entre les objets d’un même groupe, on dira donc
que ces objets sont similaires. Par contre, deux objets séparés
par une large distance disposent d’une similarité minimale, on
dira donc que ces objets sont différents. Parmi ces distances,
on cite la distance:
A. Euclidienne
(1)
B. De Manhattan
(2)
C. De chebychev
(3)
1 1 2 2
( , ) | | | | ... | |
nn
d x y x y x y x y  
1 1 2 2
( , ) | | | | ... | |
nn
d x y x y x y x y  
12
12
( , ) max(| |,| |,...,| |)
nn
d x y x y x y x y  
III. APPROCHES DE CLUSTERING
Selon la façon dont les clusters sont constitués, deux
approches ont été proposées :
A. Méthode hiérarchique [5] [6]
Ces méthodes constituent les classes graduellement sous
forme hiérarchique, autrement dit, un arbre appelé un
dendrogramme. Les algorithmes basés sur cette méthode
essaient de créer une hiérarchie de clusters, les objets les plus
similaires sont regroupés dans des clusters aux plus bas
niveaux, tandis que les objets les moins similaires sont
regroupés dans les clusters aux plus hauts niveaux. On
distingue deux sous types :
1) Agglomération (ascendant)
On commence en considérant chaque point comme une classe
et on essaye de fusionner deux ou plusieurs classes
appropriées selon une similarité pour former une nouvelle
classe. Le processus est itéré jusqu'à ce que les points se
trouvent dans une même classe.
2) Division ( descendant)
En considérant tous les points comme une seule classe au
départ, on divise successivement les classes en classes plus
raffinées. Le processus se réitère jusqu’à ce que chaque classe
contienne un seul point ou bien si le nombre de classe souhaité
est atteint.
Plusieurs algorithmes utilisant cette thode ont été proposés,
on cite:
Algorithme BIRCH (Balanced Iterative Reducing and
Clsutering using Hierarchies)
L’idée principale de BIRCH est d’effectuer une
classification sur un résucompact des données. Deux
phases principales caractérisent cette méthode :
Phase1 : construction en mémoire d’un arbre de sous
classes
Phase2 : application en mémoire d’une technique
classique de clustering sur les sous classes les plus fines
de l’arbre.
Algorithme ROCK (Robust Clustering using Link)
ROCK est un algorithme de classification hiérarchique qui
utilise un nouveau concept de liens entre les objets pour
mesurer la similarité entre ces points de données au lieu
des métriques pour les données numériques ou le
coefficient de Jaccard.
B. Méthode de partitionnement [1] [3]
Le partitionnement de données vise à diviser un ensemble
de données en différents clusters homogènes. Son principe
consiste à subdiviser lensemble des individus en un certain
nombre de classes en employant une stratégie d’optimisation
itérative dont le principe général est de générer une partition
initiale, puis de chercher à l’améliorer en réattribuant des
données d’une classe à l’autre.
Contrairement aux algorithmes hiérarchiques qui produisent
une structure de classes, les algorithmes de partitionnement
produisent quant à eux, une seule partition en recherchant
donc des maxima locaux en optimisant ainsi une fonction
objective traduisant le fait que les individus doivent être
similaires au sein d’une même classe et dissimilaires d’une
classe à une autre.
Les algorithmes de partitionnement sont divisés en trois sous
familles : la méthode k-means, k-medoids, k-nn.
1) Algorithme k-means
Est un algorithme de quantification vectorielle qui va chercher
à séparer un ensemble de points en K clusters.
K-means définit par McQueen est un des plus simples
algorithmes de classification automatique des données. L’idée
principale est de choisir aléatoirement un ensemble de centres
fixé à priori et de chercher itérativement la partition optimale.
Chaque individu est affecté au centre le plus proche en
utilisant la distance Euclidienne. Après l’affectation de toutes
les données, la moyenne de chaque groupe est calculée, elle
constitue les nouveaux représentants des groupes, lorsqu’ont
abouti à un état stationnaire (aucune donnée ne change de
groupe) l’algorithme s’arrête.
2) Algorithme k-medianes
Suivant le méme principe de algorithme k-means, l’algorithme
k-medianes (k-medoids) se basent sur le calcul des medianes
plutôt que sur les moyennes pour évaluer le centre du clusters.
3) Algorithme k plus proche voisin (Knn)
Afin de classer un point x, cet algorithme consiste à rechercher
dans un ensemble, les k points les plus proches de x par une
mesure de distance d, et attribue x à la classe qui est la plus
fréquente parmi ces k voisins.
IV. CLASSIFICATION NON SUPERVISEE DES
USAGERS WEB [4] [2]
L’analyse de cluster est considérée comme l'un des aspects
les plus importants dans le processus du Web Mining pour
découvrir des groupes significatifs (distributions intéressantes
ou des motifs sur les ensembles de données pris en compte)
ainsi que l'interprétation et la visualisation des comportements
clés présentés par les utilisateurs de chaque cluster. Le
partitionnement de ces données est une tâche importante en
analyse de données, elle divise les usagers en plusieurs sous-
ensembles, ces sous-ensembles appelés groupes ou clusters.
Le clustering peut alors être définie comme étant l'ensemble
des méthodes visant à découper un ensemble d'objets en
plusieurs groupes (clusters) en fonction des attributs qui les
décrivent. L'objectif du clustering est ainsi de regrouper dans
le même cluster les observations jugées similaires, selon une
certaine métrique, (homogénéité intra-classe) et de placer les
observations jugées dissimilaires dans des clusters distincts
(hétérogénéité inter-classe). Une bonne classification de
données doit optimiser un critère basé sur l’inertie dans le but
est soit de maximiser l’inertie intra classe ou de minimiser
l’inertie inter classe.
Le clustering des utilisateurs dans le domaine du web en
regroupant les sessions de navigation, peut aider le
développeur Web à mieux appréhender le comportement de
navigation des utilisateurs afin de leurs fournir des services
personnalisés et plus adaptés à leurs besoins aussi rapidement
que possible. Par conséquent, comprendre comment les
utilisateurs naviguant sur le site Web est l’une des étapes
essentielles aux développeurs du site web qui mettra en œuvre
des serveurs Web intelligents en temps réel qui seront en
mesure d'adapter dynamiquement leurs conceptions pour
satisfaire les besoins des futurs utilisateurs.
Ce travail, étudie le concept du web usage mining à partir de
session web qui est représentée sous forme d’une séquence
caractérisée par l’adresse IP du navigateur et des pages
visitées ainsi que la date de chaque page.
Nous proposons dans ce travail un nouvel algorithme de
clustering des données des usagers web représentées dans le
but est d'améliorer les performances de l'algorithme de
clustering classique k-means en améliorant sa mesure de
distance et en proposant un nouveau concept dans le calcul du
centre de gravité d’un nouveau cluster après chaque
affectation des données.
A. Le fichier log pour le données web
Avec la popularité du World Wide Web, de très grandes
quantités de données comme l’adresse des utilisateurs ou les
Url demandées sont automatiquement récupérées par les
serveurs Web et stockées dans des fichiers Access log.
Un fichier log permet de collecter des données brutes par les
serveurs qui représentent la base de données séquentielle web.
Chaque entrée dans le fichier log représente une requête faite
par une machine cliente au serveur.
Un log est un ensemble d'entrées dans le fichier Access log.
Une entrée g appartenant au Log, est un tuple
(4)
Tel que pour 1<= k <= m, lgk.URL représente l'objet demandé
par le navigateur g à la date lgk.time et pour tout 1<= j < k,
lgk.time> lgj.time
L’analyse de tels fichiers peut offrir des informations très
utiles, par exemple, pour améliorer les performances,
restructurer un site ou même cibler le comportement des
clients dans le cadre du commerce électronique.
L’analyse du comportement des utilisateurs d’un site web, a
donc pour but de déterminer l’existence d’enchaînements
fréquents parmi les séquences de navigation des utilisateurs
pour remodeler son site en fonction des navigations les plus
fréquentes qui peut se faire de façon statique ou bien de façon
dynamique.
B. Avantages des algorithmes de la methode de
partitionnement
La méthode est très populaire du fait qu’elle est très facile
à comprendre et à mettre en œuvre.
La méthode résolve une tâche non supervisée, donc elle
ne nécessite aucune information sur les données.
Sa simplicité conceptuelle.
Sa rapidité et ses faibles exigences en taille mémoire.
La méthode est applicable à tout type de données (mêmes
textuelles), en choisissant une bonne notion de distance.
C. Limites des algorithmes de partitionnement dans un
environnement web
Les algorithmes basés sur cette méthode produisent une
seule partition des données au lieu d’une structure de classes.
Ils créent les classes en optimisant une fonction objective qui
est définie d’une façon locale (sur un sous-ensemble de
données) ou globale (sur toutes les données).
Ces algorithmes construisent une partition à k clusters d’une
base D de n objets, et permettent de raffiner graduellement les
classes et donc ils peuvent donner des classes de meilleure
qualité. Cependant, ces algorithmes ont besoin de s’exécuter
plusieurs fois avec différents états initiaux afin d’obtenir un
meilleur résultat en suivant à chaque itération le mécanisme de
réallocation qui réaffecte les points entre les classes.
Dans notre cas, ou les objets représentent les pages visitées
dans un environnement Web, les paramètres utilisés dans ces
algorithmes de partitionnement soit pour le calcul de la
distance entre les objets, soit pour le calcul du centre des
clusters cités précédemment s’avèrent inadaptés sur les
données web pour les raisons suivantes :
La partition finale dépend de la partition initiale. Le calcul
des centres qui est la moyenne entre les points, après
chaque affectation d’un individu, influence le résultat de
la partition finale. En effet, ce résultat dépend de l’ordre
d’affectation des points et ne fournit aucune information
sur les items (objets) constituant le cluster qui est une
séquence alignée.
La mesure de distance Euclidienne calculée entre le
centre du cluster et l’objet affecté semble inadaptée dans
notre cas ou on manipule les données web. En effet, cette
distance est insuffisante dans la mesure elle ne prend
pas en considération la similarité (la ressemblance) entre
les objets des points calculés qui représentent dans notre
cas les pages web visitées.
C’est dans ce contexte, qu’intervient notre travail qui vise
à améliorer ces deux inconvénients et de proposer ainsi un
algorithme basé sur la méthode de partitionnement qui sera
plus adapté aux données web.
V. APPROCHE DE CLUSTERING DES DONNEES
WEB PROPOSEE BASEE SUR LA METHODE DE
PARTITIONNEMENT
A. Principe
L’algorithme propoest un algorithme de quantification
vectorielle (clustering) appartenant à la méthode de
partitionnement, qui étant donné un entier K, va chercher à
séparer un ensemble de points en K clusters.
L’idée principale est de choisir aléatoirement un ensemble de
centres fixé à priori et de chercher itérativement la partition
optimale.
Chaque individu est affecté au centre le plus proche en
utilisant une mesure de similarité qui reflète la relation entre
les items constituant notre objet web. Cette mesure consiste à
établir une intersection entre les séquences représentant
l’individu et le centre du cluster représentée par la fonction
suivante :
( 1, 2) 1 2Sim S S S S
(5)
Un objet sera donc affecté au cluster ayant la valeur de
similarité maximal.
Après l’affectation de toutes les données, le nouveau centre de
chaque groupe est calculé par la somme des occurrences des
items des individus appartenant au même cluster. Cette somme
sera par la suite transformée en une séquence logique qui
représente un 1 dans le cas ou la page est visitée et un 0 dans
le cas contraire.
Ces séquences constituent les nouveaux représentants des
groupes, lorsqu’ont abouti à un état stationnaire (aucune
donnée ne change de groupe ou le nombre des itérations est
atteint) l’algorithme est arrêté.
Dans le cas ou un objet est affecté a plusieurs clusters, nous
proposons d’affecter cet objet au cluster le moins chargé en
terme d’objets appartenant au cluster parmi cet ensemble afin
d’établir un équilibre et d’éviter d’obtenir à la fin un
partitionnement de clusters plus chargés que d’autres.
B. Pseudo code de l’algorithme propo
Entrée : k points choisis au préalable, n nombre d’itérations
Sortie : k clusters obtenus
Début
Génération de la population et l’initialisation de k clusters
Répéter
Affectation : générer une nouvelle partition en assignant
chaque objet au groupe dont le centre de gravité est le plus
proche en choisissant la valeur de similarité maximale entre
eux.
Représentation : recalculer les centres associés à la nouvelle
Partition en transformant la somme des occurrences des items
en une forme logique.
Jusqu’à convergence de l'algorithme vers une partition stable
ou nombre d’itérations atteint.
Fin.
VI. MESURES D’EVALUATION DE LA QUALITE
D’UN CLUSTERING [7]
Rappelant que la caractéristique de l’approche partionnelle
est le choix aléatoire du paramètre K. Une solution naïve
consiste à lancer l'algorithme plusieurs fois avec différentes
initialisations et retenir le meilleur regroupement trouvé qui
peut être obtenue après plusieurs exécutions de l’algorithme. A
cet effet, nous devons évaluer la qualité des clusters obtenus
après le partionnement à travers le calcul de :
A. Entropie
L’entropie est une mesure de qualité qui permet de mesurer
comment les différentes classes des objets sont réparties dans
un cluster, tel que:
Entropie d'un cluster C de taille nr est calculée selon la
formule suivante :
(6)
q est le nombre total de clusters et nir est le nombre de
séquences du ieme cluster qui font partie du cluster C.
Entropie du clustering est ensuite donnée par la formule
(7)
Avec n le nombre total de séquences.
On considère qu'une petite valeur d'entropie traduit un bon
clustering par rapport au clustering de référence.
Il existe d’autres mesures pour obtenir une bonne partition qui
consiste à minimiser l’inertie intra et maximiser l’inertie inter:
B. Inertie intra
L’inertie-intra d’un cluster mesure la concentraction des
points du cluster autour du centre de gravité qui est calculée
par :
2( , )
i ck
jk d xi uk
(8)
Ou u est le centre de gravité
1
i ck
uk xi
Nk
(9)
L’inertie intra totale du partitionnement est la sommation des
inerties intra clusters. Plus cette inertie est faible, plus petite
est la dispersion des points autour du centre de gravité.
C. Inertie inter
L’inertie -inter d’un cluster mesure l’éloignement des
centres des clusters entre eux. Elle est calculée par :
2( , )
k
k
jb N d uk u
(10)
Ou u est le centre de gravité
1
i ck
uk xi
Nk
(11)
L’inertie inter totale du partitionnement est la sommation des
inerties inter clusters. Plus cette inertie est grande, plus les
clusters sont bien séparés afin d’obtenir une bonne partition.
L’inertie totale du partitionnement dans une itération est la
sommation de l’inertie intra totale et l’inertie inter totale
VII. IMPLEMENTATION
Notre objectif est de proposer une approche adaptable sur
des données web permettant d’exploiter les différentes
informations relatives à l’usage d’un site web en vue de
classifier les navigateurs de ce site enregistrés dans le fichier
log dans un temps minimal.
Nous avons implémenté cet algorithme sur une plate forme
java sur un fichier log test 3000 enregistrements. Nous avons
tout d’abord procédé au prétraitement du fichier log qui s’est
fait en deux phases:
A. Phase 1
Transformer l’ensemble des requêtes enregistrées en des
données structurées et exploitables. Ce nettoyage consiste à :
1) Supprimer les requêtes inutiles étant donné que leur
apparition ne reflète aucun comportement relatif à
l’internaute à savoir les requêtes invalides, les requêtes de
types fichiers images et multimédia à l’extension (.jpg,.
wma…), les scripts néralement le téléchargement d’une
page demandée par un utilisateur et ne laisser au final que
les Urls reflétant les pages Web ayants l’extensions :
.html, .htm, .php, ...
2) Supprimer les enregistrements ayant une méthode
« Post » et ne garder que ceux ayant la méthode « Get ».
Après la phase de prétraitement, nous avons obtenu un fichier
log prés à être exploité par les deux algorithmes. Ce fichier
contient 45 utilisateurs (adresses IP) et 18 pages visitées.
B. Phase 2
Avant d’effectuer notre étude, nous choisissons au départ
deux paramètres à savoir :
nombre de clusters. Noté par clus. Il détermine le nombre
de grappes prédéfinies pour classer nos données de test.
nombre d’itérations. Noté par iter. Il représente le nombre
de fois que notre algorithme sera itéré.
Selon la taille de notre base, nous avons effectué plusieurs
expérimentations dans lesquelles nous avons varié la valeur de
clus de 2 à 10 clusters et la valeur diter de 1 à 5 itérations.
A la fin de notre étude, nous avons calculé pour ces valeurs,
les mesures d’entropie (notée par Entropie), d’inertie intra et l
(notée par intra), et le temps d’exécution en milliseconde
(noté par temps) afin de déterminer le bon partitionnement
pour ces données de test.
Les deux algorithmes s’arrêtent soit quand le nombre
d’itérations est atteint, soit une fois atteindre une stabilité.
Pour une expérimentation plus détaillée, nous avons lancé nos
deux algorithmes plusieurs fois pour le même nombre de
cluster et pris la moyenne des résultats. Les résultats relatifs à
cette étude sont représentés sous forme d’un tableau
comparatif suivant:
Pour clus=2
Pour clus=3
Pour clus=4
Pour clus=5
Algorithme K-means
Algorithme proposé
Intra
Entropie
Intra
Entropie
303,5
0,98
181
0,80
358
0,94
183,29
0,15
358
0,94
183,29
0,15
Stabilité (arrêt)
Stabilité (arrêt)
1016 Ms
990 Ms
Algorithme K-means
Algorithme
proposé
Intra
Entropie
Intra
Entropie
iter=1
294,5
1,57
170
1,4
iter=2
358
1,5
180
0,3
iter=3
358
1,5
180
0,3
Stabilité (arrêt)
Stabilité (arrêt)
Temps
1031 Ms
1000Ms
Algorithme K-means
Algorithme proposé
Intra
Entropie
Intra
Entropie
iter=1
267,5
1,97
160
1,68
iter=2
358
1,93
166,75
0,45
iter=3
358
1,93
166,75
0,45
Stabilité (arrêt)
Stabilité (arrêt)
Temps
1150 Ms
1015 Ms
Algorithme K-means
Algorithme proposé
Intra
Entropie
Intra
Entropie
iter=1
246,5
2,27
151
1,78
iter=2
358
2
159,78
0,61
iter=3
358
2
159,78
0,61
Stabilité (arrêt)
Stabilité (arrêt)
Temps
1031 Ms
1023 Ms
1 / 6 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !