pubAchetez de l'or en Suisse en ligne avec Bullion Vault


Home | Publier un mémoire | Une page au hasard

Application du processus de fouille de données d'usage du web sur les fichiers logs du site cubba


par Nabila Merzoug et Hanane Bessa
Centre universitaire de Bordj Bou Arréridj Algérie - Ingénieur en informatique 2009
Dans la categorie: Informatique et Télécommunications
   
Télécharger le fichier original

Disponible en mode multipage

REMERCIEMENTS

Nos sinceres remerciements s'adressent à Allah le tout Puissant pour son aide et son guide qui nous a permis de réaliser ce travail.

Ce travail a été réalisé sous la direction du Mr. ZOUACHE Djaafer notre promoteur, que nous tenons à lui adresser notre égard pendant la période de réalisation de ce mémoire, et pour ses conseils judicieux qui nous ont servi de guide tout au long de notre travail.

Nos remerciements vont également Mr. LAALAMI Fatih,

Mr .BENAMEUR Ziani, tous les enseignants du département d'informatique et aux membres de jury qui ont acceptés de juger ce modeste travail.

Enfin, nos sinceres remerciements s'adressent à tous ceux qui

nous ont aidés de prés ou de loin à réaliser notre travail.

Depuis la création du Web, il a connu un accroissement important d'une manière phénoménale grace à l'augmentation colossale du nombre de documents mis en ligne et des nouvelles informations ajoutées chaque jour. En réalité, les usagers d'un site Web apprécieront davantage la manière dont cette information est présentée au sein du site alors que les créateurs des sites Web intéressés par la fidélisation des internautes fréquentant leurs sites et cherchant à attirer de nouveaux visiteurs, ont besoin d'analyser le comportement des internautes afin d'extraire des patrons d'accès au Web en vue d'une amélioration et une personnalisation des sites. En effet, une grande quantité de données peut être récupérée suite à la navigation d'un utilisateur sur un site. La taille sans cesse croissante de celles-ci et leur diversité ne permet toutefois pas à l'être humain de traiter de manière manuelle cette information.

L'accumulation de données a motivé le développement d'un nouveau champ de recherche : l'Extraction de Connaissances dans les bases de Données (ECD). L'ECD est un processus itératif et interactif d'analyse d'un grand ensemble de données brutes afin d'en extraire des connaissances exploitables par un utilisateur-analyste qui y joue un rôle central [24].

Ce processus est itératif car les résultats d'une étape peuvent remettre en cause les traitements effectués durant les étapes précédentes, et il est interactif car la qualité des résultats obtenus dépend en grande partie de l'intervention des utilisateurs finaux. Le processus d'ECD se déroule en trois étapes [25] :

La première étape décrit le prétraitement de données qui consiste à nettoyer et à mettre en forme les données (sélection des données, élimination des doublons, élimination des valeurs aberrantes, gestion des valeurs manquantes, transformation des variables, création de nouvelles variables, etc.).

La fouille de données (data mining) représente la deuxième étape du processus, c'est l'étape motrice de l'ECD qui consiste à identifier les motifs qui structurent les données, ou produire des modèles explicatifs ou prédictifs des données.

La dernière étape présente le post-traitement qui met en forme et évalue les résultats obtenus (appelés connaissances), et à les faire interpréter et valider par l'utilisateur.

Description du problème

L'approche que nous présentons : est une étude de cas en fouille de données d'usage de web qui consiste à analyser les données (les fichiers log ou bien le journal des connexion) enregistrer au niveau du serveur de site web de CUBBA1 afin de transformer ces données en des connaissances utiles pour l'identification d'éventuels comportements typiques d'internautes selon leur profil, s'est déroulée en trois étapes :

Elle consiste dans un premier temps à un prétraitement des données qui servent à la récupération et la concaténation des fichiers log afin que les requêtes soient organisées en navigations.

Des paramètres introduits à partir des statistiques sur les accès aux pages sont utilisés pour la catégorisation des pages Web afin de sauvegarder les pages de contenu et d'éliminer les pages auxiliaires qui ne présentent aucun intérét, c'est la classification des pages qui est basée sur deux méthodes hybrides à savoir l'analyse en composante principale et le clustering k_means.ces pages de contenu permettent l'extraction des profils.

À partir des résultats obtenus des deux étapes précédentes, un regroupement des utilisateurs basés sur la classification ascendante hiérarchie sont appliqués aux bases de navigations afin de valider l'existence de comportements particuliers chez les utilisateurs selon leur profil.

L'une des motivations principales de ce travail est qu'il n'existe pas, à notre connaissance, des travaux similaires déjà réalisés dans les institutions universitaires algériennes. Pour ce faire, Il nous faut récupérer et analyser les données concernant les requêtes des utilisateurs stockées dans les fichiers log du serveur.

1 Centre Universitaire de Bordj Bou Arreridj

Organisation de mémoire

Pour conclure cette introduction, le présent mémoire est réparti en deux grandes parties.

La première partie défini un état de l'art contenant les chapitres 1, 2 et 3. La deuxième partie contient les deux derniers chapitres présentent une série de résultats d'expérimentation. Les chapitres sont organisés de la façon suivante :

Dans le premier chapitre, on présente les différentes étapes du processus de la fouille de données d'usage du Web et un ensemble de concept utilisés dans ce domaine ainsi ces différentes applications.

Dans le deuxième chapitre, on parle sur le prétraitement des données qui décrit la première étape de processus de la fouille d'usage du web, en présentant les différentes heuristiques de prétraitement afin d'obtenir des données structurées et prétes à l'application des méthodes de fouille des données.

Dans le troisième chapitre , on définie les différentes techniques de la fouille d'usage du web, précisément une méthode factorielle et deux autres de la classification non supervisée exploitées dans le présent mémoire, à savoir les méthodes hiérarchiques et les méthodes de partitionnement.

Le quatrième chapitre décrit l'implémentation de prétraitement de données réelles (les fichiers log de centre universitaire de Bordj Bou Arreridj) ainsi les différents outils utilisés.

Le dernier chapitre exprime l'application de l'ensemble des techniques d'analyse de fouille d'usage du web sur les fichiers log structurés et prétraités.

Enfin nous concluons le mémoire on posant quelques perspectives pour continuer ce travail.

Première partie

Chapitre 1

Fouille de données d'usage du Web

1. Web Content Mining Web Structure Mining

Web Mining

Web Usage Mining

Introduction

Les sites Web représentent actuellement une véritable source de production de grands volumes d'informations. La recherche d'information, la consultation de données et l'achat en ligne, sont des exemples de l'utilisation du Web. Dans le but d'améliorer ces services et d'autres nous nous intéressons aux informations liées au comportement des utilisateurs de cet environnement .C'est dans cet espace que nous pouvons récupérer une quantité d'informations pertinentes.

Pour fixer les idées, nous introduisons dans ce chapitre la fouille de données du web et précisément la fouille de donnée d'usage du web, les diverses définitions, concepts, les données d'usage et quelque approches d'analyse que nous utiliserons tout au long de ce mémoire.

2. Fouille de données du Web

La fouille du Web (Web Mining (WM), en anglais) [01] s'est développée à la fin des années 90 et consiste à utiliser l'ensemble des techniques de la fouille de données afin de développer des outils permettant l'extraction d'informations pertinentes à partir de données du Web (documents, traces d'interactions, structure des liens, etc.).

2.1. Taxonomie du Fouille de données du Web

Selon l'objectif visé plusieurs types d'études peuvent être réalisés (FIG.1.1), à savoir :

a. L'analyse du contenu des pages Web (Web Content Mining) :

C'est le processus d'extraction des connaissances à partir du contenu réel des pages Web. Les informations provenant du Web sont stockées dans des bases de données. Ces dernières sont ensuite analysées en utilisant les langages d'interrogations des bases de données et les techniques de fouille de données.

b. L'analyse des liens entre les pages Web (Web Structure Mining) :

Il s'agit d'une analyse de la structure du Web, de l'architecture et des liens qui existent entre les différents sites. L'analyse des chemins parcourus permet par exemple de déterminer combien de pages consultent les internautes en moyenne et ainsi d'adapter l'arborescence du site pour que les pages les plus recherchées soient dans les premières pages du site. De même, la recherche des associations entre les pages consultées permet d'améliorer l'ergonomie du site par création de nouveaux liens

c. L'analyse de l'usage des pages Web (Web Usage Mining) :

Cette dernière branche du Web Mining consiste à analyser le comportement de l'utilisateur à travers l'analyse de son interaction avec le site Web. Cette analyse est notamment centrée sur l'ensemble des clics effectués par l'utilisateur lors d'une visite au site (on parle alors d'analyse du clickstream). L'intéret est d'enrichir les sources de données utilisateur (bases de données clients, bases marketing, etc.) à partir des connaissances extraites des données brutes du clickstream et ce afin d'affiner les profils utilisateur et les modèles comportementaux.

C'est précisément sur cet axe, exploité plus en détail dans le présent chapitre que se focalise la présente thèse.

3. Fouille de données d'usage du Web

3.1. Definition

La fouille de données d'usage du Web (Web Usage Mining (WUM), en anglais) désigne l'ensemble de techniques basées sur la fouille de données pour analyser l'usage d'un site Web [02, 03, 04]. En d'autres termes, le WUM correspond au processus d'Extraction de Connaissances dans les Bases de Données (ECD) - ou Knowledge Discovery in Databases (KDD), en anglais - appliqué aux données d'usage du Web.

requetes (affichage d'une page du site, téléchargement d'un fichier, identification de l'utilisateur via un mot de passe, etc.) qui sont enregistrées en format texte et stockées de manière standardisée dans un fichier qui s'appelle log Web. Ce fichier est maintenu par le serveur HTTP qui héberge le(s) site(s) en question.

Suivant la fréquentation du site, la taille du fichier log peut atteindre des proportions importantes, pouvant croître de quelques centaines de mégaoctets jusqu'à plusieurs dizaines de gigaoctet par mois.

3.2. Processus de la MKIGeBSIBdIMAs Bd'KADTIBIK B Ib

La fouille de données d'usage du Web (WUM) comporte trois étapes principales :

Prétraitement

Extraction des motifs

Motifs

Fichiers log

Interprétation

Connaissance

FIG 1.2. Le schéma du processus WUM [17].

a. Prétraitement

Le prétraitement du WUM (nettoyer et transformer les données), qui est un processus fastidieux et complexe dû principalement à la grande quantité de données (les fichiers logs Web) et à la faible qualité de l'information qu'on trouve dans les fichiers logs Web. Dans cette première étape, plusieurs tâches doivent titre accomplies, comme le nettoyage des données, l'identification des utilisateurs, l'identification des sessions et l'identification des visites. La préparation des données occupe environ 60 à 80% du temps impliqué dans le processus du web usage mining.

b. Extraction des motifs

C'est l'étape qui constitue véritablement le coeur du processus de fouille d'usage du Web. C'est ici qu'on va chercher à extraire automatiquement des motifs ou des modèles à partir des données. Cette étape est la plus critique du point de vue algorithmique. Les méthodes de fouille de données permettent de découvrir ce que contiennent les données exploitées et filtrées résultantes de l'étape précédente afin de découvrir des modèles comportementaux qui décrivent les navigations des utilisateurs.

c. Interprétation

Interprétation des modèles est la dernière étape globale du Web Usage Mining. Elle a comme objectif de filtrer les modèles inintéressants de l'ensemble trouvé dans la phase d'extraction des modèles. Ce filtrage dépend de l'application finale que l'on souhaite faire du Web Usage Mining (adaptation des sites web, système de recommandation, préchargement des pages, etc. . .).

3.3. Sources de la TRXIODBGeBGRnnAsBG'XADTeBGX Web

L'activité d'un serveur web est composée d'une succession d'étapes : la réception d'une requête en provenance d'un client, l'analyse de la requête, la création de la réponse, l'envoi de cette dernière. La totalité de ces informations peut être stockée dans un fichier d'enregistrements (ou logs). il existe plusieurs formats des fichiers Logs Web mais le format le plus courant est le CLF (Common Log file Format). Selon ce format six informations sont enregistrées:

1. le nom du domaine ou l'adresse de Protocole Internet (IP) de la machine appelante.

2. le nom et le login HTTP de l'utilisateur (en cas d'accès par mot de passe).

3. la date et l'heure de la requête.

4. la méthode utilisée dans la requête (GET, POST, etc.) et le nom de la ressource Web demandée (l'URL de la page demandée).

5. le code de statut attribué à la requête (prend la valeur 200 en cas de réussite).

6. la taille de la page demandée en octets.

Le format ECLF (Extended Common Log file Format) représente une version plus complète du format CLF. En effet, il indique en plus l'adresse de la page de référence (la page précédemment visitée ou le moteur de recherche utilisé pour rejoindre la page Web suivi des mots clés demandés), la configuration du client, c'est-à-dire, son navigateur Web (Firefox,

Internet Explorer, etc.) et son système d'exploitation (Windows, Linux, Mac OS, etc.). Le format du fichier log a été standardisé par W3C [05]. Le format ECLF:

[ip] [name] [date] [url] [statut] [taille] [refferer] [agent].

Exemple

41.98.239.119 - - [14/Mar/2010:04:20:39 +0100] "GET / HTTP/1.0" 200 25479 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11"

41.98.239.119 - - [14/Mar/2010:04:20:39 +0100] "GET / HTTP/1.0" 200 25479 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv: 1.9.0.11) Gecko/2009060215 Firefox/3.0.11"

67.195.111.190 - - [14/Mar/2010:05:34:44 +0100] "GET /index.php? View=weblink&catid=1%3Aliens-utiles&id=2%3Asite-delarn&option=com_weblinks&Itemid=52 HTTP/1.0" 301 - "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)"

FIG 1.3. Schéma illustratif des champs d'un fichier log Web contenant trois requêtes.

3.4. Concepts de base de la fouille de données d'usage du Web

La définition de certains termes qui se répèteront tout au long de ce mémoire. Ces définitions sont inspirées du travail de W3C sur la terminologie de caractérisation du Web [06] :

concept

Définition

Ressource

une ressource R peut être tout objet ayant une identité. Comme exemples de ressources nous pouvons citer: un fichier html, une image ou un service Web.

Ressource
Web

une ressource accessible par une version du protocole HTTP ou un protocole similaire (ex. HTTP-NG).

Serveur Web

un serveur qui donne accès à des ressources Web.

Requête Web

une requête pour une ressource Web faite par un client (navigateur Web) à un serveur Web.

Page Web

ensemble des informations consistant en une (ou plusieurs) ressource(s) Web, identifiée(s) par un seul URL. Exemple: un fichier HTML, un fichier image et un applet Java accessibles par un seul URL constituent une page Web.

Navigateur
Web
(Browser)

logiciel de type client chargé d'afficher des pages à l'utilisateur et de faire des requêtes HTTP au serveur Web.

Session
utilisateur

un ensemble délimité des clics utilisateurs sur un (ou plusieurs) serveur(s) Web.

Visite

L'ensemble des clics utilisateur sur un seul serveur Web (ou sur plusieurs lorsque on a fusionné leurs fichiers logs) pendant une session utilisateur. Les clics de l'utilisateur peuvent être décomposés dans plusieurs visites en calculant la distance temporelle entre deux requêtes HTTP consécutives et si cette distance excède un certain seuil une nouvelle visite commence.

TAB 1.1. Les principaux termes utilisés en Web Usage Mining.

3.5. Les applications de la TRKiOODIEeIERnWA IE'KADTeIdu Web

Selon [22], l'analyse des fichiers log Web est particulièrement utile car elle fournit des informations sur la manière dont les utilisateurs naviguent réellement sur le site Web. Après la réalisation d'une telle analyse, il est ainsi possible de:

v mettre en évidence les fonctionnalités les plus et les moins utilisées dans le site.

v chercher à comprendre les raisons pour lesquelles les fonctionnalités les moins utilisées sont délaissées par les utilisateurs afin, selon les cas, de les améliorer ou de les supprimer.

v personnaliser la consultation, cet enjeu important pour de nombreuses applications internet ou sites de e-commerce consiste à proposer des recommandations dynamiques à un utilisateur en se basant sur son profil et une base de connaissances d'usages connus.

Le WUM peut encore apporter des avantages à d'autres domaines, comme par exemple, l'ajout dynamique de liens dans des pages Web, la recommandation de produits, la caractérisation de groupes d'utilisateurs, l'amélioration de politiques comme le caching , etc.

4. Conclusion

Au cours de ce chapitre, nous avons abordé quelques points touchant le domaine de la fouille de données d'usage du web, ainsi les différentes phases de son processus. Le chapitre suivant illustre les différentes heuristiques de prétraitement qui décrit le premier pas du processus de la fouille de données d'usage du web.

.

CHAPITRE 2

Prétraitement des données

1. Introduction

Le processus du WUM comporte trois étapes principales : le prétraitement des données, Extraction des motifs d'usage et l'interprétation des résultats obtenus. La phase de prétraitement des données est souvent la plus laborieuse et qui demande le plus de temps, ceci dü en particulier à l'absence de structuration et à la grande quantité de bruit existant dans les données brutes d'usage.

Le prétraitement des fichiers log Web consiste à nettoyer et structurer les données contenues dans ces fichiers afin de les préparer à une future analyse. Les fichiers logs Web étant souvent du type texte, l'un des objectifs de l'étape de prétraitement est de transférer ces données dans un environnement plus facile à exploiter (comme par exemple, dans une base de données).

2. Le nettoyage des données

Le nettoyage des données vise à éliminer toutes les requêtes considérées comme inutiles de l'ensemble de logs de départ. En effet, une quantité non négligeable des enregistrements d'un serveur web ne reflète pas le comportement de l'internaute, nous expliquons donc les problèmes de ces enregistrements en détail et ce que nous apportons pour leur gestion.

Le serveur web permet de disposer des ressources de tout type : page web, élément multimédia, programme, donnée quelconque. Lors d'une requête correspondant à une page intégrant d'autres ressources (généralement des images, ou de petites animations), le client exécute effectivement plusieurs requêtes vers le serveur: une pour la page (le contenant), une pour les divers éléments (les contenus). Ainsi, pour une page demandée, plusieurs requêtes peuvent aboutir au serveur.

En se référant au but de notre travail, à savoir l'extraction de modèles d'utilisateurs pour l'amélioration de services web, il nous parait judicieux de ne conserver que les pages web (dites contenant), sans les éléments incorporés. Nous simplifions les données des logs en enlevant tout ce qui ne correspond pas à une page web. Certaines expériences ont montré que la suppression des URL concernant des images réduisait la taille du fichier log original de 40 % à 85 %. Le nettoyage des images consiste à supposer qu'un utilisateur ne peut cliquer à la fois (au même instant) sur plusieurs images pour les visualiser « FIG 3.1 », tenant compte de cette hypothèse, nous déterminons pour chaque utilisateur l'ensemble des requêtes

effectuées au méme instant dont les extensions connues d'images et autres composants multimédias sont éliminées.

De plus, nous faisons le choix de ne garder pour la phase d'apprentissage que les requêtes ayant abouti, c'est à dire correspondant à une ressource valide. Le code de retour présent dans les logs nous permet de filtrer ces requêtes. Par conséquent, nous ne gardons que celles de code compris entre « 200 et 399 ».

Des données dites incohérentes peuvent subsister : en effet, lors du traitement des logs, des requêtes d'annonces apparaissent toutes seules dès que l'utilisateur se connecte sur le site du CUBBA. De ce fait, ces requêtes correspondantes ne sont pas prises en compte. Pour éliminer ces requêtes, il suffit de supprimer les requêtes qui contiennent le mot clé « popups ».

Ainsi, nous faisons le choix que les requêtes correspondantes d'une réponse de serveur à une requête d'un client pour ça on va éliminer toute requête, dont sa méthode différente de « Get », et voici le type des différentes méthodes généralement utilisées :

1' Get : est une requête d'information. Le serveur traite la demande et renvoie le contenu

de l'objet

1' Head : est très similaire à la méthode Get. Cependant, le serveur ne retourne que l'entête de la ressource demandée sans les données.

1' Post : est utilisée pour envoyer des données au serveur.

Un dernier type de requête, non seulement inutiles, mais apportant un bruit dans les données, correspond à celles effectuées de manière automatique par des robots web ne reflétant pas le comportement de l'utilisateur. Il existe plusieurs heuristiques pour considérer la requête correspondante comme étant généré par un robot Web :

v' Identifier les adresses IP et les « User-Agents » connus comme étant des robots Web.

Ces informations sont fournies généralement par les moteurs de recherche. v' Identifier les adresses IP ayant fait une requête à la page : « robots.txt ».

v' Identifier les « User-Agents» comportant l'un des mots clés suivants : « crawler »,

« spider » ou « bot ».

v' Identifier les requêtes effectuées par des aspirateurs de sites Web (HTTrack par exemple), ou par des modules de certains navigateurs permettant la consultation de pages hors ligne tels que DigExt d'Internet Explorer. L'identité de ces aspirateurs est effectuée en se basant sur la durée de leurs requêtes généralement nulle.

Exemple

Une simple vérification sur le site a montré que plusieurs images sont contenues dans la page

FIG 2.1 Exemple de page contenant plusieurs images.

3. Transformation des données

3.1. Identification des internautes

En ce qui concerne l'identification de l'utilisateur, pour les sites Web, il est indispensable d'identifier clairement chaque utilisateur. Si le serveur ne peut différencier les requêtes qui lui parviennent, toute solution proposée n'est pas optimale.

3.1.1. Adresse IP

Sur Internet, les ordinateurs communiquent entre eux grâce au protocole TCP/IP « Transmission Control Protocol ». Chaque ordinateur appartenant au réseau est identifié par une séquence unique de 32 bits (l'adresse IP) écrite à l'aide de quatre nombres compris entre 0 et 255.

Les adresses IP ont l'avantage d'être toujours disponibles et de ne nécessiter aucun

traitement préalable. En revanche, elles possèdent principalement deux limites :

+ Premièrement, une adresse IP peut n'identifier qu'un groupe d'ordinateurs « cachés »

derrière le serveur proxy d'un fournisseur d'accès à Internet ou d'un réseau local. Rappelons qu'un serveur proxy a une double fonction : il permet aux ordinateurs d'un réseau utilisant des adresses IP privées d'accéder à Internet par son intermédiaire. Il peut également servir de cache, c'est-à-dire qu'il peut garder en mémoire les pages les

plus souvent visitées pour les fournir plus rapidement. Ainsi, tous les internautes utilisant un serveur proxy seront identifiés par l'unique adresse IP de ce serveur. Le site visité ne peut alors déceler s'il a à faire à un ou plusieurs visiteurs.

Exemple :

IP des clients Proxy IP apparaissant dans le log

ch1smc.bellglobal.com

hse-montreal-ppp123456.sympatico.ca

hse-sherbrookeppp1236456.qc.sympatico.ca hse-quecity-ppp123456.qc.sympatico.ca

FIG 2.2 Effet du proxy sur le contenu des logs [16].

+ Le deuxième inconvénient de l'utilisation des adresses IP comme identifiants vient de son inadéquation à la rétribution dynamique. La majorité des internautes se voient en effet prêter une adresse IP par leur fournisseur d'accès le temps d'une connexion à Internet. Cet inconvénient est particulièrement influant sur les sites ayant de nombreux visiteurs, les adresses IP attribuées dynamiquement pouvant être réutilisées immédiatement par d'autres utilisateurs. Par ailleurs, l'attribution dynamique ne permet une identification valable que pour une seule session ininterrompue : si l'internaute interrompt sa visite en se déconnectant un bref instant, sa session sera toujours en cours, mais son adresse IP aura changé, l'identification ne sera donc plus possible.

3.1.2. Les sessions

a. Définition

Une session est composée de l'ensemble de pages visitées par le même utilisateur durant la période d'analyse, cependant, dans [12] la combinaison des champs IP (adresse) et User Agent (le navigateur Web) d'un fichier log Web identifie correctement l'utilisateur dans 92.02 % des cas et seul un nombre limité de ces combinaisons (1.32 %) sont utilisés par plus de trois utilisateurs. Chaque session est caractérisée par le nombre de requêtes effectuées par l'utilisateur durant cette session, le nombre de pages consultées (URLs2 différentes) et la durée de la session. Nous pouvons considérer la combinaison adresse IP plus navigatrice comme étant un critère acceptable pour l'identification d'un utilisateur dans le cadre d'une activité ponctuelle.

session1

session2

une base
de
données

session n

FIG 2.3 Le schéma d'identification de session.

b. Algorithme d'identification

Afin de mieux identifier les sessions, nous adoptons l'algorithme proposé ci-dessous. [13]

Tant qu'il y » a des enregistrements dans la base faire lire l'enregistrement i

Récupérer l'adresse IPi et l'User-Agent UAi Si (le couple (IPi, UAi) = (IPi-1, UA i-1)) Alors

Ajouter l'enregistrement i à la session S i-1

Sinon

Recommencer une nouvelle session Si FinSi

Fin Tant Que

FIG 2.4 Algorithme d'identification des sessions.

3.2. Identification des visites des internautes

Une fois l'utilisateur (approximativement) identifié, le problème consiste alors à détecter toutes les requêtes en provenance de cet utilisateur. Concernant cette problématique, la méthode la plus simple pour le groupement des requêtes en sous-ensembles de requêtes appartenant au méme utilisateur est d'utiliser le temps de latence maximum entre deux requêtes successives. Selon [14] ce temps est estimé de manière empirique à 25.5 minutes. La majorité des méthodes d'analyse de l'usage du Web ont donc adopté le temps de latence de 30 minutes. Dans [15] la navigation définit comme l'ensemble de requêtes (clics) en provenance d'un méme utilisateur séparées au-delà de 30 minutes, et session comme l'ensemble de navigations d'un méme utilisateur.

Cette stratégie serait capable d'identifier les requêtes en provenance d'un méme utilisateur dans le contexte d'une seule navigation. Cependant, on ne peut pas généraliser cette combinaison pour l'identification de plusieurs navigations appartenant à un méme utilisateur, puisque nous n'avons aucune garantie que l'utilisateur d'avant aura les mémes valeurs pour le couple adresse IP plus navigatrice lors d'une prochaine visite sur le site Web.

Une fois les visites identifiées, la durée de consultation de la dernière page de chaque visite (la dernière page de chaque session et les pages dont la durée de consultation a dépassé 30 minutes celles qui ont permis la construction des visites) est obtenue à partir de la moyenne des durées de consultation des pages précédentes appartenant à la même visite.

visite 1

une
session

visite2

visite n

FIG 2.5 Le schéma d'identification de visite.

4. Conclusion

Dans ce chapitre, nous avons présenté les problèmes de données inutiles ou incohérentes dans ces derniers apparaissent comme rédhibitoires à l'utilisation dans le processus de fouille d'usage du Web, très sensible aux données bruitées. Nous avons présenté une méthode de prétraitement des données avec une mise en place d'heuristiques qui permettent de transformer l'ensemble de requêtes enregistrées dans les fichiers Logs à des données structurées, nettoyées et exploitables. Nous consacrons le chapitre suivant à l'ensemble des techniques d'analyse faisant objet des expérimentations réalisées dans le cadre de ce mémoire.

CHAPITRE 3

Techniques d'analyse de la fouille

d'usage du web

1. Introduction

Dans ce chapitre nous ne prétendons pas fournir une liste exhaustive de l'ensemble des notions et méthodes existant dans le cadre de l'analyse de la fouille d'usage de web. Il s'agit plutôt de donner un aperçu général sur la notion d'une méthode factorielle : l'analyse en composantes principales et deux autres de classification non supervisé à savoir la classification ascendante hiérarchique et la méthode de partitionnement k-means.

2. Les méthodes factorielles

Les méthodes factorielles permettent de réduire l'espace en fournissant des représentations graphiques, d'exploiter, de fouiller, de représenter de grands ensembles de données.

2.1. / TQa3\111Q1FomSINQAW SLIQFISIXIITS &3)

L'ACP est l'une des techniques des méthodes factorielles qui est utile pour la compression et la classification des données. Le problème consiste à réduire la dimensionnalité d'un ensemble des données (échantillon) en trouvant un nouvel ensemble de variables plus petit que l'ensemble original des variables, qui néanmoins contient la plupart de l'information de l'échantillon.

Etant donné un ensemble d'observations décrites par des variables exclusivement numériques {x1, x2 , ..., xp}, l'ACP a pour objectif de décrire ce même ensemble de données par de nouvelles variables en nombre réduit. Ces nouvelles variables seront des combinaisons linéaires des variables originales comme suit :

Ck == a1kx1 + a2k x2+ ... + apk xp, et porteront le nom de Composantes Principales (CP). 2.1.1. Propriétés des Composantes Principales

Nombre :

Bien que l'objectif soit en général de n'utiliser qu'un petit nombre de Composantes Principales, l'ACP en construit initialement p, autant que de variables originales. Ce n'est que par la suite que l'analyste décidera du nombre de Composantes à retenir. "Retenir k Composantes Principales" veut dire "Remplacer les observations originales par leur projections orthogonales dans le sous-espace à k dimensions défini par les k premières Composantes Principales".

1' Orthogonalité :

Les Composantes Principales définissent des directions de l'espace des observations qui sont deux à deux orthogonales. Autrement dit, l'ACP procède à un changement de repère orthogonal, les directions originales étant remplacées par les Composantes Principales.

1' Décorrélation :

Les Composantes Principales sont des variables qui s'avèrent être deux à deux décorrélées.

1' Ordre et sous-espaces optimaux :

La propriété fondamentale des Composantes Principales est de pouvoir être classée par ordre décroissant d'importance dans le sens suivant : Si l'analyste décide de décrire ses données avec seulement k (k < p) combinaisons linéaires de ses variables originales tout en perdant le moins possible d'information, alors ces k combinaisons linéaires sont justement les k premières Composantes Principales.

2.1.2. Calcul matriciel

a. Matrice des covariances

+ La covariance

La covariance de deux variables v1 et v2 est un indicateur de la variation simultanée. La covariance est positive quand v2 croît chaque fois que v1 croit. Elle est négative quand v2 décroît chaque fois que v1 croit. Elle est nulle si v1 et v2 sont indépendants.

Covariance et corrélation sont de même signe, la covariance est fonction du coefficient de corrélation :

Cov (v1, v2) = écart-type (v1) * écart-type (v2) * corrélation (v1, v2)

+ Choix de la matrice des covariances

Si on a des données homogènes avec des ordres de grandeurs identiques (typiquement dans le cas de données physiques), alors on a une métrique euclidienne et on travaille avec une matrice des covariances.

A chaque couple de variables (v1, v2), la valeur de la case de la matrice est celle de la covariance du couple (v1, v2).

b. Matrice des corrélations

+ La corrélation

A chaque couple de variables (v1, v2), la valeur de la case de la matrice est celle du coefficient de corrélation entre v1 et v2.

+ Choix de la matrice des corrélations

Si on a des données hétérogènes avec des ordres de grandeurs différents (typiquement dans le cas de données économétriques), alors on a une métrique « inverse des variances » et on travaille avec une matrice des corrélations.

Corrélation (v1, v2) = cov (v1, v2) / (écart-type (v1) * écart-type (v2))

2.1.3. Les composantes principales à garder

Il y a 3 critères empiriques pour savoir combien de composantes principales garder :

V' Le critère de Kaiser :

Si on a utilisé une matrice des corrélations (cas le plus courant), on ne garde que les composantes principales dont la valeur propre est > 1. Ce n'est pas un critère absolu.

V' Valeur du pourcentage :

La valeur propre est aussi donnée en pourcentage. On peut garder les pourcentages significatifs. En regardant la courbe des pourcentages cumulé, on peut faire apparaître un moment de flexion significatif qui montre qu'à partir de là, il y a peu d'information restituée.

V' Valeurs des coefficients de corrélation avec les variables d'origine :

On peut aussi ne garder que les composantes principales qui ont un coefficient de corrélation élevé avec au moins une variable d'origine

2.1.4. Le cercle de corrélation

a. Présentation

On peut calculer le coefficient de corrélation de chaque variable d'origine avec toutes les composantes principales. Le coefficient de corrélation est une valeur comprise entre --1 et1.Le cercle des corrélations ou bien l'espace des variables est le plan dont les axes sont constitués par des composantes principales (la première et la deuxième prioritairement). Chaque variable d'origine a des coordonnées dans ce plan.

La projection des variables dans ce plan (nuage de points) permet visuellement de : + Détecter les variables d'origine liées entre elles.

+ Interpréter chaque composante principale d'après ses corrélations avec les variables d'origine.

b. Interpretation

+ Des projections proches entre elles et proches du cercle des corrélations correspondent à des variables corrélées.

+ Des projections proches de l'horizontale montrent une corrélation avec la composante principale horizontale.

+ Des projections proches de la verticale montrent une corrélation avec la composante principale verticale.

3. La classification non supervisé

La classification non supervisé (classification automatique, regroupement ou clustring, en anglais) a pour but de regrouper des individus en classes homogènes en fonction de l'analyse des caractéristiques qui décrivent les individus. Par classes homogènes, on entend regrouper les individus qui se ressemblent et séparer ceux qui sont dissemblables.

L'expression non supervisée fait référence au fait qu'aucun superviseur ou label est utilisé pour préciser à quelle classe appartient un individu. En conséquence, le nombre de classes existant dans un ensemble d'individus est a priori inconnu. De ce fait, l'un des problèmes les plus délicats à propos des méthodes de classification non supervisée concerne le choix du nombre de classes à retenir. Pour palier cet écueil, il existe des artifices permettant d'approcher le bon nombre de classes. Dans ce mémoire, nous nous intéressons particulièrement à deux grandes familles de méthodes de classification non supervisée : les méthodes hiérarchiques et les méthodes de partitionnement.

3.1. Notion de similarité

Il s'agit de définir des groupes d'objets tels que la similarité entre objets d'un méme groupe soit maximale et que la similarité entre objets de groupes différents soit minimale.

La question est alors de définir cette similarité. Pratiquement, la similarité entre objets est estimée par une fonction calculant la distance entre ces objets.

Ainsi deux objets proches selon cette distance seront considérés comme similaires, et au contraire, deux objets séparés par une large distance seront considérés comme différents.

Le choix de cette mesure de distance entre objets est alors très important.

Très souvent il s'agit d'un choix arbitraire qui traite tous les attributs de la méme manière [24].

3.2. Les mesures de distances

Nous exposons dans ce qui suit les distances les plus usuelles pour les données quantitatives.

Soient I et J deux points dans un espace E d'individus décrit par p variables quantitatives. On note i = (xi1, xi2, ..., xip) et j = (xj1, xj2, ..., xjp). La distance entre X et Y peut se calculer selon

+ La distance Euclidienne : qui calcule la racine carrée de la somme des carrés des

différences entre les coordonnées des deux points :

+ La distance de Manhattan : qui calcule la somme des valeurs absolues des différences entre les coordonnées de deux points :

+ La distance de Chebychev : qui calcule la valeur absolue maximale des différences entre les coordonnées de deux points :

d(i, j) = max |xi - xj|

i={1...p} ;j{1....p}

3.3. Les méthodes hiérarchiques

La classification hiérarchique est une famille de techniques qui génèrent des suites de classes emboîtés les uns dans les autres. Les techniques de classification existantes dans cette famille peuvent être classées dans deux grands groupes : Classification Ascendante Hiérarchique (CAH) ou par agrégation et Classification Descendante Hiérarchique (CDH) ou par division.

Dans le groupe CAH, tous les individus sont initialement considérés comme des classes ne contenant qu'un seul individu. A chaque étape du processus de classification, les deux classes les plus proches au sens d'une mesure d'agrégation sont fusionnées. Le

processus s'arrête quand les deux classes restantes fusionnent dans l'unique classe contenant tous les individus.

Les techniques dans le groupe CDH partent de la partition triviale à une seule classe (contenant toutes les observations). Le processus de classification suit en effectuant de divisions successives des classes jusqu'à ce que soit atteint la partition triviale où chaque observation est une classe. La division d'une classe s'opère de façon à ce que la mesure d'agrégation entre les deux classes descendants soit la plus grande possible, de manière à créer deux classes bien séparés.

Les classes résultants des méthodes de classification hiérarchiques sont souvent représentés par une structure graphique appelé dendrogramme. Les typologies qui ont le plus de chance d'être significatives sont obtenues simplement en traçant une ligne horizontale en travers du dendrogramme, et en retenant dans la typologie les classes terminales justes audessus de cette ligne. En changeant la hauteur de la ligne, l'on change le nombre de classes retenus. Cette pratique constitue un moyen simple pour faire varier la granularité de la typologie finale.

3.3.1. Classification Ascendante Hiérarchique (CAH)

Dans ce groupe, il existe plusieurs méthodes d'agrégation possibles entre deux classes. Le choix de la méthode dépend de la problématique que l'on se pose. En ce qui concerne la distance entre deux individus, la distance euclidienne est la plus utilisée en général.

a. / 1-s 1P plid41-41WITIpITalidn

Parmi les méthodes d'agrégation existantes pour chaque couple de classes, nous citons ciaprès les plus classiques :

v agrégation selon le lien minimum (single linkage) : l'agrégation entre deux classes A et B correspond au minimum des distances entre un élément du classe A et un élément du classe B.

d (A; B) = min

i?A;j?B

d(xi; xj)

 

v agrégation selon le lien maximum (complete linkage) : l'agrégation entre deux classes A et B correspond au maximum des distances entre un élément du classe A et un élément du classe B.

d (A;B) == maxxEA;xEB d(xi; xj)

+ agrégation selon le lien moyen (average linkage) : l'agrégation entre deux classes A et B correspond à la moyenne des distances entre un élément du classe A et un élément du classe B.

d (A; B) = 1

|A||B| ??????;?????? ??(????;????)

+ la méthode de Ward : on choisira de regrouper les deux classes qui génèrent le gain d'inertie intra-classe minimum.

Selon le théorème de Huygens, l'inertie total T d'un ensemble d'individus E est égale à la somme des inerties intra-classe W et inter-classe B de cet ensemble d'individus regroupés dans une partition P.

%7 L'inertie totale : T(E)

C'est la moyenne des carrées des distances des individus au centre de gravité .ou T(E) = W(P) + B(P)

T(E) = 1 ?? ??(????, ??)2

??=1

??

Avec :

n : nombre d'individu de la population

x : valeur d'un individu

g : valeur du centre de gravité de la population %7 l'inertie intra-classes : W(P)

C'est la somme des inerties totales de chaque classe.

W(P) = ??(??)

??

??=1

Avec k : le nombre de classes de la population %7 inertie inter-classes : B(P)

B(P) = [???? *

?? ??=1 (????,??)]2

Avec :

k : le nombre de classe de la population initiale.

g: valeur du centre de gravité de la population initiale. P : poids de la classe

L'inertie intra-classe d'une partition mesure l'homogénéité de l'ensemble de classes. Une classe sera d'autant plus homogène que son inertie intra-classe sera faible. L'inertie interclasse d'une partition mesure la séparation entre les classes qui la composent. Plus l'inertie

interclasse d'une partition est grande plus les classe sont distinctement séparées. Deux cas particuliers sont à considérer :

ü Si chaque classe de la partition contient un seul individu, c'est-à-dire, K == n, alors W(P) = 0 et B(P) = T(E).

ü Si la partition n'est composée que d'une seule classe, c'est-à-dire, K = 1, alors B(P) == 0 et W(P) == T(E).

L'inertie intra-classe d'une partition croit avec la diminution du nombre de classes, où encore, l'inertie intra-classe décroit avec l'augmentation du nombre de classes dans la partition.

Le but de l'algorithme CAH est de passer de la meilleure partition de k classes à la meilleure partition de (k-1) classes selon le critère d'agrégation adopté. Selon ce critère, pour passer d'une partition PK à une partition PK-1, on choisira de regrouper les deux classes qui génèrent le gain d'inertie intra-classe minimum. Ce gain est calculé de la façon suivante :

Gain == W (Pk-1) -W(Pk)

Soit A et B deux classes, uA et uB leurs respectifs poids. Le gain d'inertie intra classe engendré par le regroupement de ces deux classes est donné par l'écart de Ward. L'écart de Ward peut être vu comme une distance entre deux classes si la distance entre deux individus est la distance euclidienne.

Gain (A; B) =_ uAuB

uA+uB

d2 (gA ; gB)

iEA

iEB

xiwi

xiwi

1

Où uA=ZiEA wii et g A=

uA

1

uB=ZwiiEB et g B= uB

b. Nombre de classes à retenir

La recherche du nombre approprié de classes dans une partition est une phase indispensable dans la construction d'une classification de données, mais elle est souvent laborieuse et délicate. Si le choix du nombre de classes dans une partition ne correspond pas au vrai nombre de classes existantes dans un ensemble d'individus, alors la partition choisie soit regroupe à tort des classes séparées (pas assez de classes), soit découpe en plusieurs classes des classes homogènes (trop de classes).

Dans les méthodes de classification hiérarchiques, le dendrogramme indique l'ordre dans lequel les agrégations (ou divisions) successives ont été opérées ainsi que la valeur de l'indice à chaque niveau d'agrégation (ou division). La problématique consiste à trouver le meilleur couple de contraintes opposées : inertie intra-classe et nombre de classes dans la partition, puisque à chaque fois que l'on diminue le nombre de classes dans la partition, son inertie intra-classe augmente.

Pour déterminer le bon nombre de classes, Il est pertinent d'effectuer la coupure du dendrogramme après les agrégations correspondant à des valeurs peu élevées de l'indice utilisé et avant les agrégations correspondant à des valeurs élevées de cet indice. En coupant le dendrogramme au niveau d'un saut important de cet indice, on peut espérer obtenir une partition de bonne qualité car les individus regroupés en-dessous de la coupure seront proches, et ceux regroupés au-dessus de la coupure seront éloignés.

D'après application de l'algorithme de CAH avec le critère d'agrégation de Ward, on connait à chaque étape les deux classes à rassembler et l'inertie intra-classe de la partition ainsi composée. La meilleure coupure du dendrogramme sera obtenue par un coude sur les valeurs du critère optimisé. Ce critère est l'inertie intra-classe. L'on trace le graphique des n- 1 gains d'inertie intra-classe obtenus à chaque itération de l'algorithme. Parmi les innombrables règles de détection du nombre adéquat des classes, il y a la fameuse « loi du coude » : nous cherchons visuellement la zone où la variation de courbure est la plus importante, traduisant l'idée d'une modification significative des proximités des variables à l'intérieur des groupes.

3.4. Méthodes de partitionnement

Les méthodes de partitionnement ont pour but de fournir une partition des éléments à classer. Le nombre de classes dans la partition à générer doit être fixé au départ. Le principe des méthodes de partitionnement est le suivant : à partir d'un ensemble E de n individus, on cherche à construire une partition P = (C1, ,CK) contenant K classes homogènes et distinctes, tout en respectant un critère basé sur une distance entre les individus. Doivent se trouver dans une même classe les individus qui se ressemblent et en classes différentes les individus divergents en termes du critère adopté.

Une partition optimale peut être obtenue à partir de l'énumération exhaustive de toutes les partitions, ce qui devient cependant prohibitif en termes de temps de calcul. Comme solution alternative à ce problème, des méthodes de partitionnement basées sur l'optimisation itérative du critère à respecter permettent d'obtenir des groupes bien distincts en un temps de

calcul raisonnable. Ces méthodes d'optimisation utilisent une réaffectation afin de redistribuer itérativement les individus dans les K classes.

3.4.1. Clustering K-means

Proposé en 1967 par MacQueen, l'algorithme des centres mobiles (K-means) est l'algorithme de clustering le plus connu et le plus utilisé, tout en étant très efficace et simple. Ce succès est dû au fait que cet algorithme présent un rapport coût/efficacité avantageux.

On considère l'espace de (n) points de dimension (p) suivant :

X=

On suppose que les (n) points peuvent être regroupés en (c) classes (c < n).

x Ck = [???? 1, ???? 2,???? 3, ., ???? ??]

. x ?

f 1

Les classes sont décrites par leurs centres :

... .. .. ... ...

? ?

+ S on note par d (i, k) la distance entre le point xi et le centre Ck, alors le point xi est x .. x . x

i1 if p

affecté au classe dont le centre est le plus proche.

... .. ... .. ... ?

?

L'algorithme fonctionne selon les étapes suivantes :

? n nf p ?

1' On choisit d'abord K points représentant les K classes recherchés et appelés centroides des classes (le nombre K est fixé par l'utilisateur).

1' On assigne chaque point non classé au classe dont le centroide est le plus proche. 1' On réévalue les nouveaux centroides des classes.

1' On recommence (réassignation des points au classe dont le centroide est le plus proche, et recalculé des centroides) jusqu'à ce que les centroides ne changent plus significativement. [24]

Entrée : k le nombre de clusters désiré. Sortie : Une partition C = {C1, ...,Ck} Initialiser ì1, ...ìk {k donné}

Répéter

Affecter chaque point à son cluster le plus proche C (xi) = ming d (xi, ìg)

Recalculer le centre ìi de chaque cluster

ìg =

1

????

????????

????

Jusqu?`a ce que (|?ì|<??)

FIG 3.1. L'algorithme k-means.

Le principal inconvénient de l'algorithme est que la partition finale dépend du choix de la partition initiale. L'algorithme est sensible à la sélection initiale des centroides, et nécessite que l'utilisateur lui fournisse le nombre K de classes (information souvent peu disponible).

4. Conclusion

Dans le domaine de la fouille de données d'usage du web, le but de ces méthodes d'analyse présentées est de découvrir deux types de classes : classes d'usagers et classes de pages qui seront présenté en détail dans notre expérimentation (chapitre 5). Le chapitre suivant montre l'expérimentation de prétraitement sur des données réelles.

CHAPITRE 4

Prétraitement de fichiers log

du site CUBBA

1. Étude de cas

1.1. Analyse du site Web académique

Dans cette étude de cas sur des données réelles, nous analysons les fichiers log du site Web de notre Centre universitaire de Bordj Bou Arréridj3. La figure exhibe un aperçu de la page de garde du site en question.

FIG 4.1. Aperçu de la page de garde du site Web de Centre Universitaire de Bordj Bou Arrerridj.

1.2. Préparation des données

En collaboration avec les responsables du centre de calcul, nous avons pu obtenir un jeu de données qui enregistre l'accès au site pendant la période du 14 février 2010 jusqu'au 17 mars 2010. Les différents fichiers log du format ECLF sont concaténés en un seul fichier qui a constitué notre source de données. Le tableau suivant indique la taille des différents fichiers log récupérés sur la période étudiée.

3 Le site analysé est accessible à l'adresse suivante : http://www.univ-bba.dz

Période Taille

14 mars .17mars

1698 ko

07mars 14mars

4276 ko

28fev 07mars

2537 ko

21fev 28fev

1873 ko

14 fev 21 fev

3955 ko

Total

14339 ko

TAB 4.1. La taille des fichiers log analysés.

2. Implémentation

2.1. Chargement du fichier Log et transformation en une table d'une BDD

Le fichier LOG est un fichier texte, appelé aussi journal des connexions. Généralement il est de la forme suivante :

Le fichier Log se transforme en une table composée de plusieurs colonnes. Chaque colonne correspond à un champ spécifique du fichier Log :

FIG 4.3. Base de données après import.

2.2. Présentation de l'application de prétraitement

Notre application est une petite démonstration aux différentes étapes de prétraitement, c'est pour ça on n'a pas besoin de réalisé une interface ergonomique, mais on a mené à réaliser une interface plus au moins au professionnel.

a. Nettoyage des données

Une fois les fichiers log importés dans les espaces de stockage, les données concernant les pages possédants des requêtes non valides, des images ou de fenêtre publicitaire ...etc ; n'apportent rien à l'analyse. Elles seront donc filtrées et éliminées.

Pour cela on est amené à supprimer de notre base de données les requêtes qui ont les formes suivantes :

+ Les requêtes correspondant aux statuts non valides par la requête

("delete from LOGUNIV where statut<=200 ou statut>399 »)

+ Les requêtes correspondant aux méthodes différentes de get' par la requête

("delete from LOGUNIV where methode < >`get' »)

+ Les requêtes correspondant aux fenêtres publicitaires par la requête

("delete from LOGUNIV where url like %popus%')

L'étape qui concerne les pages provenant des robots web nécessite l'établissement d'une liste des adresses IP4 (4187 adresses collectées) et une liste d'UserAgent5 (966 User- Agents collectés). Les requêtes provenant d'une des adresses IP ou d'un des User-Agents présents dans les deux listes sont supprimées.

b. Transformation des données

La transformation des données est une tache fastidieuse car elle représente véritablement le visiteur. Notre analyse est entièrement ne tient pas compte du fait que plusieurs requêtes peuvent provenir d'un même utilisateur. Ceci réduit les problèmes liés aux caches Web (Proxy), aux adresses IP dynamiques et au partage d'ordinateurs.

+ L'identification des sessions d'utilisateurs

Après le nettoyage des données et l'application de l'algorithme d'identification des sessions d'utilisateurs « FIG 4.5 » on a obtenue 744 sessions. La figure ci dessous présente un aperçu de sessions obtenues.

4

5

FIG 4.5. L'identification des sessions. + L'identification des visites

Après la création des sessions et l'application de l'algorithme d'identification des visites ci-dessous, nous obtenons 1826 visites d'après la base totale.

> Algorithme d'identification des visites d'utilisateur

En premier temps on doit collecter des informations sur l'identification des visites d'utilisateurs. Soit les variables suivantes :

v' Ri= Requête i

v' V [Ri] = Visite à laquelle appartient la requête i v' S [Ri] = Session à laquelle appartient la requête i v' T [Ri] = Temps de déclenchement de la requête i. v' Durée [Ri] =Durée de la requête i.

v' Durée = Somme des durées de requêtes de chaque visite. v' NV = Nombre de requêtes dans chaque visite.

1. Ordonner les requêtes suivant la variable S [Ri].

2. Détermination de la durée de chaque requête.

3. Construction des visites.

4. Détermination de I a durée de I a dernière requête de chaque visite.

FIG 4.6 Algorithme d'identification des visites d'utilisateur.

FIG 4.7. L'identification des visites.

c. Base de données final

Notre base de données qui constitue de 1826 requêtes est prête pour l'application de différentes méthodes de fouille des données. La figure suivante montre la base de données finale après l'étape de prétraitement.

FIG 4.8. Résultat final de prétraitement.

3. Résultats de l'analyse des fichiers Log du CUBBA

La figure suivante illustre un résumé sur les statistiques obtenues du prétraitement des fichiers log du centre universitaire de Bordj Bou Arréridj

Fichiers log

 

requêtes non valides 1,27%

methode<>get 0,50%

robots.txt 1,22%

liste ips des robots web 0,16%

liste useragent robots web 0,10%

mots clés de robots web 3,88%

annonces 34,81%

images 39,26%

aspérateurs web 0,66%

requêtes valide 18,10%

nombre de sessions 744

nombre de visites 1826

FIG 4.9. Statistiques de prétraitement de fichiers log

4. 2 XV013d01" Slé1" MAion

L'implémentation est une partie primordiale dans ce travail. Au cours de cette partie, nous allons décrire brièvement l'ensemble d'outils d'investigation utilisés durant les étapes de prétraitement.

4.1. DELPHI 7:

Pour la réalisation de notre application, nous avons choisi le langage de programmation DELPHI 7, qui est un outil de développement puissant pour une programmation d'application sous WINDOWS.

DELPHI 7 offre plusieurs avantages, on peut citer :

Il apporte une grande souplesse aux développements lorsqu'il un fichier exe.il s'agit d'un vrai exécutable, aucun autre fichier n'est nécessaire pour l'exécution, vous obtenez donc une application plus propre et plus facile à distribuer et à maintenir.

v' L'emploi des tableaux à plusieurs dimensions.

1' DELPHI est doté d'outils de programmation tels que les modèles d'application et des fichiers qui permettent de créer et de tester une application.

v' Lors de la phase de transformation, nous pouvons visualiser les données (réelles), nous pouvons ainsi savoir aussi si le résultat de notes requis correspond à nos attentes.

4.2. Le langage SQL

Pour le nettoyage de données nous avons eu recours au formalisme du langage de manipulation des données SQL, très répandu et de compréhension facile.

SQL (Structured Query Language, en anglais, ou langage structuré de requêtes, en français) est un langage standard et normalisé, destiné à interroger ou à manipuler une base de données relationnelle. SQL se décompose en 3 parties, à savoir :

v' La définition de données: création, suppression, modification de la structure des tables.

v' Les manipulations des bases de données : Sélection, modification, suppression d'enregistrements.

v' La gestion des droits d'accès aux tables : Contrôle des données : droits d'accès, validation des modifications

5. Conclusion

Dans le cadre de ce chapitre, nous avons présentés les différents résultats de la méthodologie de prétraitement des fichiers Logs qui donne de bons résultats expérimentaux (18.10 % de la taille de la base après l'étape de nettoyage). A ce stade, la phase amont du processus se termine. Les données du web sont prêtent bien à La partie suivante qui constituant le coeur du processus, décrit l'application des techniques de la fouille d'usage du web aux fichiers log de CUBBA.

CHAPITRE 5

Classification des pages et d'internautes du

site CUBBA

1. Introduction

Dans ce chapitre, nous avons donné une série de résultats d'expérimentation et leurs interprétations que nous utilisons dans deux types de fouille : d'une part, les classes de pages regroupant les pages dont les contenus sont sémantiquement proche, et d'autre part, de définir les classes d'utilisateurs dont l'objectif est de trouver des groupes d'internautes ayant des modèles de navigation similaires.

Cependant ce chapitre n'a pas pour intention de décrire les techniques de classifications présentées avec plus de détail dans le chapitre 1. Il présent plutôt comment ces techniques sont appliquées dans le domaine du fouille d'usage du Web.

2. Classification des pages

La classification des pages a pour objectif de distinguer les pages de contenu présentant l'information recherchée par l'internaute des pages de navigation utilisée pour faciliter la navigation de l'utilisateur sur le site de manière à ne garder dans la base que les requêtes aux pages présentant un contenu intéressant aux visiteurs. Notre approche consiste à définir des variables servant à la caractérisation des pages et les utiliser pour la classification des pages.

2.1. Variables statistiques pour la caractérisation des pages

Afin de caractériser les pages visitées par les internautes, les variables suivantes sont définies pour chaque page :

N0

variable

Signification

1

NV

Nombre de Visites effectuées à chaque page.

2

NI

Nombre des Inlinks qui mènent à la page en question à partir des autres

pages.

3

NO

Nombre des Outlinks dans la page qui mènent vers d'autres pages

4

DM

Durée Moyenne par page de visite de chaque page

TAB 5.1. Variables statistiques décrivant les pages.

l'indexation des pages du site Web pour faciliter leur manipulation et la construction de deux matrices : matrice d'hyperliens et matrice d'accès.

a. 0 DtIiFIRdADFFgs

Cette matrice est utilisée pour déterminer le nombre de visites effectuées par les internautes à chaque page. Chaque entrée (i, j) de la matrice représente le nombre de visites effectuées de la page i à la page j. Si cette entrée est égale à zéro alors la page j n'a jamais été visitée à partir de la page i.

Exemple :

 
 

A

B

C

D

E

F

G

SOM

A

0

42

14

29

17

9

0

111

B

0

1

19

2

3

1

0

26

C

0

0

1

12

3

1

0

17

D

0

3

2

0

11

6

0

22

E

0

4

0

5

1

12

0

21

F

0

0

1

1

4

0

14

20

G

0

0

0

0

0

3

0

3

TAB 5.2. Matrice d'accès.

b. 0 DtIiFIRdAN, slims

Cette matrice est utilisée pour calculer le nombre d'inlinks et le nombre d'outlinks. En effet, le nombre d'inlinks est le total sur les lignes alors que le nombre d'outlinks est le total sur les colonnes. Chaque ligne de la matrice correspond à une page du site. Il en est de même pour chaque colonne. Ainsi, s'il existe N pages différentes visitées par les internautes, la matrice d'hyperliens sera de dimension (N, N). Chaque entrée (i, j) de la matrice prend la valeur 1 si l'utilisateur a visité la page j à partir de la page i et la valeur 0 sinon.

Toutefois, il ne faut pas oublier que certaines pages du site ne sont pas visitées par les internautes et que certains liens dans les pages visitées ne sont pas utilisés. Ces pages et hyperliens ne sont pas considérés dans cette représentation matricielle qui ne prend que les accès enregistrés dans les fichiers Logs.

120,00%

100,00%

40,00%

80,00%

60,00%

20,00%

0,00%

0 1 2 3 4 5

% cumulated

% cumulated

Exemple

 
 
 

A

B

C

D

E

F

G

inlinks

A

1

1

0

0

1

0

1

4

B

1

1

0

0

1

1

0

4

C

1

1

0

1

1

1

1

6

D

1

0

1

1

0

0

0

3

E

1

1

1

0

1

1

0

5

F

1

1

0

1

1

0

1

5

G

1

0

1

1

0

0

1

4

outlinks

7

5

3

4

5

3

4

31

TAB 5.3. Matrice d'hyperlien.

2.2. Application de l'Analyse en Composantes Principale (ACP)

A partir de l'application de l'Analyse en composante principale sur l'ensemble des variables du tableau « TAB 5.1 » qui participe à la construction des axes, On a gardé selon le critère « valeur du pourcentage » les deux premiers axes qui représentent à 83 % près l'allure du nuage initial (FIG 5.1).

a. La projection des variables sur les axes factoriels

FIG 5.2. Projection des variables sur les axes factoriels.

+ Interprétation

duree

Le premier axe traduit bien un effet de visite, il oppose les pages ayant une valeur importante de « NI, NO et NV », ces dernières sont corrélées positivement avec le premier axe. Le second axe était plus associé à la DM des visites.

b. la projection des individus sur les axes factoriels

FIG 5.3. Projection des individus sur les axes factoriels. ? Interprétation

d1

La popularité de l'ACP repose en grande partie sur les représentations graphiques qu'elle propose. Elles nous permettent d'apprécier visuellement les proximités entre les

p _

individus. Dans notre cas, nous projetons les individus dans le plan factoriel. Nous voulons

p1

associer les individus aux classes.

À partir de la représentation obtenue (FIG 4.3) le contenu du site peut être divisé en quatre classes dont les pages dans chaque classe sont sémantiquement proches.

x

Pour aboutir à un meilleur résultat, nous avons recourt à la combinaison de l'ACP avec

rp d

p

l'une des méthodes de partitionnement k-means. Les axes factoriels obtenus sont utilisés

i

p13 o l

y

comme des variables d'entrée pour le k-means.

q g

k j m

10

2.3. clustering k-means

L'application de la méthode de clustering k-means met en évidence quatre classes de pages.

FIG 5.4. Résultat de classification de pages

Nous intéressons notamment à l'interprétation statistique des classes en fonction des variables les plus discriminantes :

A

1. La première classe (09.1%) est composée de pages visitées fréquemment et caractérisées par un nombre important d'inlinks et d'outlinks. Elle correspond à la classe de pages auxiliaires ou de navigation qui contiennent les hyperliens primaires aux autres pages Web et utilisées pour la navigation.

2. La deuxième classe (15.9%) est celle de pages de contenu caractérisées par une durée de consultation assez élevée et contiennent des informations intéressantes aux utilisateurs.

3. L'intersection de ces deux classes (38.6%) est composée de pages présentant à la fois les caractéristiques des pages de contenu et des pages auxiliaires. C'est la classe de pages hybrides

4. La derniere classe (36.4%) est celle des pages visitées rarement, qui ne pointent nulle part et vers lesquelles pointent peu de pages. La durée moyenne de consultation de ces

pages est faible. Nous considérons que ces pages correspondent à ce que [21] appelle « pages de références » utilisées pour définir un concept ou expliquer des acronymes. Cependant, nous considérons que ces pages sont, dans une certaine mesure, des pages de contenu.

+ Résultat

A partir du total de pages, nous avons identifié 9.1 % de pages auxiliaires. Les autres pages sont des pages de contenu, des pages hybrides et des pages de référence. L'ensemble des pages restantes est présentant un certain intérêt à l'internaute fait l'objet de notre analyse.

3. Classification des utilisateurs

3.1. Modélisation des données d'usage

N0

Variable

Signification

1

DureeTotale

Durée totale de la navigation (en secondes)

2

Nb Requêtes

Nombre de clics effectués durant la navigation

3

MDuree

Moyenne de la durée des requêtes (= DureeTotale /Nb Requêtes)

4

Nb Répétitions

Nombre de requêtes répétées dans la navigation

5

P_Repetitions

Pourcentage de répétitions (=Nb Répétitions / Nb Requêtes)

6

Nb Requêtes OK

Nombre de requêtes réussies (statut = 200) dans la navigation

7

P _Requêtes OK

Pourcentage de requêtes réussies (=Nb Requêtes OK / Nb Requêtes)

TAB 5.4. Variables statistiques décrivant les navigations.

Dans le but de mieux caractériser la navigation d'un internaute, nous définissons un ensemble de sept variables statistiques obtenues à partir des données d'usage prétraitées et stockées dans une base de données. Ces variables sont énumérées dans le tableau 5.4 et détaillées dans les paragraphes suivants.

Durant la navigation sur un site Web, l'utilisateur peut faire face à des messages d'erreur sur la page demandée (quand la page n'a pas été retrouvée), de redirection (quand la page requise a été physiquement déplacée), d'erreur sur le serveur Web (quand le serveur en question est occupé ou hors service), etc. Le code de retour d'une requête est identifié dans les fichiers log Web par le champ statut. Les codes de retour de requête assument des valeurs standardisées par le W3C6. Une requête est dite réussie quand son code de retour est égal à 200. Dans tous les autres cas, la requête est considérée échouée. Dans le but de discriminer le nombre de requêtes réussies durant une navigation, nous utilisons respectivement les variables NbRequêtes_OK. La variable Nb Requêtes représente le nombre total de clics effectués pendant la navigation.

Durant la navigation, un internaute peut, pour un motif quelconque, revenir sur une page déjà visitée. Les pages revisitées durant une navigation sont souvent celles qui attirent le plus l'attention de l'internaute. Les variables Nb Répétitions et P_Repetitions contiennent respectivement le nombre et le pourcentage de pages revisitées dans une navigation.

La variable DureeTotale représente le temps (en secondes) consacré par l'internaute à la visite du site Web en question. La variable MDuree représente la moyenne de temps consacré aux pages visitées durant la navigation.

Les variables présentées dans cette section ont pour but de décrire la navigation des internautes d'un site Web quelconque à partir des données extraites des fichiers log du serveur Web qui héberge le site en question.

3.2. Construction de groupes d'utilisateurs

L'analyse proposée dans cette partie consiste une classification non supervisée dans un premier temps à diviser l'ensemble de variables à des groupes afin que Les résultats de cette première classification sont injectés dans la base des navigations utilisée pour classifier les internautes et découvrir des groupes d'utilisateurs. Chaque navigation sera affectée à un groupe contenant des navigations proches au sens de la distance appliquée par la méthode de classification.

6 Une liste exhaustive des codes de retour de requête peut être consultée à l'adresse suivante : http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

3.2.1. Classification hiérarchique ascendante (CAH)

a. Classification des variables

La classification ascendante hiérarchique(CAH) des variables permet d'agréger au fur et à mesure les groupes de variables qui portent les mêmes informations (redondantes corrélées), et dissocier les variables qui expriment des informations complémentaires au sens de la minimisation de la perte d'inertie à chaque étape. La classification de variable à pour but de :

+ mieux comprendre ce qui rassemble ou distingue les groupes. + Réduction du nombre de variables.

La classification des variables « DureeTotale, MDuree, P_Repetitions, Nb Requêtes, P_RequêtesOK », Pour la distance euclidienne et l'agrégation selon la méthode de Ward, donne le dendrogramme suivant :

FIG 5.5. Dendrogramme de classification CAH des variables

Nous avions vu dans le dendrogramme que les partitions en 3 ou 4 classes semblent les plus appropriées dans cette classification. Pour acquérir le nombre de classe adéquat : on s'appuie sur la courbe d'évolution de la variation de l'inertie intraclasse en fonction du nombre de classes. Le premier coude apparus correspond de trois classes de variable.

inertie intra classe

4

0

6

5

3

2

1

0 2 4 6

classe

inertie intra classe

FIG 5.6. La courbe de la variation de l'inertie intraclasse

On voit sur le dendrogramme, trois groupes bien distincts de variables : d'une part DureeTotal MDuree, d'autre part P_Repetition P _Requête OK et le troisième groupe est représenté par Nb Requêtes.

b. Classification des individus

Le graphique de la figure « FIG 5.7 » exhibe un aperçu de La classification des individus basée sur le résultat des classes obtenues de la classification des variables.

FIG 5.7. Dendrogramme de classification CAH des individus

A partir d'un premier regard sur ce graphique, l'on imagine aisément les difficultés rencontrées par les analystes à la recherche de nombre de classes significatives. Le choix ici est basé sur l'indice du saut le plus élevé.

La classification en deux classes a été ignorée alors qu'elle correspond au saut le plus élevé, cela est naturel car à l'usage on constate que cette subdivision en deux classes proposera toujours le saut le plus élevé, ce qui est normal dans le sens où il s'agit là de la première subdivision possible de l'ensemble de données, la dispersion dans les deux groupes produits chute mécaniquement sans que cela corresponde forcément, dans la plupart des cas, à un partitionnement intéressant. Dans le cas présent, le partitionnement en quatre classes se démarque fortement des autres.

+ Interprétation statistique des classes

Ce travail a aboutit à la découverte de quatre groupes d'utilisateurs du site du CUBBA à savoir :

FIG 5.8. Résultat de classification des navigations

40

60

50

30

20

10

0

classe1 classe2 classe3 classe4

pourcentage

FIG 5.9. Interprétation statistique des classes des individus.

1' Classe 1: Groupe d'internautes composées de navigations dont le nombre de requête très important.

1' Classe 2: Groupe d'internautes composées de navigations dont La durée de chaque navigation et moyenne de la durée sont très élevées en comparaison avec les autres classes.

v' Classe 3: Groupe d'internautes composées de navigations dont toutes ces valeurs de variables sont faibles.

1' Classe 4: Groupe d'internautes composées de navigations dont pourcentage de répétitions de requête de chaque navigation et Pourcentage de requêtes réussies sont élevées.

+ Interprétation sémantique des classes

Dans le cadre de ce mémoire, on ne s'intéresse pas uniquement à l'interprétation statistique des classes, mais aussi et surtout à l'interprétation sémantique. En d'autres termes, nous cherchons à comprendre ce qui se passe dans le site afin d'identifier les informations pouvant être extraites une fois toutes les navigations classées dans des classes, à savoir :

1' chaque classe rassemble des navigations appartenant à des individus ayant visité de

pages similaires et qui partagent ainsi les mêmes préférences.

1' Les Profils d'usages permettent de créer des catégories de navigations dans les fichiers log. ils sont une manière simple de grouper les pages du site pour une meilleure analyse. Ces profils sont très intuitifs et peuvent être facilement extraites à partir de la

60

50

40

30

20

10

0

classe1

classe2

classe3

classe4

profil1

profil2

profil3

profil1
profil2
profil3

classification des pages. Chaque classe de page possède un profil différent des autres profils .dans notre expérimentation on possède tois profils :

> le premier profil est celui de pages hybrides pour les internautes ayant un centre d'intérêt les activités de recherche des unités et laboratoires de recherche.

> le deuxième profil est celui des pages de contenus dont l'objectif des internautes les activités des institutions universitaires et le téléchargement des cours.

> le dernier profil représente les internautes ayant pour objectif la découverte du site et qui ont visité les pages de références.

v' Les classes ayant un effectif important correspondent aux profils d'usage le plus populaires.

v' Les classes ayant un faible effectif correspondent aux profils d'usage minoritaires.

Ces informations sont très intuitives et peuvent être facilement extraites à partir d'une simple analyse sur la partition de données.

Afin de mieux connaître les profils les plus typiques de comportement d'internaute, nous avons eu recours à l'interprétation des classes par les profils.

Résultat

La composition des classes en fonction des profils des utilisateurs montrent bien que les classes trouvées ne se détachent pas visiblement les unes des autres. Ce résultat reflète un comportement assez homogène chez l'ensemble des utilisateurs indépendamment de leurs profils.

4. 2 Xlil ENiP SlA)P 'nlalion

L'outil d'implémentation utilisé dans ce chapitre est: TANAGRA version 1.4.33.

TANAGRA est un logiciel gratuit de data mining destiné à l'enseignement et à la recherche, diffusé sur internet. Il implémente une série de méthodes de fouilles de données issues du domaine de la statistique exploratoire, de l'apprentissage automatique et des bases de données.

v Son premier objectif est d'offrir aux étudiants et aux chercheurs d'autres domaines (médecine, bioinformatique, marketing, etc.) une plate-forme facile d'accès, respectant les standards des logiciels actuels, notamment en matière d'interface et de mode de fonctionnement, il doit etre possible d'utiliser le logiciel pour mener des études sur des données réelles.

v Le second objectif est de proposer aux enseignants une plate-forme entièrement fonctionnelle, le logiciel peut servir d'appui pédagogique pour les illustrations et le traitement des jeux de données en cours ou en TD.

v Enfin, le troisième objectif est de proposer aux chercheurs une architecture leur facilitant l'implémentation des techniques qu'ils veulent étudier, de comparer les performances de ces algorithmes. TANAGRA se comporte alors plus comme une plate-forme d'expérimentation.

Point très important à nos yeux, la disponibilité du code source est un gage de crédibilité scientifique, elle assure la reproductibilité des expérimentations publiées, et surtout, elle permet la comparaison et la vérification des implémentations.

Le site de diffusion du logiciel7 a été mis en ligne en janvier 2004, il compte en moyenne une vingtaine de visiteurs par jour. TANAGRA est également référencé par les principaux portails de l'ECD.

7 ( http://eric.univ-lyon2.fr/~ricco/tanagra)

5. Conclusion

L'expérience de fouille de donnée a pour but de valider ou d'invalider l'existence d'un comportement typique des utilisateurs selon leur profil. Les différentes classes qui peuvent être éventuellement identifiés présentent chacune un intérêt pour une catégorie différente d'utilisateurs. Ceci permet une bonne vision de l'ensemble des utilisateurs.

Conclusion

&

Perspective

Au cours de ce mémoire qui s'inscrit dans le cadre de la préparation d'un Ingénieur informatique au CUBBA, on a étudié le comportement des utilisateurs du site Web de notre centre universitaire à partir de l'exploitation des données d'usage disponibles dans les fichiers log gérés par le serveur. Notre objectif est de proposer une approche permettant d'exploiter les différentes informations relatives à l'usage d'un site Web en vue d'extraire des connaissances pouvant servir à son amélioration.

La partie d'expérimentation confirme l'étape de préparation des données telle qui indiqué dans la littérature consultée, et qui représente 60 à 80% du processus de Fouille de données d'usage du Web. Cette phase sert de construire un tableau de description des navigations permettant d'aller à la phase de classification. L'objectif de cette classification est de découvrir les différents comportements d'utilisateurs ou des catégories de comportement de navigation et les résultats obtenus ne montrent aucune différence significative dans le comportement chez l'ensemble des utilisateurs.

Nous pensons que la validation des résultats obtenus nécessite d'autres expérimentations dans le temps et éventuellement, une comparaison avec des études similaires dans des institutions universitaires. Ceci constitue un des perspectives du travail réalisé.

Enfin, il nous semble intéressant de généraliser l'analyse à des données autres que ceux du Web. En particulier nous pensons à l'analyse des requêtes de n'importe quel système d'informations. Les résultats obtenus peuvent permettre une meilleure compréhension des utilisateurs de tels systèmes et répondre au mieux à leurs attentes. Ceci nous semble une bonne piste dans le domaine de l'application des techniques de fouilles de données.

Bibliographie

[1] R. Kosala and H. Blockeel, «Web mining research : A survey,» ACM SIGKDD Explorations :Newsletter of the Special Interest Group on Knowledge Discovery and Data Mining, vol. 2,pp. 1-15, 2000.

[2] J. Srivastava, R. Cooley, M. Deshpande, and P.-N. Tan, «Web usage mining: Discovery and applications of usage patterns from web data,» SIGKDD Explorations, vol. 1, no. 2, pp. 12-23, 2000.

[3] R. Cooley, B. Mobasher, and J. Srivastava, «Data preparation for mining world wide web browsing patterns,» Journal of Knowledge and Information Systems, vol. 1, no. 1, pp. 5- 32,1999.

[4] M. Spiliopoulou, «Data mining for the web,» Workshop on Machine Learning in User Modelling of the ACAI99, pp. 588-589, 1999.

[5] W3C, «Logging control in w3c httpd,» http: // www.w3.org/TR/WD-logfile. [06]B. Lavoie et H. F. Nielson, Web characterisation terminology & definitions sheet

[7] Caractérisation d'usages et personnalisation d'un portail pédagogique. État de l'art et expérimentation de différentes méthodes d'analyse du Web UsageMining. Christine MICHEL

[8] H. Samelides, P. Bouret, J. Reggia, Réseaux neuronaux. Une approche connexionniste de l'intelligence artificielle. Édition TEKNEA 1991.

[9] 4/5ème années - cours de Data Mining -6 : Analyses factorielles -Bertrand LIADET

[10] M. Mc Cord Nelson, W.T. Illingworth A practical guide to neural nets, Addison-Wesley Publishing ompany 1991.

[11] J. A. Freeman, D. Skapma, Neural Networks, Algorithms, and programming technique, Addison-Wesley publishing company 1992

[12] B. Berendt, B. Mobasher, M. Spiliopoulou, and M. Nakagawa, «The impact of site structureand user environment on session reconstruction in web usage analysis,» in Proceedings of the 4th WebKDD 2002 Workshop, at the ACM-SIGKDD Conference on Knowledge Discovery in Databases (KDD'2002), Edmonton, Alberta, Canada, July 2002.

[13] Malika Charrad: Techniques d'extraction de connaissances appliquées aux données du Web .Thèse de mastère.Université manouba Tunisie .2005

[14] L. D. Catledge and J. E. Pitkow, «Characterizing browsing strategies in the world-wide web,»Computer Networks and ISDN Systems, vol. 27, no. 6, pp. 1065-1073, 1995.

[15] D. Tanasa, «Web usage mining: Contributions to intersites logs preprocessing and sequential pattern extraction with low support,» Thèse de doctorat, University of Nice Sophia Antipolis, 3 June 2005.

[16] M. Michel Zins : Les outils et méthodes destinés à l'analyse des logs de serveur Web ; Méthodologie de la recherche en marketing (MRK-65384)

[17] Application des techniques de fouille de données aux logs web : Etat de l'art sur le Web Usage Mining Doru Tanasa, Brigitte Trousse et Florent Masséglia

[18] Data Mining et statistique décisionnel .Stéphane TUFFERY.

[19] J. Srivastava, R. Cooley, M. Deshpande, et P. Tan, »Web Usage Mining: discovery and applications of usage patterns from Web data,» In SIGKDD Explorations, Volume1, Issue 2 editions ACM, pp. 12-23, Jan 2000.

[20] Lebart L, Morineau A et Piron M - Statistique exploratoire multidimensionnelle - Edition DUNOD, Paris 2000

[21] R. Rao, P. Pirolli, et J.Pitkow, »Silk from a sow's ear: Extracting usable structures from the web. » In proc. ACM Conf. Human Factors in Computing Systems, CHI, 1996.

[22] personnalisation des sites web : élaboration d'une méthodologie de mise en oeuvre et application au cas autre directeur :

jean vanderdonckt université catholique de louvain 2001-2002

[23] Tanagra, un logiciel de Data Mining gratuit pour l'enseignement et la recherche Ricco Rakotomalala February 19, 2010

[24] Ziani b. Ouinten y : Etude de cas en Web Usage Mining : Catégorisation des utilisateurs de la connexion Internet de l'UATL.

[25] W. Frawley, G. Piatetsky-Shapiro, et C. Matheus, Knowledge Discovery in Databases, ch. Knowledge Discovery in Databases: An Overview, p. 1-27, AAAI/MIT Press, 1991.

[26] Zouache.Djaafer , chapitre1 Analyse en composantes principales 1èreMaster Informatique. Décisionnel.

.