INTEGRATION DES AGENTS DANS LE DATA MINING - application/pdf

publicité
République Algérienne Démocratique et Populaire
Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Des sciences et de technologie Mohamed BOUDIAF – ORAN
Faculté des mathématiques et informatique
Département d'informatique
Mémoire de Magister
Spécialité : Informatique
Option : Systèmes, Réseaux et Bases de données
Présenté par :
M. MESLI Abdelkader El hadi
Thème :
INTEGRATION DES AGENTS DANS LE DATA MINING
Soutenu le 19/11/2014
Devant le jury composé de :
Mme BELBACHIR HAFIDA
M. RAHAL SIDI AHMED HEBRI
Mme BENDELLA FATIMA
Mme ZAOUI LYNDA
Professeur
Maître de conférences A
Maître de conférences A
Maître de conférences A
2014/2015
Présidente
Rapporteur
Examinatrice
Examinatrice
Résumé
Au cours des dernières années, de plus en plus de chercheurs ont été impliqués dans
la recherche à la fois sur la technologie des agents et le datamining. Des efforts ont
été déployés afin de réduire la frontière entre les deux technologies. La combinaison
entre les agents et le datamining est fondée sur les défis rencontrés par les deux
communautés, et la nécessité de développer des systèmes de traitement de
données plus intelligent.la technologie des agents dont le but est de traiter des
systèmes complexes a révélé des possibilités pour améliorer le domaine de
datamining. Cette thèse est consacrée à l’intégration des SMA dans le datamining. Le
rôle et le fonctionnement de chaque agent qui composent notre système sont
détaillés. Cette thèse traite aussi la communication et la coopération entre ces
agents. Nous avons réalisé un système datamining basé sur les SMA, en utilisant
l’Algorithme de règles d’associations (Apriori).
Mots Clés : Système multi agents, datamining, Apriori, Intégration, communication,
Coopération, Règles d’associations.
i
Remerciements
Je voudrais avant tout remercier DIEU, le tout puissant, pour tous ses bienfaits trop
souvent négligés.
Je remercie mon encadreur le Dr.RAHAL Sid Ahmed, Maître de conférences à l’USTOMB pour m’avoir accueilli dans son équipe. Je le remercie aussi pour ses conseils, sa
patience et sa compréhension durant l’élaboration de ce travail.
Mes remerciements et mes respects les plus sincères vont aussi aux membres
du Jury qui m’ont fait l’honneur d’examiner et juger ce travail.
Je tiens également à remercier mes enseignants, pendant mes années d’études
qui ont contribué à ma formation de prés ou de loin. Je remercie spécialement tout
mes enseignants de l’USTO-MB pendant mon cycle d’ingénieur de 2004 à 2009:
Mme BELBACHIR, Mme Bendella Fatima , M .Hamdaoui Sid Ahmed, M. Neggaz
Nabil,M. Khaled, etc.et mes enseignants de ma première année Magister 2009/2010.
Je remercie sincèrement M. Othmane Benyoucef, pour l’aide et les conseils qu’il m’a
prodigués pour l’élaboration de ce mémoire.
Que tous ceux qui m’ont aidé de près ou de loin pour l’élaboration de ce
travail trouvent ici l’expression de ma sincère gratitude et que Dieu tout
puissant vous récompense tous.
ii
Dédicaces
Je dédie ce travail à toute ma famille et spécialement a ma mère, qui m'a
toujours soutenu, réconforté et aidé durant mon Magister, et qui n’a pas
cessé de prier Dieu pour moi, afin d’achever ce travail.
Je dédie ce travail aussi à mes amis et à mes collègues de travail.
iii
Table des matières
Résumé……………………………………………………………………………………………………………….…………….i
Remerciements…………………………………………………………………………………………………………………ii
Dédicaces………………………………………………………………………………………………………………..……….iii
Table des matières……………………………………………………………………………………………………………iv
Liste des figures………………………………………………………………………………………………………..……..vi
INTRODUCTION GENERALE
1. Chapitre 1 Data mining
1.1 Introduction………………………………………………………………………………………………………………………...……….5
1.2 Definition du data mining ………………………………………………………………………………………………..………….5
1.3 Motivation du Data Mining ………………………………………………………………………………………….……………..7
1.4 Taches du Data Mining …………………………………………………………………………………………………….………….7
1.4.1 Classification …………………………………………………………………………………………………………………….………7
1.4.1.1 Classification non supervisée ………………………………………………………………………………………………..8
1.4.1.2 Classification supervisée……………………………………………………………………………………………..…………8
1.4.2 Estimation………………………………………………………………………………………………………………………..……. 9
1.4.3 Prédiction ……………………………………………………………………………………………………………………..…………9
1.4.4 Groupement par similitude …………………………………………………………………………………………………….10
1.4.5 Analyse des clusters ……………………………………………………………………………………………………………….10
1.6 Techniques du Data Mining ………………………………………………………………………………………………..…….11
1.6.1 Association Rule Mining …………………………………………………………………………………………………..…….11
1.6.1.1 Algorithmes ARM de base ………………………………………………………………………………………………..…13
1.7 Conclusion …………………………………………………………………………………………………………………………..……15
Chapitre 2 : Agent et Système Multi-Agents…………………………………………………………………...16
2.1 Introduction …………………………………………………………………………………………………………..…..17
2.2 Définition d’un Agent …………………………………………………………………………………………..…….17
2.3 Caractéristiques d’agents ………………………………………………………………………………………..…18
2.4 Typologie d’agents …………………………………………………………………………………………………….18
2.4.1 les Agents réactifs …………………………………………………………………………………………………..…18
2.4.2 les agents cognitifs …………………………………………………………………………………………………....19
2.5 système multi-agents……………………………………………………………………………………………. …….20
2.5.1Caractéristiques d’un système multi-agents ……………………………………………………………….21
2.6 Organisation des Agents ………………………………………………………………..…………………………....21
2.6.1 Communication entre agents …………………………………………………………………………………....21
2.7 le kit de développement des agents ……………………………….……………………………………….…..22
2.7.1 La plateforme JADE ………………………………………………………..……………………………………….…22
2.7.2 Langage de communication KQML ………………………………….….……………………………….…….23
2.7.3 Langage de communication ACL ……………………………………….……………………………….………24
2.7.4 Coopération entre agents ……………………………………………………………………………………..…..24
2.7.5 Domaine d’application des systemes multi-agents ……………………………………………….…..24
2.8 Conclusion………………………………………………………………………………………………………………..…..25
Chapitre 3 : Etat de l’art des systemes MADM existants …………………………………………………..27
3.1 Introduction …………………………………………………………………………………………………………….…..28
3.2 Motivation pour le mariage Datamining –SMA ……………………………………………………….……28
3.3 Role des agents dans le datamining ……………………………………………………………………….…….28
3.4 Problemes du data mining basé agents ………………………………………………………………….…….29
3.5 Le système PADMA ……………………………………………………………………………………………….……..30
3.6 Le système JAM ……………………………………………………………………………………………………………31
Chapitre 4 : Conception & Implémentation ………………………………………………………………..…….32
4.1 Conception du système MADM ……………………………………………………………………………..……33
4.1.2 Analyse structurelle …………………………………………………………………………………………………..35
4.2 Les agents du système ………………………………………………………………………………………………….36
4.2.1 Agent utilisateur ………………………………………………………………………………………………………..37
4.2.2 Agent d’enregistrement …………………………………………………………………………………………….38
4.2.3 Agent facilitateur ……………………………………………………………………………………………………….38
4.2.4 Agent gestionnaire de taches…………………………………………………………………………………… 39
4.2.5 Agent datamining ………………………………………………………………………………………………..…….40
4.2.6 Agent de données …………………………………………………………………………………………….……….40
4.3 Definition des protocoles d’interaction ………………………………………………………………………..41
4.3.1 Trouver les agents disponibles dans le système ………………………………………………………..43
4.3.2 Le protocole d’enregistrement des agents ………………………………………………………………..44
4.3.3 Protocole demande d’une requete de data mining …………………………………………………..45
4.3.4 Protocole démarrer les taches de data mining ………………………………………………………….45
4.3.5 Protocole de récupération de données …………………………………………………………………….47
4.4 Implémentation ………………………………………………………………………………………………………..…48
4.5 Conclusion………………………………………………………………………………………………………….…….…..52
Conclusion générale ………………………………………………………………………………………………….……....53
Bibliographie ………………………………………………………………………………………………………………………49
Introduction
générale
L’extraction de connaissances dans les bases de données (KDD) a évolué pour devenir une
technologie qui a de nombreuses applications commerciales. Elle englobe de sous-domaines
tels que la classification, clustering, et l'extraction de règles d’association. Cependant, elle
pose encore de nombreux défis à la communauté de la recherche. De nouvelles méthodes
sont nécessaires pour l’extraction d’informations spécifiques plus intéressantes a partir de
grands volumes de données. De nouveaux frameworks sont nécessaires pour harmoniser
plus efficacement les différentes étapes du processus de KDD. De nouvelles solutions sont
nécessaires pour gérer les sources de données plus complexes et hétérogènes qui sont
aujourd'hui disponibles dans la majorité des sources de données.
Cette thèse aborde un certain nombre de questions de recherche concernées par l'utilisation
des systèmes multi-agents dans le Data Mining (MADM). La thèse examine également les
questions touchant la conception et la mise en œuvre d'un framework pour la conception de
système MADM désiré.
Il y a beaucoup de défis de recherche qui vont être rencontrés lors de la mise en œuvre de la
vision de MADM. Il s'agit, bien sûr, d’une tâche importante et le travail présenté dans cette
thèse ne peut pas trouver des réponses à toutes les questions mentionnées auparavant. Au
lieu de cela, l'objectif est d'identifier et d'étudier les cas où la réponse à ces problèmes
profiterait à répondre à la question de recherche le plus.
La question de recherche ci-dessus englobe un certain nombre de questions de recherche
spécifiques :
•
•
•
•
•
•
•
•
Le mécanisme de négociation et de communication à adopter pour permettre
aux agents d’envisager de communiquer entre eux
La nature du framework /plateforme à laquelle les agents vont opérer.
La nature des algorithmes DM qui vont bénéficier de l’approche multi-agents
(pas tout les algorithmes sont compatible avec le SMA).
L’utilisation d’un mécanisme d’ajout /suppression d’agents ?
Le mécanisme pour rendre le système MADM extensible C.-A-D. il va accepter
d’incorporer de nouvelles sources de données et de techniques de DM.
La technique utilisée pour supporter le partage de ressources et d’expertise.
Le mécanisme qui va permettre la protection de la confidentialité.
Le mécanisme qui va permettre de régler le problème d’évolutivité des
algorithmes de DM.
Cette thèse présente une investigation de la vision de MADM. Elle a essaie de
proposer des approches et des méthodologies afin de construire un système MADM.
L'ensemble de notre travail est résumé dans ce mémoire de Magistère qui est composé de
quatre chapitres :
Le premier chapitre introduit la notion de data mining, ainsi que les
différentes techniques data mining. Nous y présenteront également les
différents domaines d’application du data mining.
Le deuxième chapitre est consacré au domaine de la technologie agent et les
systèmes multi agents. Il présente les différentes architectures agents et les
domaines d’application d’un système multi-agent.
Nous consacrerons le troisième chapitre à l’etat de l’art des systèmes de
data mining basés agents existants dans la littérature. Il y sera donné un
tableau comparatif de ces systèmes.
Dans le quatrième chapitre, nous présentons notre approche.il comporte
deux parties : une partie théorique qui explique l’approche proposée et une
deuxième qui est l’implémentation des idées proposées dans cette thèse.
Enfin, le mémoire se termine par une conclusion générale qui résume le
travail réalisé et donne quelques perspectives de recherche.
Chapitre 1
Data Mining
1.1 Introduction
Au cours des deux dernières décennies, notre capacité à collecter et stocker des
données a largement dépassé notre capacité d'analyser, synthétiser et extraire la
«connaissance» de ces données. L'expression Knowledge Discovery in Databases
(KDD) désigne le processus complexe d'identification des modèles valides, nouveaux,
potentiellement utiles et compréhensibles [1].
Le Data Mining est un Processus ou méthode qui extrait des connaissances«
intéressantes » ou des motifs (patterns) à partir d’une grande quantité de données.
Le but du Data Mining est de découvrir des relations cachées dans les données,
spécialement quand les données proviennent de bases de données différentes. La
découverte de ces relations peut permettre par exemple de réaliser des campagnes
de publicité ciblées, ou de prédire comment la production se vendra.
Ainsi, à partir de données stockées (le plus souvent stockées dans de grand
entrepôts de données encore appelés (Datawarehouse), et grâce aux algorithmes
issus de domaines divers (bases de données, intelligence artificielle, statistiques), on
peut tirer des solutions à des problèmes d’origines diverses.
1.2 Définition du Data Mining
Le datamining se réfère à une étape particulière dans le processus KDD. Il se
compose d'algorithmes particuliers qui produisent une énumération particulière des
patterns (modèles) a partir des données traitées. En d'autres termes le datamining
[3] traite le problème de l'analyse des données d'une manière évolutive.
3
Le Data Mining est un sujet qui dépasse aujourd’hui le cercle restreint de la
communauté scientifique pour susciter un vif intérêt dans le monde des affaires. La
littérature spécialisée et la presse ont pris le relais de cet intérêt et proposent de fait
une pléthore de définitions générales du Data Mining : [3]
•
•
•
Le Data Mining est un Ensemble de techniques et de méthodes du
domaine des statistiques, des mathématiques et de l’informatique
permettant l’extraction, à partir d’un important volume de données
brutes, de connaissances originales auparavant inconnues. Il s’agit de
« fouilles » visant à découvrir « de l’information cachée » que les
données renferment et que l’on découvre à la recherche d’associations,
de tendances, de relations ou de régularités.[4]
Le Data-Mining est un processus d’extraction automatique
d’informations prédictives et descriptives à partir de grandes bases de
données. [6]
Appelé aussi ‘’ knewledge discovery in databases ‘’ (KDD), est une
approche multidisciplinaire mariant l’intelligence artificielle, les
statistiques et les bases de données et qui permet la découverte
4
automatique de la connaissance utile dans les bases de données
volumineuses structurées non structurées. [7]
•
Le Data Mining est un processus inductif, itératif et interactif dont
l’objectif est la découverte de modèles de données valides, nouveaux,
utiles et compréhensibles
dans de larges Bases de
Données. [8]
Figure 2. Data Mining: union de disciplines variées [4]
1.3 Motivation du Data Mining
Explosion des données
masse importante de données.
o bases de données très larges (very large databases)
(VLDB).
données multi dimensionnelles (milliers d’attributs).
o bases de données denses.
inexploitables par les méthodes d’analyse classiques.
collecte de masses importantes de données (gbyte/heure).
o données satellitaires, simulation scientifiques…. etc.
besoin de traitement en temps réel de ces données. [3]
Amélioration la productivité
forte pression due à la concurrence du marché.
5
brièveté du cycle de vie des produits.
besoin de prendre des décisions stratégiques efficaces.
o
exploiter le vécu (données historique) pour prédire le future
et anticiper le marché. [3]
Croissance en puissance/cout des machines capables
de supporter de gros volumes de données.
d’exécution le processus intensif d’exploration.
Hétérogénéité des supports de stockage. [3]
1.4 Tâches du Data Mining
On peut lister six grandes fonctionnalités qui sont la base de tout ce que l’on peut
faire quand on veut extraire ses données :
1. La classification
2. L’estimation
3. La prédiction
4. Le groupement par similitude
5. L’analyse des clusters
6
Figure 3. Tâches du Data Mining
1.4.1 Classification
La classification est la tâche la plus commune du Data Mining et qui semble être
une obligation humaine. Afin de comprendre notre vie quotidienne, nous sommes
constamment classifiés, catégorisés et évalués. [9]
La classification consiste à étudier les caractéristiques d’un nouvel objet pour lui
attribuer une classe prédéfinie. Les objets à classifiés sont généralement des
enregistrements d’une base de données, la classification consiste à mettre à jour
chaque enregistrement en déterminant un champ de classe. La tâche de
classification est caractérisée par une définition de classes bien précise et un
ensemble d’exemples classés auparavant. L’objectif est de créer un modèle qui peut
être appliqué aux données non classifiées dans le but de les classifiées. [10]
7
Dans la classification il existe deux familles : [11]
1.4.1.1
•
Classification non supervisée
Établir des représentations des données dans des espaces à faible
dimensions pour y lire des typologies d’individus
Nombre de classes initialement inconnu
•
Méthodes :
Analyse en composante principales (ACP), …
1.4.1.2
•
Classification supervisée (apprentissage)
Obtenir un critère de séparation destiné à prédire l’appartenance à une
classe
Nombre de classes initialement connu
•
Méthodes :
Analyse discriminante
k-Plus proches voisins
Arbre de décision
Réseau de neurones
Quelques exemples de l’utilisation des tâches de classification dans les domaines
de Recherche et commerce sont les suivants :
· Déterminer si l’utilisation d’une carte de crédit est frauduleuse.
· Diagnostiquant si une certaine maladie est présente. [12]
· Déterminer quels numéros de téléphone correspondent aux fax. [9]
· Déterminer quelles lignes téléphoniques sont utilisées pour l’accès à Internet. [10]
8
2.4.1 Estimation
L’estimation est similaire à la classification à part que la variable de sortie est
numérique plutôt que catégorique. En fonction des autres champs de
l’enregistrement.
L’estimation consiste à compléter une valeur manquante dans un champ
particulier. Par exemple on cherche à estimer La lecture de tension systolique d’un
patient dans un hôpital, en se basant sur l’âge du patient, son genre, son indice de
masse corporelle et le niveau de sodium dans son sang. La relation entre la tension
systolique et les autres données vont fournir un modèle d’estimation. Et par la suite
nous pouvons appliquer ce modèle dans d’autres cas. [9] [12]
Quelques exemples de l’utilisation des tâches d’estimation dans les domaines de
recherche et commerce sont les suivants :
· Estimer le nombre d’enfants dans une famille [9]
· Estimant le montant d'argent qu’une famille de quatre membres choisis
aléatoirement dépensera pour la rentrée scolaire. [11]
· Estimer la valeur d'une pièce immobilière. [9]
1.4.3 Prédiction
La prédiction est la même que la classification et l’estimation, à part que dans la
prédiction les enregistrements sont classés suivant des critères (ou des valeurs)
prédites (estimées).
La principale raison qui différencie la prédiction de la classification et l’estimation est
que dans la création du modèle prédictif on prend en charge la relation temporelle
entre les variables d’entrée et les variables de sortie. [9]
Quelques exemples de l’utilisation des tâches de prédiction dans les domaines de
recherche et commerce sont les suivants :
· Prévoir le prix des actions dans les trois prochains mois. [9]
· Prévoir le champion de la coupe du monde en football en se basant sur la comparaison des
statistiques des équipes.
· Prévoir quels clients va déménager dans les 6 mois qui suivent. [12]
9
1.4.4 Groupement par similitude
Le groupement par similitude consiste à déterminer quels attributs “vont ensemble”.
La tâche la plus répandue dans le monde du business, où elle est appelée l’analyse
d’affinité ou l’analyse du panier du marché, est l’association des recherches pour
mesurer la relation entre deux et plusieurs attributs. Les règles d’associations sont
de la forme “Si antécédent, alors conséquent”.
Quelques exemples de l’utilisation des tâches du groupement par similitude dans les
domaines de recherche et commerce sont les suivants :
· Trouver dans un supermarché quels produits sont achetés ensemble et quels sont
ceux qui ne s’achètent jamais ensemble.
· Déterminer la proportion des cas dans lesquels un nouveau médicament peut
Générer des effets dangereux. [12]
1.4.5 Analyse des Clusters
Le clustering (ou la segmentation) est le regroupement d’enregistrements ou des
observations en classes d’objets similaires ; un cluster est une collection
d’enregistrements similaires l’un à l’autre, et différents à ceux existants sur les
autres clusters. La différence entre le clustering et la classification est que dans le
clustering il n’y a pas de variables sortantes. La tâche de clustering ne classifie pas,
n’estime pas, ne prévoit pas la valeur d’une variable sortantes. Au lieu de cela, les
algorithmes de clustering visent à segmenter la totalité de données en des sousgroupes relativement homogènes. Ils maximisent l’homogénéité à l’intérieur de
chaque groupe et la minimisent entre ces derniers. [12]
Les algorithmes du clustering peuvent être appliqués dans des différents domaines,
tel que :
· Découvrir des groupes de clients ayants des comportements semblables.
· Classification des plantes et des animaux étant donné leurs caractéristiques.
· Segmentation les observations des épicentres pour identifier les zones
dangereuses. [14]
10
1.5 Évaluation du résultat
L’évaluation du résultat permet d’estimer la qualité du modèle, c'est-à-dire sa
capacité à déterminer correctement les valeurs qu’il est censé avoir apprises sur des
cas nouveaux. Cette évaluation prend généralement une forme qualitative et une
forme quantitative.
L’évaluation qualitative : permet d’illustrer le poids ou l’influence d’un
facteur. Elle peut se faire sous forme graphique. Dans ce cas, elle améliore
la compréhension des résultats.
L’évaluation quantitative : utilise des techniques et notions telles que
l’intervalle de confiance, pour fiabiliser les conclusions apportées sur des
données futures.
La validation par des tests
Après avoir construit un modèle, il est possible d’en tester la pertinence
sur la base d’apprentissage. Cela étant, il faut éviter d’ « apprendre » les
données plutôt que le modèle.
1.6 Techniques du Data Mining
Un nombre considérable d'algorithmes ont été développés pour effectuer des tâches
DM, dans de nombreux domaines de la science [2]. Parmi les tâches DM typiques il y
a la classification (la génération des classificateurs qui peuvent être utilisés pour
attribuer à chaque enregistrement d'une base de données un ensemble prédéfini de
classes), de clustering (trouver des groupes d'enregistrements de base de données
qui sont semblables selon certaines mesures définies par l’utilisateur) ou ARM
(détermination de règles d'implication d'un sous-ensemble des attributs
d'enregistrement de base de données). Les deux sections suivantes examinent deux
techniques d'exploration de données, les règles d’associations et la classification, qui
ont été utilisés pour conduire et concentrer la recherche présentée dans cette thèse.
1.6.1 Association Rule Mining
La tâche la plus importante de DM est de trouver des modèles de données qui
montrent des associations entre les différents éléments de la base de données. Ceci
11
se concentre généralement sur des données transactionnelles telque une base de
données, les achats d’un magasin. Cette tâche est connue sous le nom Association
Rule Mining (ARM), et elle a été introduite par Agrawal et al. [25]. Les Règles
d’association identifiées les collections d'attributs de données qui sont
statistiquement liées.
Les règles associatives sont des règles extraites d’une base de données
transactionnelles et qui décrivent des associations entre certains éléments. Elles sont
fréquemment utilisées dans le secteur de la distribution des produits où la principale
application est l'analyse du panier de la ménagère (Market Basket Analysis) dont le
principe est l’extraction d'associations entre produits sur les tickets de caisse. Le but
de la méthode est l'étude de ce que les clients achètent pour obtenir des
informations sur qui sont les clients et pourquoi ils font certains achats. La méthode
recherche quels produits tendent à être achetés ensemble. La méthode peut être
appliquée à tout secteur d'activité pour lequel il est intéressant de rechercher des
groupements potentiels de produits ou de services : services bancaires, services de
télécommunications, par exemple. Elle peut être également utilisée dans le secteur
médical pour la recherche de complications dues à des associations de médicaments
ou à la recherche de fraudes en recherchant des associations inhabituelles. Une règle
d'association est de la forme : Si condition alors résultat. Dans la pratique, nous
nous limitons généralement à des règles où la condition se présente sous la forme
d’une conjonction d’apparition d’articles et le résultat se constitue d’un seul article.
Par exemple, une règle à trois articles sera de la forme : Si X et Y alors Z ; règle dont
la sémantique peut-être énoncée : Si les articles X et Y apparaissent simultanément
dans un achat alors l'article Z apparaît.
Avantages et inconvénients
· Avantages
_ Résultats clairs : règles faciles à interpréter.
_ Simplicité de la méthode et des calculs (calculs élémentaires des fréquences
d’apparition).
_ Aucune hypothèse préalable (Apprentissage non supervisé).
_ Méthode facile à adopter aux séries temporelles.
· Inconvénients
_ la méthode est coûteuse en temps de calcul.
12
_ Qualité des règles : production d’un nombre important de règles triviales (des
règles évidentes qui, par conséquent, n'apportent pas d'information) ou inutiles (des
règles difficiles à interpréter provenant de particularités propres à la liste des achats
ayant servie à l'apprentissage).
_ Méthode non efficace pour les articles rares.
Une règle d'association est de la forme X ⇒ Y. Le mécanisme le plus couramment
utilisé pour déterminer la pertinence des règles d’association générées sont le
soutien (support) et la confiance (confidence). Pour calculer la confiance d’une regle
d’association il faut calculer la probabilité conditionnelle de Y sachant X, Pr (Y | X), et
le support de la règle est la probabilité de X et Y, Pr (X et Y). Ici la probabilité est
calculée selon la fréquence observée d’un élément dans l'ensemble de données. Le
soutien et la confiance d'une règle sont définis comme suit :
Utilisation le soutien et la confiance, un problème typique lors de la génération de
règles d’association peut être décrit comme suit. Compte tenu d'une base de
données des transactions, un seuil de confiance minimal et un seuil minimum de
soutien est définit à l’ avance, après il faut trouver toutes les règles d'association
dont la confiance et le soutien sont au-dessus des seuils correspondants.
La partie qui exige beaucoup de calcules dans le ARM est lors de l’identification des
ensembles les plus fréquents dont le soutien (le nombre d’occurrence de données)
dépasse un certain seuil. Les règles d’associations souhaitées sont ensuite générées
à partir des ensembles d’items fréquents identifiés. Le problème ici est que le
nombre d’ensembles possibles est exponentielle au nombre d'articles. Pour cette
raison, presque toutes les méthodes tentent de compter le soutien d’itemsets
candidats qui sont identifiés comme des ensembles fréquents possibles.
La plupart des algorithmes comportent plusieurs scannes de la source de données,
dans chacune desquelles le support pour un ensemble d'ensembles d'éléments
candidats est compté. La performance de ces méthodes dépend clairement à la fois
de la taille de la base de données d'origine et sur le nombre de candidats étant
considérés. Le nombre de candidats possibles augmente avec l'augmentation de la
densité de données (nombre d'éléments présent dans un enregistrement) et à la
diminution des seuils de soutien (support). Dans des domaines médicaux tels que
l'épidémiologie, où nous pouvons être à la recherche des règles qui associent des
éléments plutôt rares dans les données très densément peuplées. Les seuils faibles
13
de soutien nécessaires peuvent conduire à de très grands ensembles de candidats.
Ces facteurs motivent une recherche continue d'algorithmes efficaces. Certains de
ces algorithmes sont examinés dans le paragraphe suivant.
1.6.1.1 Algorithmes ARM de base
Il y a eu de nombreux algorithmes développés pour l’extraction des modèles les plus
fréquents, qui peuvent être classés en deux catégories :
1. Générer des candidats et tester
2. Méthodes de croissance de modèle
La première catégorie comme l’algorithme apriori [25], est directement basé sur une
propriété importante des motifs fréquents : Si un modèle (set) avec k éléments n'est
pas fréquent, aucun de ses super-modèles (super sets) avec (K + 1) ou plusieurs
éléments ne peuvent être fréquents. Depuis son introduction en 1994, l'algorithme
Apriori, développé par Agrawal et Srikant [25], a été la base de nombreux ARM
ultérieure et / ou des algorithmes liés a ARM. Dans [25], il a été observé que les
règles de l'association peuvent être générées carrément d'un ensemble de motifs
fréquents. L’algorithme Apriori identifie de manière itérative les items fréquents en
employant la "propriété de fermeture vers le bas" d'itemsets dans la génération des
itemsets candidats, où un candidat (éventuellement fréquent) itemset est confirmée
fréquent que lorsque tous ses sous-ensembles sont identifiés comme étant
fréquents dans le passage précédent. L'algorithme Apriori est présenté au tableau
2.1.
L'algorithme Apriori effectue des scans répétés de la base de données, calcul
successivement le support pour l’ensemble d'éléments individuels, les couples,
triplés, etc. A la fin de chaque scan, les ensembles qui ne parviennent pas à atteindre
14
le seuil de support requis sont éliminés, et les candidats à la prochaine passe sont
construits a partir des ensembles restants (fréquents). Cette procédure garantit que
tous les ensembles fréquents seront trouvés. une approche candidat génération-ettest génère de manière itérative l'ensemble de motifs candidats de longueur (k + 1) à
partir de l'ensemble de motifs fréquents de longueur k et vérifie leur fréquence
d'apparition correspondant dans la base de données.l’approche ‘’ candidategeneration-and-test ’’ génère de manière itérative l'ensemble de motifs candidats de
longueur (k + 1) à partir de l'ensemble de motifs fréquents de longueur k et vérifie
leur fréquence d'apparition correspondant dans la base de données.
L'algorithme Apriori obtient une bonne réduction de la taille des ensembles de
candidats. Toutefois, quand il existe un grand nombre de motifs fréquents et / ou
des motifs longs, les méthodes de génération-et-essai candidats ont tendance à
produire un très grand nombre de candidats et exigent beaucoup de balayages de la
base de données pour calculer la l’occurrence des éléments. Si l'ensemble est très
grand, les multiples analyses de bases de données nécessaires peuvent être l'un des
facteurs limitant de l'algorithme Apriori.
15
1.7 Conclusion
Dans ce chapitre nous avons présenté au mieux la notion de Data Mining. Plusieurs
définitions ont été étudiées selon plusieurs points de vue.
Le Data Mining est une technologie nouvelle et puissante qui donne la possibilité aux
entreprises de se concentrer sur les informations les plus importantes dans leurs
Data Warehouses. Les outils du Data Mining peuvent prédire les futurs tendances et
actions, permettant de prendre les bonnes décisions.
Dans le chapitre qui suit, nous allons présenter le paradigme agent.
16
Chapitre 2
Agent et système
Multi-Agents
Introduction
Les systèmes multi-agents (SMA) proposent une approche nouvelle pour le développement
de systèmes à plusieurs composantes autonomes pouvant coopérer entre elles. Puisant ses
fondements dans de nombreuses disciplines, ce domaine de recherche est extrêmement
riche. Mais cette richesse induit une grande complexité et une grande multiplicité des
approches proposées qui conduit à de très nombreux modèles d’agents, de
l'environnement, des interactions, de l'organisation. Ces modèles sont d'ailleurs souvent
combinés au sein d’un même système multi-agent. [35]
Dans ce chapitre nous allons aborder présentons le paradigme agent. Avant de commencer,
il serait intéressant de comprendre le concept agent, les caractéristiques et typologies
d’agents, nous présenterons par la suite le système multi agent, les architectures et les
domaines d’application.
Définition d’un agent
Un agent est un programme informatique qui est situé dans un environnement et qui est
doté de comportements autonomes (action) lui permettant d’atteindre, dans cet
environnement, les objectifs qui lui ont été fixés lors sa conception. [35]
Un agent logiciel est une entité autonome capable de communiquer, disposant d'une
connaissance partielle de ce qui l'entoure et d'un comportement privé, ainsi que d'une
capacité d'exécution propre. Un agent agit pour le compte d'un tiers (un autre agent, un
utilisateur) qu'il représente sans être obligatoirement connecté à celui-ci, il réagit et
interagit avec d'autres agents. [36]
L’agent est capable :
d’agir dans un environnement,
de communiquer directement avec d’autres agents,
Est mue par un ensemble de tendances,
De posséder des ressources propres,
de percevoir son environnement,
de posséder des compétences et d’offrir des services,
De comportements tendant à satisfaire ses objectifs,
Eventuellement de se reproduire,
De percevoir son environnement mais de façon limitée, Ne disposant que d’une
représentation partielle de cet environnement,
15
Figure 4. La structure d’un agent [36]
Caractéristiques d’agent
Un agent doit être :
•
•
•
•
•
•
•
Autonome : l’agent est capable d’agir sans l’influence ou l’intervention d’un humain
ou agent et contrôle ses propres actions ainsi que son état interne ;
Proactif : l’agent doit exhiber un comportement opportuniste ;
Social : l’agent doit être capable d’interagir avec les autres agents notamment
quand la situation l’exige ;
Coopération : capable de faire la coordination avec d’autres agents pour atteindre
l’objectif commun ;
Mobilité : l’agent peut être mobile, capable de se déplacer vers un autre
environnement ;
Rationalité : l’agent est capable d’agir en fonction de ses objectifs internes et ses
connaissances ;
Apprentissage : l’agent est capable d’évoluer et d’apprendre ; en fonction de cet
apprentissage, il est capable de changer de comportement. [37]
Typologie d’agents
Deux grandes catégories d’agents peuvent être distinguées : Les agents réactifs et Les
agents cognitifs
Les agents réactifs
Les agents réactifs sont les plus sommaires. Ils ont un comportement du type « stimulus –
réponse ». L’agent réactif ne possède pas une représentation complète de son
environnement .il n’est pas capable de tenir compte de ses actions passées.
16
Les systèmes multi-agents constitués uniquement d’agents réactifs possèdent un grand
nombre d’agents. La convergence du comportement de l’ensemble des agents vers un état
décisionnel stable n’est pas forcément assurée, et si un état stable est atteint, il n’est pas sur
qu’il s’agisse de la solution optimale.
Donc Agent réactif sous entend :
pas de représentation explicite de l'environnement.
pas de mémoire de son histoire, ni de but explicite.
comportement de type stimulus réponse.
mode "biologique "d'organisation.
grand nombre d'agents (>100), homogènes.
La structure du système émerge des comportements et non d'une volonté
d'organisation. [37]
Les agents cognitifs
Les agents cognitifs sont plus évolués. Ils sont résultats directs des recherches menées
dans le domaine de l’intelligence artificielle. Les agents cognitifs ont une représentation
globale de leur environnement et des autres agents avec lesquels ils communiquent. Ils
savent tenir compte de leur passé et s’organisent autour d’un mode social d’organisation.
Les systèmes multi-agents constitués uniquement d’agents cognitifs sont composés d’un
nombre limité d’agents. Ils réclament des ressources plus importantes que celles systèmes
d’agents réactifs. La convergence du système vers un état décisionnel stable n’est pas non
plus assurée par l’utilisation de ce type d’agents, mais il permet de résoudre des problèmes
plus complexes et nécessitant une plus grande abstraction.
Donc Agent cognitif impliqué :
•
•
•
représentation explicite de l'environnement et des autres agents.
Tenue de compte de son passé et dispose d'un but explicite.
mode "social" d'organisation (planification, engagement).
petit nombre d'agents (10/20), hétérogènes.
Les relations entre agents s'établissent en fonction des collaborations nécessaires à
la résolution du problème. [37]
Agents intelligents : qui combinent les caractéristiques d’autonomie, coopération et
d’adaptabilité. Ils sont capables de négocier avec d’autres agents et modifier leurs
connaissances. Le terme d’agent intelligent est souvent utilisé pour caractériser des
agents dotés de la capacité d’apprentissage.
Agents collaborant : ils sont autonomes et coopérants, mais leurs adaptabilité ne va
pas jusqu’à l’adaptation et la modification des connaissances, les agents
collaborant sont surtout utilisé dans les domaines qui nécessitent une
décentralisation (exemple la maintenance de réseau).
Agents interfaces : comme son nom l’indique, ils sont utilisés surtout dans les
logiciels bureautiques. Leur fonction consiste à capturer les actions de l’utilisateur.
17
•
Agents informations : ils sont dédiés à la recherche d’information, principalement
sur internet. Ces agents possèdent une grande autonomie. [37]
Systèmes d’agents cognitifs
Systèmes d’agents réactifs
Représentation explicite de l’environnement
Pas de représentation explicite
Peut tenir compte de son passé
Pas de mémoire de son histoire
Agents complexes
Fonctionnement Stimulus/action
Petit nombre d’agents
Grand nombre d’agents
Tableau 1. Comparaison entre agents cognitifs et agents réactifs [38]
Système multi-agents
Est un ensemble d’entités autonomes interagissant dans un environnement.
Un système multi-agent (SMA) est un système composé d'un ensemble d'agents, situé dans
un certain environnement et interagissant selon certaines relations. Un agent est une entité
caractérisée par le fait qu'elle est, au moins partiellement, autonome. Elle peut-être un
processus, un robot, un être humain, etc. [29]
Figure 5. Environnement d’un système multi agents
18
Pourquoi on utilise d’un SMA ?
Les systèmes multi-agent présentent une série d’avantages :
Système dynamique, les agents sont structurés afin d’exercer une influence sur
chacun, pour faire évoluer le système dans son ensemble.
Agents sont nombreux au cœur du système.
Facilité du control au niveau de la modification du comportement des agents soit à
partir de la suppression ou l’ajout des actions.
la possibilité de décomposer le problème en sous parties et résoudre chacune
indépendamment pour l’obtention de la solution.
Caractéristiques d’un système multi-agents
Les systèmes multi-agents sont généralement caractérisés par :
•
La décentralisation des données.
•
Chaque agent a des informations ou des capacités de résolution de problèmes
limitées, ainsi l’agent à un point de vue partiel.
•
Il n’y a aucun contrôle global du système multi-agents.
•
La coopération, la coordination et la communication entre les différents agents du
système est possible.
•
Le calcul est asynchrone. [27]
Organisation des agents
Communication entre agents
Les agents communiquent entre eux à l’aide de protocoles de communication. Leur
communication peut être scindée en deux types :
•
Partage d’information
•
par envoie de message.
En mode partage d’information, toute l’information sur le système est centralisée dans une
structure de données globale. Les agents viennent lire et écrire dans cette base de données
pour faire évoluer le système qui contient initialement les données du problème. Ce type de
communication, appelé « tableau noir » ou « blackboard », fait l’objet de nombreuses
publications qui ne seront pas détaillées ici. D’apparence assez simple, ce mode de
communication centralisé implique que les agents effectuent un grand nombre de requêtes
sur un seul et unique site central. De plus, le fonctionnement global du système n’est pas
purement multi-agents, puisque le comportement d’un des agents est dépendant du
contenu d’une base de connaissances commune. [27]
19
Figure 6. Communication entre agents [27]
Les systèmes multi-agents fondés sur la communication par messages se caractérisent par
le fait que chaque agent possède une représentation propre et locale de l’environnement
qui l’entoure. Chaque agent va alors interroger les autres agents sur cet environnement ou
leur envoyer des informations sur sa propre perception des choses. La communication se
fait, soit en mode point à point, soit en diffusion. Cette communication permet de réaliser
un véritable système multi-agents, puisque chaque agent possède sa propre base de
connaissance. Par contre, il est plus difficile d’assurer une convergence globale du système.
De plus, dans un environnement distribué, la communication entre un grand nombre
d’agents peut très vite amener à une saturation du réseau compte tenu de la grande
quantité de messages échangés.
Les agents peuvent interagir soit en accomplissant des actions linguistiques
communiquant entre eux), soit en accomplissant des actions non-linguistiques
modifient leur environnement. En communiquant, les agents peuvent échanger
informations et coordonner leurs activités. Dans les SMA, deux protocoles principaux
été utilisés pour supporter la communication entre agents :
(en
qui
des
ont
Le kit de développement des agents
Dans cette section, on va aborder le kit de développement de l'agent sélectionné, JADE
La plateforme JADE :
JADE (Java Agent Development Framework) est un environnement de développement
d’agent implémenté totalement dans le langage JAVA. Il facilite la mise en place d’un
système multi-agent (SMA) répondant aux spécifications FIPA (Foundation for Intelligent
Physical Agents) à travers un ensemble d’outils.
La plateforme JADE inclut des composants qui contrôle un système multi-agent :
20
•
•
•
Un runtimeEnvironment: l’environnement où les agents peuvent vivre, il doit être
activé pour pouvoir lancer les agents.
Une librairie de classes : que les développeurs utilisent pour écrire leurs
programmes.
Une suite d’outils graphiques : qui facilitent la gestion et la supervision de la
plateforme des agents.
Chaque instance du JADE est appelée conteneur « container », elle peut contenir plusieurs
agents, Un ensemble de conteneurs constitue une plateforme, Chaque plateforme doit
inclure un conteneur spécial appelé « main-container » et tous les autres conteneurs
s'enregistrent auprès de celui-là dès leur lancement, Un « main-container » contient trois
agents spéciaux appelés AMS, DF et ACL qui sont créés automatiquement au lancement du «
main-container ». [22]
Figure 7 Plate-forme JADE [22]
Langage de communication KQML
"KnowledgeQuery and Manipulation Language" (KQML) : est un langage "extérieur" de
haut niveau pour les agents, orienté sur l'échange des messages, indépendant de la syntaxe
et de l'ontologie du contenu des messages.
Le langage KQML est indépendant aussi du mécanisme de transport (TCP/IP, email, objets
CORBA etc.) et du langage utilisé pour coder le contenu des messages (e.g. Prolog, STEP,
SQL, KIF etc.).
Le langage KQML spécifie le format des messages échangés par les agents, sans être
concerné par le format de l'information transportée. Un message KQML peut être vu comme
un objet, défini par l'information clé, la 'performative', (la classe) et un nombre.
21
Langage de communication ACL
Ces dernières années, KQML semble perdre du terrain au profit d’un autre langage plus riche
sémantiquement ACL. Un langage mis en avant par la FIPA qui s’occupe de standardiser les
communications entre agents. ACL est basé également sur la théorie du langage qu’a
bénéficié d’une manière significative des résultats de recherche de KQML.
Si toutefois, les deux langages se rapprochent au niveau des actes du langage, il n’en est rien
au niveau de la sémantique et il semble qu’un grand soin a été apporté au niveau d’ACL.
Dans notre système, nous proposons l’utilisation du langage ACL pour formuler les messages
échangés entre les différents agents.
Coopération entre agents
La coopération entre les différents agents est un problème difficile. Les agents ont une
connaissance plus ou moins précise des autres agents du système. Ils doivent représenter les
compétences des autres agents, mais également les tâches que ces derniers sont en train de
réaliser.
Les méthodes de répartition des tâches entre les différents agents est un problème
majeur qui fait l’objet de nombreuses études, notamment dans le domaine de calcul
répartit. Chaque problème doit être fractionné et réparti entre les différents agents qui
produisent des solutions partielles qui doivent ensuite être fusionnées pour obtenir la
solution globale.
Les modèles d’allocation des tâches peuvent être soit centralisés, un agent se charge alors
de décomposer le problème et de le répartir, soit distribués, chaque agent est alors capable
de décomposer le problème et de répartir les différentes tâches qui en résultent. Le modèle
d’allocation distribué permet une meilleure utilisation des ressources des stations de travail
mais la cohérence globale du système est plus compliquée à maîtriser.
La collaboration entre agents peut parfois être de type conflictuel. Dans ce cas, les agents
peuvent avoir des buts identiques mais des vues divergentes voir totalement opposées. Les
conflits entre les différents agents peuvent être résolus de deux manières différentes :
Grâce à un contrôle centralisé qui se charge, en dernier lieu, de prendre la décision. Par
négociation entre les différents agents en conflits.
Si le principe de la négociation semble plus intéressant pour faire émerger des solutions
innovantes, ce choix pose d’énormes difficultés notamment dues aux limitations
linguistiques des agents et à une trop longue convergence de la négociation quand les
conflits d’intérêts sont trop importants.
Domaine d’applications des systèmes multi-agents
Il y a plusieurs domaines d'application pour les applications agents dûes au fait que les
architectures basés sur les agents fournissent une manière bien particulière afin d'aborder
22
des problèmes rapidement. C'est pour cette raison que les agents sont largement utilisés
dans les domaines suivants :
•
L'Énergie
la gestion des réseaux, le support d'un centre de crise.
•
L'Industrie
L’automatisation des processus et de la production, la logistique, les robots
coopératifs, la maison intelligente.
•
La Communication (y compris télécommunication)
La gestion de réseaux, le commerce électronique, la maison intelligente, les services
du réseau personnel, le calcul mobile.
•
L'Information
L’assistance personnelle, la recherche d'Information, la gestion du Workflow.
La Santé
La supervision des malades, les systèmes de support.
•
La transportation
La logistique, le support de la mobilité, l'information du voyage.
•
Les Composants
L’automatisation de la production, les smart cartes intelligentes.
23
Conclusion
Dans ce chapitre, nous avons présenté les principes de la technologie agent. Nous avons vu
les caractéristiques des systèmes multi agents, en faisant sortir l’aspect coordination,
coopération, négociation.
Nous avons terminé ce chapitre par la présentation de quelques domaines d’application
pour les systèmes multi agents.
Le prochain chapitre abordera le Data Mining distribué, qui nous permettra de voir
comment extraire les connaissances à partir de données distribuées, ou l’approche multi
agents est combinée au domaine du Data Mining donnant naissance à une nouvelle
discipline appelée le Data Mining basé agents.
24
Chapitre 3
Etude des systèmes
MADM
25
Introduction
Ces dernières années, plusieurs chercheurs ont été impliqués dans la recherche sur la
technologie des agents et le Data Mining. Un effort a été activé vers l'élimination de la
frontière entre les deux technologies, c'est l'interaction et l'intégration entre la technologie
des agents et le Data Mining qui peut contribuer le plus. La combinaison entre les agents et
le Data Mining est entraînée par difficultés rencontrées par les deux communautés, et la
nécessité de développer des approches plus avancées de traitement de données, et des
systèmes plus intelligents. [24]
Motivation pour le mariage Data Mining-SMA
La technologie de datamining est apparue comme un moyen pour identifier les modèles et
les tendances cachés dans de grandes quantités des données. La technologie Data Mining
adopte normalement une méthode d'intégration de données pour générer des entrepôts de
données, sur lesquels on rassemble toutes les données dans un site central, puis exécutez un
algorithme sur ces données pour en extraire des connaissances nouvelles. Toutefois, une
seule technique de Data Mining n'a pas été révéler approprié pour chaque domaine.
Techniques de Data Mining impliquant aussi l’environnement complexe que doit faire face
aux changements dynamiques dus aux changements qui s’opèrent dans le système, peuvent
affecter l'ensemble de la performance du système. La technologie des agent dont le but est
de traiter des systèmes complexes a révélé les possibilités d'améliorer les systèmes
distribués dans un certain nombre de façons. Les Systèmes multi-agents (SMA) sont souvent
des applications complexes qui nécessitent la résolution de problème distribué. Dans de
nombreuses applications, le comportement individuel et collectif des agents dépend des
données observées à partir de sources distribuées.
le datamining distribué est originaire de la nécessité a extraire des données a partir des
sources de données décentralisées .Le domaine de datamining distribué (DDM) traite les
défis dans l'analyse des données distribuées et ce qui permet d’offre de nombreuses
solutions algorithmiques pour effectuer différentes analyses de données et d’opérations de
datamining dans une approche fondamentalement distribués de manière a accorder une
attention particulière aux contraintes de ressources .Depuis que les systèmes multi-agents
sont souvent distribués et les agents ont des caractéristiques proactives et réactives qui sont
très utiles pour la technologie des agents . [24]
26
Rôle des agents dans le Data Mining
Dans le Data Mining basé agents, un agent est une entité logicielle caractérisée par les
capacités suivantes :
1/ interagir avec la source de donnée et/ou autres agents,
2/ recevoir/ collecter des donnée brutes,
3/ traiter les données d’une ou plusieurs sources de données lui permettant de produire des
connaissances,
4/ coordonne ces actions avec les autres agents pour produire de la connaissance pertinente
et utile.
Un système Data Mining basé agents contribue positivement au processus Data Mining
dans plusieurs cas : [19]
Premièrement, un système DMBA garantie le parallélisme qui améliore la vitesse,
l’efficacité et la précision. La nature distribuée de système d’agents autorise l’exécution
parallèle de processus Data Mining sans se soucier du nombre de sources de donnée
distantes impliquées. Cela veut dire que les algorithmes conventionnels de Data Mining
peuvent encore être appliqués sur les données locales (relatives à l’agent) parce que
l’information au sujet d’autres données n’est pas nécessaire pour les opérations locales.
Ensuite les agents doivent collaborer pour intégrer les informations issues de nombreuses
sources locales.
Deuxièmement. Les concepts de l’agent fournissent aux utilisateurs d’un système de
Data Mining la capacité pour suivre progressivement le processus de découverte de la
connaissance en différents étapes par exemple un utilisateur peut vouloir visualiser le
modèle de connaissance obtenu par un agent particulier avant que l’intégration n’ait lieu.
Les détails rapportés a chaque étape dépend de la mise en ouvre du système BMBA
Un autre avantage d’adopter un système DMBA est la capacité d’agent de rassembler,
chercher et traiter de l’information au –delà d’une source de données. Ceci est possible
grâce à l’attribut de mobilité d’un agent logiciel. [19]
Problèmes du Data Mining basé agents
Bien qu’il offre le moyen pour faire le Data Mining distribué, le Data Mining basé agents
n’est pas épargné des problèmes inhérents aux techniques Data Mining, tel que données
manquantes, et le problème de scalabilité.
En outre, les systèmes Data Mining basé agents dans beaucoup de cas sont plus difficiles à
concevoir et à implémenter que les systèmes conventionnels de Data Mining.
27
Quelques systèmes existants du Data Mining basé agents
Le système PADMA
PADMA (Parallel Data Mining Agents) est un système Data Mining basé agents conçu pour
adresser le problème d’échelle (scaling problem) de Data Mining, ainsi que de prendre en
compte la distribution naturelle des données et de calculs. L’équipe qui a développé PADMA
suggère que la nature très distribuée des données et des calculs des environnements
Informatiques jouera un rôle important dans la conception de la prochaine génération des
systèmes de Data Mining basés agents. [18]
PADMA consiste en trois composants principaux qui sont :
•
Agents Data Mining,
•
Un facilitateur pour coordonner entre agents,
•
Une interface utilisateur.
Les agents Data Mining ont accès direct aux données pour en extraire de la connaissance, et
donc chaque agent a besoin de se spécialiser dans un domaine particulier des données de la
source avec la quelle il est rattachée.
Figure 8 Architecture PADMA
Chaque agent a son propre sous-système du disque et d’exécute des opérations d’entrées
sorties sur les données indépendamment des autre agents : c’est la clé à l’exécution
parallèle dans PADMA. Ainsi, les agents peuvent utiliser des techniques d’optimisation des
entrées sorties locales pour augmenter leur vitesse de traitement.
28
Les agents partagent les connaissances extraites à travers l’agent facilitateur. Ce dernier
présente le résultat du processus Data Mining à l’interface de l’utilisateur et achemine des
réactions de l’utilisateur (feedbacks) vers les agents Data Mining.
PADMA résout le problème d’échelle « scaling problem » en réduisant le volume de
communication inter-agents pendant le processus Data Mining.
Dans l’étape initiale de traitement d’une requête utilisateur, chaque agent exécute
indépendamment cette requête en interrogeant l’ensemble de données (dataset) contenu
dans la source de données qui lui est rattachée. Cette indépendance dans la phase initiale
permet d’accélérer le processus Data Mining. Après l’extraction de données par les agents,
le facilitateur les intègre dans un ensemble de données global.
De la même façon, PADMA analysent les données dans une Manière parallèle. Le facilitateur
ordonne les agents Data Mining pour exécuter un algorithme de clustring sur leurs sources
de données locales respectives. Après avoir analysé ses ensembles locaux de données,
chaque agent communique un « graphe de concepts » au facilitateur sans interagir avec les
autres agents. Le facilitateur combine alors les graphes concepts des agents et renvoie le
résultat à l’interface utilisateur.
L’équipe a testé PADMA pour le clustring de textes d’un corpus. Pour identifier des
relations entre textes basé sur les n-grams, sous la condition que les textes analysés ne
Contiennent pas d’erreur typographiques et orthographiques, le test a montré que PADMA
pourrait fournir des résultats de clustring satisfaisants avec un temps d’exécution
acceptable.
Le projet PADMA est encore sous recherche active. L’implémentation actuelle est appliquée
à des corpus de textes. L’équipe essaie de combiner l’utilisation d’algorithme de clustring
supervisé et non supervisé dans PADMA. [15]
Le système JAM
JAM (Java Agent for Meta-learning over distributed databases) les auteurs de JAM ont
identifié le besoin d’adapter au mettre à l’échelle (scalling) les algorithmes data mining aux
données très volumineuses. Ce système est motivé par la prise en charge des données
fondamentalement distribuées. [26]
Le système JAM est une collection de programmes Data Mining liés par un réseau de sites.
Chaque site consiste :
•
•
Une base de données locale
Un ou plusieurs agents Data Mining de base (base-learning agents)
29
•
•
•
•
Un meta-data mining agent ( meta learning agent)
Un fichier de configuration utilisateur local
une interface graphique utilisateur.
Un Learning agent est un programme Data Mining de classification
Les agents Data Mining de base calculent, dans un premier temps, des classifieurs de
base d’une collection de base de données distribuées d’une manière parallèle , puis les
agents meta-data mining intègrent ces classifieurs de base produits localement au niveau
des différents sites. De plus, JAM a un module central indépendant, appelé CFM
(Configuration File Manager) qui mémorise l’état actuel du système distribué et enregistre
une liste de liste de sites participants au processus Data Mining distribué.
Figure 9 Architecture JAM avec 3 sites de données
Sur chaque site de données , l’agent Data Mining local opère sur la base de données
locale pour calculer le classifieur de base et peut importer des classifieur depuis d’autres
sites et les combiner avec son propre classifieur local en utilisant l’agent meta-data
mining local . JAM résout le problème d’échelle (scaling problem) de Data Mining en
calculant un meta classifieur qui intègre tous les classifieurs de base. [26]
Le CFM assume un rôle passif pour l’entretien de la configuration du système. Il maintient
une liste de sites actifs qui coordonnent dans l’activité de meta Data Mining.
30
JAM implémente le CFM et les « learning agents » par des programmes java multi
threads alors que les « meta- learning agents » sont implémentés par des applets java
par ce qu’ils peuvent migrer d’un site à l’autre.
Les membres de l’équipe ont conçu initialement JAM dans une application de découverte de
fraudes dans les systèmes d’informations des banques. Cette expérimentation utilise le
système pour détecter les fraudes dans les transactions effectuées par les cartes de crédit.
Ils ont obtenu la meilleure performance en utilisant un réseau bayésien comme méta
classifieur qui pouvait détecter 80% des cas fraudes.
Le système n’exige pas le transfert de données à travers les différents sites durant
l’exécution, ce qui garantie la sécurité des données des sites participants.
Dans JAM les différents sites peuvent choisir des programmes Data Mining différents
(De classification), et il se peut que des programmes auraient des temps d’exécution
relativement lents si la taille de l’ensemble de données d’apprentissage est importante.[26]
Etude comparative des systèmes DMBA
Pour pouvoir comparer les systèmes de Data Mining basé agents présentés
précédemment, on se donne l’ensemble des critères suivant :
1) Tâches Data Mining supportées par le système ?
2) Communication entre agents pendant au après le processus Data Mining (pendant
au après l’extraction des connaissances) ?
3) Est-ce que le système peut réutiliser des algorithmes Data Mining existants sans
modification ?
4) Qui fait le choix de la technique et l’algorithme réalisant une tache données
5) Le système est –il interactif ?
31
Tableau comparatif
X
PADMA
JAM
Tâches supportées par le système ?
Analyse des clusters
classification
Communication avent, pendant, après
Après le processus data
Après le processus data
le processus data mining ?
mining
mining
de data mining ?
oui
oui
Qui fait le choix de la technique et
La technique et
L’utilisateur via le
l’algorithme réalisant une tache data
l’algorithme sont
fichier de configuration
mining ?
prédéterminés
utilisateur
Interactivité avec l’utilisateur ?
oui
Oui
Réutilisation des algorithmes
Tableau 2. Tableau comparatif des systèmes DMBA
Autre systèmes
le système PAPYRUS ,est un system développé avec java[39], il est destiné pour le data
mining distribué.il manipule les clusters et méta-clusters qui sont distribués sur des sites de
données hétérogenes.la particularité de ce system est l’utilisation des agents mobiles qui
sont capables de transporter les données, résultats intermédiaires et modèles de données
entre les clusters pour un traitement local, ce qui va diminuer le cout de communication sur
le réseau.
[40] passe en vue les systèmes de data mining basés sur les agents.l’article argumente le
choix de l’utilisation des agents dans le data mining distribué (autonomie, interactivité,
possibilité de sélection dynamique de source de données dans un environnement
dynamique) il propose le schéma KDEC qui a pour but minimiser les communications entre
les sites, ce qui va préserver la confidentialité des sites de données.
[42] selon cet article le vrai problème que les MADM (system multi-agent data mining)
rencontre est l’absence du développement d’une infrastructure et de protocoles qui
32
supportent les opérations de collaborations entre les agents lorsque ces derniers exécutent
les opérations d’apprentissage distribuées.
[41]les auteurs de cet article proposent un framwork abstrait dédie a l’apprentissage
distribué automatique(learning machine), il montre comment implémenter un système qui
utilise des mécanismes d’interaction et d’apprentissage complexe afin de rendre les agents
capables d’enrichir et d’améliorer leurs capacités d’apprentissage avec des informations qui
proviennent des autres agents d’apprentissages existant dans le système.
F-TRADE [44] utilise une approche dynamique qui permet l’intégration de sources de
données externes et aussi d’algorithmes d’extraction de connaissance. Ce système est dédié
aux opérateurs de marché (trader) et courtiers.
Ce système permet d’évaluer les stratégies financières sans aucun risque avant d’investir
dans un marché réel. Le système F-TRADE est composé de plusieurs services (1) service
commercial (2) service d’exploration de connaissance (3) service de données (4) service
d’algorithme (5) service de systeme .A fin de rassembler tous ces services dans un seul
système, F-TRADE fait appelle a la procédure Plug-and-Play.
Il y a d’autre system moins connus qui sont basés sur l’intégration SMA dans le data mining
tel que le system InfoSleuth[43] ,il y a aussi [45]system qui dédié aux achats sur Internet.
33
Conclusion
Dans ce chapitre nous avons présenté l’état de l’art des systèmes SMA existants .une étude
comparative des systèmes a été faite.
Le prochain chapitre abordera la conception et l’implémentation de l’approche proposée.
34
Chapitre 4
Conception du système MADM
L’approche MADM proposée dans cette thèse est celle d'une collection d’agents persistants,
autonomes mais aussi coopératifs qui opèrent sur un environnement distribué. Pour étudier
la nature du système MADM envisagée, son fonctionnement, son architecture, et les
problèmes de recherche rencontrés, on propose la conception d’un système qui reflète
notre approche proposée.
Pour réaliser le système MADM une méthodologie de développement a été adoptée qui
passe par la définition et l’analyse du problème jusqu’a la conception détaillée.
Ce chapitre fournit une description détaillée en termes de besoins de la conception et de
l'architecture d’un tel système. Ce chapitre commence par examiner les exigences qui
doivent être respectées pour réaliser un system MADM (section 4.1). Pour bien comprendre
et analyser les besoins, on commence par examiner un certain nombre de questions avant
de passer à des exigences structurelles et opérationnelles. Dans la section 4.2, on va
examiner tous les agents qui composent notre system MADM. Ensuite on va aborder les
protocoles qui permettent l’interaction entre les différents agents. Dans la section 4.4 on va
voir l'environnement de développement Java Agent (JADE) [17], le kit de développement
d’agent qui a été utilisé pour mettre en œuvre notre system multi agents. La mise en œuvre
du système MADM en utilisant JADE est détaillée dans la section 4.5. Enfin, la section 4.6
présente un résumé de ce chapitre.
4.1 Conception du système MADM
Développer un système de datamining qui utilise des agents spécialisés avec la possibilité de
communiquer avec des sources de données multiples, ainsi qu'avec d'autres agents,
nécessite une grande souplesse. Par exemple, l'ajout d'une nouvelle source de données
devrait simplement impliquer l'ajouter d’un nouvel agent et la publication de ses capacités
auprès des autres agents qui forment le system MADM, un processus qui devrait être facilité
de manière qu’il soit aussi simple que possible. Comme indiqué ci-dessus la motivation
principale pour la recherche et la mise en œuvre d'un système MADM était d’examiner de
prés les différents défis de recherche pour construire un system MADM.
La réalisation d’un systeme MADM nécessite la prise en compte d'un certain nombre de
questions. Ces questions sont détaillées dans cette section.
1. Plusieurs tâches d'exploration de données : le système MADM doit être en mesure
de fournir des mécanismes pour permettre la coordination des tâches d’extraction
de données. Le nombre et la nature des tâches de datamining que le système
MADM devrait être en mesure de répondre ne sont pas connus d’avance, elles vont
35
augmenter/changer au fil du temps. Par conséquent, le système doit être conçu de
telle manière à anticiper les futures tâches.
2. La coordination entre les agents : Dans le prolongement du problème numéro 1, le
système doit être réactif, car il doit tenir compte des nouveaux agents car ils sont
créés dans l'environnement. Ce qui nécessite Une attention particulière qui doit
donc être orientée vers les mécanismes de communication.
3. Réutilisation de l’agent : Le système doit promouvoir la réutilisation opportuniste
des services d’agents par d'autres agents. À cette fin, il doit prévoir des mécanismes
par lesquels les agents peuvent annoncer et rendre public leurs capacités au prés
des autres agents.
4. L'évolutivité et l’efficacité : L'évolutivité d'un système de datamining se réfère à la
capacité du système à fonctionner de manière efficace et sans dégradation notable
de ses performances lors de l’augmentation du nombre de sources de données.
D’une part L'efficacité, d’autre part, se réfère à l'utilisation efficace des ressources
du système disponible. L’évolutivité dépend des protocoles qui permettent le
transfert et la gestion des agents intelligents pour soutenir la collaboration entre eux
, tandis que l’efficacité dépend de l'évaluation adéquate et le filtrage des agents qui
sont disponibles pour éviter de cibler des sources non pertinentes. En essayant de
combiner évolutivité et efficacité sans sacrifier la performance. On va s’exposer d’un
d’un problème complexe. Il y a potentiellement un grand nombre d'agents qui doit
être coordonnée au sein de tout système MADM. il doit être possible de mettre en
œuvre des mécanismes de communication efficaces, et l’administration d’un tel
système ne doit pas nuire à l'efficacité globale du système. La plupart des
algorithmes d'apprentissage DM actuels sont complexes et nécessitent le calcul et
le traitement de toutes les données soient résidants dans la mémoire principale, ce
qui est clairement invraisemblable à beaucoup de problèmes réalistes. Dans le
même temps, le système doit être évolutif : éviter les composants centralisés qui
créeront des goulets d'étranglement lors de l'exécution.
5. La portabilité : Un système de datamining distribué doit être capable de fonctionner
dans des environnements multiples avec différentes configurations matérielles et
logicielles (par exemple à travers l'Internet), et être en mesure de combiner
plusieurs modèles avec (éventuellement) différentes représentations. Le système
doit être aussi capable de fonctionner sur n'importe quel système d'exploitation.
6. Compatibilité : La combinaison de plusieurs modèles d'exploration de données qui
résultent des différents sites, a reçu une attention particulière dans le milieu de
recherche. Dans la plupart des travaux antérieurs sur la combinaison de plusieurs
modèles, il est supposé que tous les modèles proviennent de la même base de
données ou à partir de bases de données avec un schéma identique. Ce n'est pas
toujours le cas, et les différences dans le type et le nombre d'attributs entre les
différents ensembles de données ne sont pas rares. Le modèle résultant calculé à
partir d’une base de données unique est directement dépendant. du format des
données sous-jacentes. Le système doit être capable de fonctionner en utilisant
36
plusieurs sources de données situées sur des machines différentes, et dans
n'importe quel endroit, en utilisant une méthode de communication sur le réseau.
7. Adaptabilité et extensibilité : La plupart des systèmes de data mining fonctionnent
dans des environnements qui sont susceptibles de changer. Il ne s'agit pas
seulement des modèles (patterns) qui changent au fil du temps, mais aussi Les
progrès dans le domaine de l'apprentissage automatique et le data mining donne
lieu à des algorithmes et des outils qui ne sont pas disponibles à l'heure actuelle. A
moins que le système MADM soit flexible pour tenir compte des progrès futurs dans
le domaine de la technologie de data mining .sinon ce system sera rapidement
inadéquat et obsolète.
4.1.2 Analyse structurelle
Le but de l'analyse de la conception structurelle, décrit dans cette section est d'identifier les
flux d'informations à travers le système MADM envisagé afin de définir clairement les
entrées du système prévu et les flux de sortie. En brisant le système des concepts au niveau
du domaine, il a été possible de commencer à identifier la nature des agents que le système
MADM pourra avoir besoin. Quatre principales composantes au niveau du domaine ont été
identifiées : (i) l'interface utilisateur, (ii) la planification et gestion, (iii) le traitement, et (iv)
l'interface de données. L'interaction (flux d'information) entre ces quatre modules
principaux est montrée dans la figure 4.1. La figure doit être lue de gauche à droite. Le
composant d'interface utilisateur reçoit des demandes de data mining. Une fois que la
demande est reçue, elle est traitée pour déterminer les algorithmes d'exploration de
données et les sources de données nécessaires pour répondre à la demande (ce qui est la
fonction de la planification et de la gestion des composants). Les sources de données
identifiées sont ensuite extraites (le composant de traitement), les résultats retournés à
l'utilisateur via l'interface utilisateur.
Figure 10 Composants principaux du système MADM
37
4.2 Les agents du système
Dans cette section, les différents types d'agents utilisés dans l’approche proposée sont
détaillés. La discussion porte sur les fonctionnalités des agents, la mise en œuvre est
examinée plus loin dans ce chapitre. Sur la base des problèmes identifiés dans le début de ce
chapitre, plusieurs types d'agent ont été proposés. Cependant, quel que soit le type de ces
agents, ils sont conformes aux définitions générales d'agents décrits dans [23]. Les types
d'agents présentent dans notre approche sont :
•
•
•
•
•
•
•
Agent utilisateur
Agent gestionnaire de taches
Agent d’enregistrement
Agent facilitateur
Agent datamining
Agent de données
Agent coordinateur
Les agents de données et utilisateurs sont tous identifiés comme agents d'interface, car ils
fournissent tous des «interfaces» à des utilisateurs ou à des sources de données. Les agents
utilisateurs fournissent l'interface entre les utilisateurs finaux du système et le système,
alors que les agents de données assurent l'interface entre les sources de données et le reste
du système. Les Agents de datamining et gestionnaire de taches sont identifiés comme
agents de traitement, leurs rôles est de traiter et de répondre aux demandes des
utilisateurs.
Figure 11 l’architecture générale du systeme
38
La figure 4 .2 montre que les agents doivent loger dans chaque composant du domaine
identifié dans l'analyse de conception structurelle. L'agent gestionnaire de tâches reçoit une
requête, et demande à l'agent facilitateur de vérifier toutes les sources de données
disponibles (agents de données) et les agents de datamining pour trouver : (i) les données à
utiliser, et (ii) l’algorithme de datamining le plus approprié a la source de données (agent de
datamining). L'agent gestionnaire de tâches passe alors la tâche à l’agent datamining et
surveille sa progression. Chaque source de données (base de données) doit avoir un agent
de données afin de déterminer les caractéristiques de la source de données et de choisir de
manière précise l’agent de datamining le plus approprié.
Il est judicieux de penser que le système qui va être implémenté suivant l’approche
proposée est formé de trois modules logiciels interdépendants :
1. le module d'interface
2. le module de traitement
3. le module de connaissances.
Dans ce qui suit, nous allons aborder la structure et la fonction de chaque agent qui
constitue le system.
4.2.1 Agent utilisateur
Il y a quatre opérations essentielles qu'un agent utilisateur doit être en mesure de réaliser :
1. Recevoir et interpréter les demandes des utilisateurs de data mining.
2. Communiquer la requête de l'utilisateur à des agents de traitement.
3. Retourner les résultats générés, dans un format adapté et compréhensible, à
l'utilisateur.
4. répondre à des événements asynchrones, comme l’arrêt de l’extraction ou la
terminaison d’une opération d’un agent de datamining susceptible d'être émise par
l'utilisateur.
Un agent utilisateur doit avoir la faculté de traduire les informations de l'utilisateur dans un
format que les agents de traitement peuvent comprendre et vice-versa.
L'agent utilisateur est le seul agent qui interagit avec l'utilisateur. Il demande à l'utilisateur
d'émettre des requêtes de data mining (d'extraction de données) les transmette au système,
et fournit à l'utilisateur des résultats finaux.
Le module d’interface qui regroupe les agents utilisateurs contient des méthodes pour la
communication interne entre les agents et pour l'obtention des choix (décisions) de
39
l'utilisateur. Le module d'interface peut donner accès à une interface qui permet la
visualisation des résultats générés. Le module de traitement contient des méthodes pour
capturer les entrées (input) de l'utilisateur et de les communiquer à l'agent de la tâche. Dans
le module de connaissance, l'agent peut stocker l'historique des interactions de l'utilisateur
et les profils utilisateurs avec leurs préférences.
4.2.2 L’agent d’enregistrement
La fonction générale exceptée l'enregistrement des nouveaux agents, est d'informer tous les
agents appropriés qui sont déjà dans le système de l’arrivé d’un nouvel agent dans le
système. Quand un nouvel agent est introduit dans le système, il doit en informer l'agent
d'enregistrement. Comme le système est conçu pour être relativement statique en termes
de nouvelles sources de données et des types de sources de données, l'agent
d'enregistrement sera l'agent le moins utilisé. Il devrait également être le premier agent créé
et démarré dans le système. Parce que le système ne peut fonctionner sans un agent
facilitateur ainsi, l'agent d'enregistrement va initier toutes les méthodes, et attendre ensuite
l’agent facilitateur pour entrer dans le système. Une fois avisé de l’entrée d'un agent
facilitateur dans le système, il termine l'initialisation et attend une demande
d'enregistrement de nouveaux agents. Quand un nouvel agent entre dans le système, il
envoie un message de demande d'inscription à l'agent d'enregistrement. Une fois qu’il reçoit
la notification d'un nouvel agent, l'agent d'enregistrement permettra de déterminer les
fonctions de l'agent qu’il peut effectuer par l'information transmise dans le message
d'enregistrement. L'agent facilitateur sera informé de tous les types d'agents entrant dans le
système. des que tous les agents appropriés existants dans le système ont été notifiés, le
nouvel agent sera informé, il est actif dans le système. Le module d'interface de l'agent
contient dés méthodes pour la communication entre les agents. Le module de connaissance
contient des méta-connaissances au sujet de tous les agents dans le système.
4.2.3 Agent facilitateur
L'agent facilitateur agit comme agent conseillé qui facilite la répartition des demandes aux
agents qui ont exprimé leur capacité à les gérer. L'agent facilitateur garde la trace des noms
et des capacités de tous les agents enregistrés dans le système. Il peut répondre à la requête
d'un agent avec le nom et l'adresse d'un agent approprié qui a les capacités demandées. Son
module de connaissances contient des méta-connaissances sur les capacités des autres
agents du système. En général, n'importe quel agent dans le système proposé, peut utiliser
l'agent facilitateur pour promouvoir ses capacités afin de devenir une partie du système
d'agent (ce qu'on appelle un service de pages jaunes. Lorsque l'agent facilitateur reçoit la
notification d'un nouvel agent qui veut faire connaître ses services, il faut ajouter un
identifiant ce de cet agent et de ses capacités à la liste des agents disponibles dans le
système.
40
l’agent gestionnaire de taches demande a l’agent facilitateur de lui indiqué quel agent peut
répondre a la demande de l’agent gestionnaire des taches. L'agent facilitateur maintient
toutes les informations sur les capacités de chacun des agents dans le système et répond
aux questions de l’agent gestionnaire de taches pour savoir où acheminer les demandes
spécifiques. Toutefois, il convient de noter que l'agent facilitateur ne maintient pas une
information complète sur les agents dans le système, ce qu’il détient est seulement leur
fonctionnalité et leurs emplacements.
4.2.4 Agent gestionnaire de taches
Un agent gestionnaire de tâches est responsable de l'activation et de la synchronisation des
différents agents nécessaires pour générer une réponse à une requête d’utilisateur. Cet
agent accomplit sa tâche en générant d'abord un plan de travail. Puis il surveille les progrès
qui ont été faits pour accomplir le plan.
L’agent gestionnaire de tache est conçu pour recevoir des demandes d'extraction de
données à partir de l'agent utilisateur et solliciter les services de groupes d'agents pour
obtenir le résultat final à retourner à l'agent utilisateur. Le module d'interface de l’agent est
responsable de la communication inter-agent, le module de traitement contient des
méthodes pour le contrôle et la coordination des différentes tâches. La présence d’un agent
gestionnaire de tâche dans le system peut être nécessaire, lors de la génération d'une
réponse à une demande, à identifier les sources de données pertinentes, les services de
demande des agents, générer des requêtes, etc. Le module de connaissance contient des
méta-connaissances sur les tâches d'exploration de données, à savoir les mesures qui sont
nécessaires pour ce type d'exigences de la tâche d'entrée, pour chacune des tâches
d'exploration de données, etc.
Une fois que l'agent utilisateur a reçu la requête de l'utilisateur, la demande est transmise à
l'agent gestionnaire de tâches. L'agent de tâche détermine ensuite, selon les informations
qui lui sont transmis et par le contact avec l'agent facilitateur, ce que d'autres agents sont
tenus de produire comme une réponse à cette demande.
La nature d'une demande reçue peut dicter un des deux types d'action possibles : (i)
l'exécution d'une tâche d'exploration de données, ou (ii) l'annulation de l'opération en
cours. Les besoins des utilisateurs seront transmis à l'agent gestionnaire de taches sous
forme d'une demande de l'agent utilisateur.
Dans le premier cas, l'agent gestionnaire de taches demande à l'agent facilitateur, les agents
de Datamining qui peuvent répondre à l'attribution des tâches désirées. Par exemple, si
l'utilisateur veut que tous les règles d'association possibles répondant à un minimum de
support donné et seuils de confiance, de toutes les sources de données disponibles, l'agent
de la tâche prendra contact avec les agents appropriés DM à cette demande. L'agent
gestionnaire de tâche accepte le résultat de chaque agent datamining et le stocke dans sa
base de connaissances. Une fois la tâche DM est terminée, l'agent gestionnaire de tâches
41
combine les résultats pour fournir un résultat unique avant de les transmettre à l'agent
utilisateur.
Le second cas peut se produire lorsque l'utilisateur ressent (par exemple) que les opérations
actuelles sont trop longues, ou ne sont plus nécessaires. Alors dans ce cas, l'agent doit
envoyer le message «Annuler» à tous les agents actuellement chargés d’effectuer les taches
de datamining.
4.2.5 Agent datamining
Un agent de datamining met en œuvre un algorithme de datamining, il contient
l’implémentation d’un algorithme datamining. Le module d'interface prend en charge la
communication entre agents. Le module de traitement contient des méthodes pour initier et
réaliser la tache datamining, capturer les résultats, et les communiquer à un agent de
données ou à un agent gestionnaire de taches. Le module de connaissance contient des
méta-connaissances sur les tâches DM, ce que signifie quelle méthode est appropriée pour
ce type de problème, les exigences d'entrée pour chacune des méthodes de datamining, le
format des données d'entrée. Cette connaissance est utilisée par le module de traitement
dans le lancement et l'exécution d’un algorithme de datamining particulier pour le problème
posé.
Un agent de datamining accepte une requête qui vient de la part d’agent gestionnaire de
tâches, et initie l'algorithme de datamining à l'aide des valeurs contenues dans la requête.
Durant l’exécution de l'algorithme, l'agent de datamining peut faire des demandes et
indiquer les sources de données a utiliser aux agents de données, ou demander à d'autres
agents DM de coopérer. L'agent de datamining continue jusqu'à ce qu'il ait achevé sa tâche,
à savoir générer des résultats, puis renvoie les résultats à l'agent gestionnaire de tâches et
enfin ces résultats sont envoyés vers l'agent utilisateur et éventuellement à l'utilisateur final
du système qui a été à l'origine de la requête.
4.2.6 Agent de données
L’agent de données est responsable d'une source de données et conserve des métadonnées
sur la source de données. Les agents de données sont responsables de la transmission de
leurs données aux agents de datamining. Les Agents de données aussi prennent en compte
les questions de l’hétérogénéité des données. Le module d'interface pour un agent de
données prend en charge la communication entre les agents, ainsi il est responsable de
l'interface avec la source de données. Le module de traitement offre des installations pour la
récupération de données prédéfini. Sur la base de la demande de l'utilisateur, les requêtes
appropriées sont générées par des agents de DM et envoyé à des agents de données qui
ensuite traitent les requêtes en fonction de la nature de leur jeu de données. Les résultats,
que ce soit, l'ensemble de données ou un sous-ensemble spécifié, sont ensuite
communiquées à la DM agents.
42
Une fois que l'agent facilitateur a déterminé les agents susceptibles de remplir une tâche
donnée, il transmet cette information à l'agent gestionnaire de tâche. L'agent gestionnaire
de tâche sélectionne les d'agents de données les plus utiles.
Un agent des données n'est pas spécifique à une tâche de datamining particulière, mais il est
plutôt en mesure de répondre à toute requête associée à ses données. Quand une nouvelle
source de données est introduite dans le système, le système doit créer un agent de
données dédie pour cette source de données. Au cours de ce processus, la présence de ce
nouvel agent de données sera annoncée à l'agent facilitateur afin que le nouvel agent puisse
être reconnu par le système et que l'agent facilitateur intégre l’agent dans la liste des agents
disponible dans le système.
4.3 Définition des protocoles d'interaction
Dans cette section, les différents protocoles nécessaires pour supporter les fonctions
principales identifiées et les interactions sont définies pour chaque agent.
Le system qu’on veut implémenter emploie des protocoles distribués efficaces, afin d'éviter
l'utilisation de nombre important de messages qui circulent dans le system.
Plus généralement, en ce qui concerne le système multi agents, un protocole est un format
de messages convenu pour une communication entre les agents qui favorise une
compréhension commune. En SMA, les protocoles définissent généralement la façon dont
les agents demandent des informations aux autres agents, et comment les agents
retournent les réponses à ces demandes. L'agent qui initie l’envoi d’un message est appelé
l'expéditeur, et l'agent qui reçois ces messages s’appelle récepteur. La réponse à un message
nécessite généralement au récepteur la réalisation d’une action qui génère alors la réponse
à renvoyer à l'expéditeur. La syntaxe suivante, exprimée dans BackusNaur (BNF) , est utilisée
pour définir les protocoles d’interaction :
< Protocol >::=< Header >< Send −Message >< Receive −Message >
< Header >::=< ProtocolName >< SenderAgent >< ReceiverAgent >
< Send −Message >::=< Send −Message − Tag > |
< Send −Message − Tag >< Send − Content > |
< Send −Message − Tag >< Send − AcTon > |
< Send −Message − Tag >< Send − Content >
43
< Send − AcTon >
< Receive −Message >::=< Receive −Message − Tag > |
< Receive−Message−Tag >< Receive−Content > |
< Receive−Message−Tag >< Receive−AcTon > |
< Receive−Message−Tag >< Receive−Content >
< Receive − AcTon > |
“(” < Receive−Message > “OR” < Receive−Message >
“)”|
< Receive −Message > “OR” < Receive − AcTon >
< ProtocolName >::= “ProtocolName : ”string
< SenderAgent >::= “Sender : ”string
< ReceiverAgent >::= “Receiver : ”string
< Send −Message − Tag >::= “Send : ”string
< Send − Content >::= “Content : ”string
< Send − AcTon >::= “Do : ”string
< Receive −Message − Tag >::= “Receive : ”string
< Receive − Content >::= “Content : ”string
< Receive − Action >::= “Do : ”string
Les trois premières lignes de chaque protocole (header) identifient le nom du protocole
(étiquette) et le message destiné «expéditeur» et «récepteur». La partie suivante du
protocole définit la nature du message à envoyer, il s'agit d'au moins une variable de
message, mais peut également définir un contenu de message et / ou une action à effectuer
par l'émetteur une fois que le message a été envoyé. Le message est une balise d'un
ensemble de mots-clés prédéfinis (chaînes) qui sont compris par les agents du système. La
dernière partie du protocole définit la nature du message à renvoyer à l'expéditeur (la
réponse). Cette partie du protocole se compose également d'au moins une variable de
message (message tag), mais peut également définir un certain nombre de message et toute
action prévue (s) à exécuter par l'émetteur lors de la réception du message. Dans certains
cas, il peut y avoir un certain nombre de messages alternatifs qui peuvent être reçus, dans
44
ce cas, cela sera indiqué par un "OU". Il est également possible pour l'expéditeur de recevoir
une séquence de réponses de messages et d’actions.
Ce format est utilisé pour définir les sept protocoles principaux du système qui ont été
identifiés :
1.
2.
3.
4.
5.
6.
7.
Trouver les agents disponibles dans le système
Enregistrement des agents
Demande d’une requête de data Mining par l’utilisateur
Démarrer les tâches de Data Mining
Publication des capacités de l'agent
Effectuer des opérations de Data Mining
récupération des données
4.3.1 Trouver les agents disponibles dans le système
Avant de transmettre un message, l’agent expéditeur doit identifier le sous-ensemble
d'agents de réception approprié à une exigence particulière. Un agent expéditeur peut
d'abord découvrir exactement ce que intéresse les agents à la reception de son message en
communiquant avec l'agent facilitateur.
LeProtocol
protocole est
le suivant
:
Name:
Trouver
les agents disponibles
Sender: Tous les agents demandeurs
Receiver: Agent facilitateur
send: findAgents
content: agent type
(receive: agentsFound
content: agentList
or
receive: noAgents)
45
Le récepteur est toujours l'agent facilitateur. L'agent expéditeur envoie
le message "findAgents" à l'agent facilitateur, avec comme contenu la
définition du type d'agent que l'expéditeur souhaite communiquer avec.
Le type d'agent indique la nature de la tâche de l'agent datamining que
l’agent expiditeur est intéressé par (par exemple un agent datamining
peut être intéressé par la classification ou par les règles d’associations).
L'agent facilitateur va alors soit retourner un message contenant une
liste d'identifiants des agents appropriés ou un message étiqueté
"noagent" indiquant qu'aucun agent du type d'agent spécifié n'a été
trouvé.
4.3.2 Le protocole d’enregistrement des agents
Ce protocole permet aux nouveaux agents d’enregistrer leur présence
avec l'agent facilitateur. Le protocole d'enregistrement de l'agent est le
suivant :
Protocol Name: enregistrement des agents
Sender: nouvel agent
Receiver: Agent facilitateur
send: register
content: domain and agent meta-data (services, capabilities)
receive: accepted or rejected
L'agent expéditeur envoie un message «Register» , avec le contenu
décrivant le domaine d'agent et une description du service du nouvel
agent et ses capacités, à l'agent facilitateur. L'expéditeur recevra soit un
message "accepté" , ce qui indique que l'enregistrement a été accepté et
l'agent est rendu public à d'autres agents qui composent le système, ou
un message étiqueté "rejet" indiquant que l'enregistrement a échoué.
46
4.3.3 Protocole : Demande d’une requête de data Mining
Les agents utilisateurs interagissent uniquement avec les agents
gestionnaires de tâches. Une fois la demande de l'utilisateur est reçue,
l'agent utilisateur lance une demande pour une tâche de datamining à
exécuter basé sur le type de tâche spécifié dans la demande de la
requête. L'agent gestionnaire de tâches va émettre un accusé de
réception à l'agent utilisateur et il va lancer le processus de datamining.
L'agent utilisateur pourra alors attendre soit le résultat de la requête de
datamining. Ou il est informé que la demande a échoué (par exemple pas
de sources de données appropriées peuvent être trouvées). Dans le
premier cas, l'agent utilisateur va transmettre le résultat de datamining
à l'utilisateur final du système. Dans le second cas, l'agent utilisateur va
confirmer la fin de la tâche de datamining en cours.
Protocol Name: Demande d’une requête de data Mining
Sender: Agent utilisateur
Receiver: Agent gestionnaire de taches
send: mining
receive: accept
(receive: resultsReady
content: results
4.3.4 Protocole : Démarrer les tâches de Data Mining
Les agents gestionnaires de taches sont au cœur du processus
d'extraction de données dans le système .ils interagissent avec les
agents utilisateurs, l'agent facilitateur et un ou plusieurs agents de
datamining. L'agent gestionnaire de tâches réagit initialement à une
demande initiée par l'agent utilisateur. L'agent utilisateur va indiquer
qu’une opération DM a été lancée et passe les attributs appropriés (par
47
exemple des valeurs de seuil de support et confidence) dépendant de la
nature de la tâche datamining souhaitée. En réponse à la demande
effectuée, l'agent gestionnaire de tâche va déterminer la nature de la
demande en fonction des variables envoyées. Une fois que l'agent
gestionnaire de taches a déterminé le type de la requête (par exemple
une demande de règles d’association), il informe l'agent utilisateur de la
disponibilité de toutes les informations dont il a besoin avec un message
«accepter» et il initie le traitement requis.
L'agent gestionnaire de tâche interagit alors avec l'agent facilitateur
pour déterminer quels agents il devrait lancer pour la requête qui a été
reçue. Ensuite, l'agent gestionnaire de tâche attend le résultat. Il peut
recevoir l'une des deux réponses possibles. Il peut recevoir un message
«agentsFound" et une liste des agents utiles, ou un "noAgents" s'affiche,
indiquant l'absence de sources de données qui pourraient être
exploitées. Si "noAgents" est reçu, l'agent envoie un message qui
contient une tâche "NoData" à l'agent utilisateur et la tache se termine.
L'agent gestionnaire de tâche va d'abord utiliser le protocole qui
s’intitule « trouver les agents disponibles dans le système ». Ainsi, si les
agents sont trouvés, le message "agentsFound» sera renvoyé à
l'expéditeur avec une liste d'identificateurs pour les agents de data
mining trouvés. L'agent gestionnaire de tâche va interagir avec chacun
des agents de datamining identifiés. L'agent gestionnaire de tâche
demandera que les agents de data mining identifiés vont réaliser leur
taches selon les valeurs de la demande initiale reçue d'un agent
utilisateur. L'agent gestionnaire de taches peut passer toutes les
variables reçues de l'agent utilisateur pour les agents datamining en
fonction de la nature de la demande DM. Une fois que l'agent
gestionnaire de tâche reçoit la confirmation de l'agent de datamining,
soit il attend les résultats ou une demande initiée par l'agent utilisateur
demandant une interruption de l'opération de datamining en cours.
Le protocole est donné ci-dessous :
48
Protocol Name: Démarrer les tâches de Data Mining
Sender: Agent gestionnaire de taches
Receiver: Agent datamining
send: beginMining
receive: miningComplete
content: result
do: return result
or
do: terminate
Un agent gestionnaire de tâche peut interagir avec plus d'un agent de
datamining. Dans ce dernier cas, un certain post-traitement du résultat
est généralement entrepris. Après que toutes les interactions
nécessaires avec les agents de datamining ont été accomplies, l'agent
envoie un message qui contient une tâche « resultsReady »à l'agent
utilisateur.
4.3.5 Protocole de Récupération de données
Les agents de données sert comme une interfacer avec des sources de données. Les agents
de données ont également les capacités de communiquer avec les agents de datamining. Les
agents donnés interagissent avec les agents DM en utilisant le protocole de récupération de
données suivant :
49
Protocol Name: Recuperation de données
Sender: Agent DM
Receiver: Agent de données
send: getData
content: SQL
receive: les données récuperées
content: données
Conclusion
Dans ce chapitre, nous avons scindé notre travail en deux parties : La
première constitue une représentation de quelques systèmes de Data
Mining basés agents existants dans la littérature.
Dans la deuxième partie nous avons exposé les différents protocoles
nécessaires pour supporter les fonctions principales identifiées et les
interactions entre les différents agents qui composent notre système.
50
Chapitre 5 :
Etude De Cas Et Implémentation
51
5.1 Introduction
Dans ce chapitre nous allons montrer la validité et fiabilité du modèle proposé
précédemment qui est dédié à l’intégration des SMA dans le datamining et de ce que va
résulter de cette intégration c’est-à-dire la génération de règles d’association a partir d’une
plateforme multi agents.
Afin d’aboutir à ce but, nous allons faire une étude de cas, d’où nous allons appliquer notre
Modèle sur des sources de données distribuées.
Comme nous avons déjà dit dans l’introduction, notre travail consiste à appliquer le système
proposé sur des sources de données distribuées, pour générer des règles d’associations en
se basant sur l’exécution sur un algorithme de Règle d’association dans les différentes
sources de données, et qui va nous permettre par la suite d’avoir un résultat global et plus
précis .
Nous résumons ce scénario dans la figure suivante :
Agent 1
Agent 2
Exécution de
l’algorithme Apriori
Exécution de
l’algorithme Apriori
Source de
données 1
Agent 3
Résultat local 1
Résultat local 2
Coordonner les résultats locaux
Affichage des résultats aux utilisateurs
Génération de Règles d’association
Modèle global
Figure12. Schéma montrant le fonctionnement du système proposé.
52
5.2 Fonctionnement du système
Cette partie consiste à présenter notre application en se basant sur le langage AUML.
Le langage A _UML
Le langage A _UML (Agent_ UML) a été proposé par Bernhard Bauer Odell et al en 1999
comme étant une extension de la notation UML pour la modélisation d’agents.
Cette extension concerne les diagrammes de séquence pour modéliser les interactions entre
agents ainsi que les diagrammes de classe pour modéliser les agents. [46]
5.2.1 Diagramme de cas d’utilisation
Figure. Diagramme de cas d’utilisation AUML du modèle proposé.
53
5.2.2 Diagramme de classe
La figure suivante consiste en la représentation du diagramme des clases existantes dans notre
système et les relations qui les lient.
Figure 14 Diagramme de classe du modèle proposé.
54
5.2.3 Diagramme de séquence
Le diagramme de séquence suivant décrit le processus de fonctionnement général de notre
système
Agent
Datamining 1
Agent
Datamining 2
Agent
Interface
Inform (Début tache)
Inform (Début tache)
Request (Fin Traitement)
Request (Fin Traitement)
inform (Modèle 1)
inform (Modèle 2)
Figure 15 . Diagramme d’interaction du modèle proposé.
55
5.3 Implémentation
Dans cette partie
nous allons voir les étapes qu’il faut suivre lors de l’exécution de
l’application et qui est dédie a la génération de règles d’association a partir d’une plate forme
multi agents.
Afin d’aboutir à ce but, nous allons faire une étude de cas, d’où nous allons appliquer notre
application sur une source de données.
2 Les étapes adoptées
Nous avons vu dans le chapitre 1 que le processus de
fouille de données passe par
Plusieurs étapes nécessaires à l’extraction de connaissance. Le processus adopté par notre
système est composé des étapes majeures suivantes :
2.1 Sélection de source des données
La collecte des données consiste à obtenir des données en accord avec l’algorithme
choisi. Ces données proviennent généralement d'entrepôts. Les données sont structurées en
champs typés.
Pour notre projet nous avons choisi de faire notre étude de cas sur des données
météorologiques.
La figure représente une partie des attributs de la base de données utilisée.
56
2.2 Lancement et exécution de l’algorithme de Datamining
Les deux agents datamining utilisent la même interface graphique qui sert à choisir l’algorithme
apriori, le support minimal et la confidence.
Apres le lancement des deux agents le Framework JADE se lance
Les deux agents vont exécuter de façon indépendante l’algorithme apriori dont une partie du code
de notre système est présenté ci-dessous :
57
Package jadeApriori;
import java.util.ArrayList;
import java.util.Random;
import jade.core.Agent;
import jade.core.Runtime;
import jade.core.ProfileImpl;
import jade.core.behaviours.CyclicBehaviour;
import jade.domain.DFService;
import jade.domain.FIPAException;
import jade.domain.FIPAAgentManagement.DFAgentDescription;
import jade.lang.acl.ACLMessage;
import jade.lang.acl.MessageTemplate;
import jade.lang.acl.UnreadableException;
public class InterfaceAgent extends Agent {
private JFrame jFrame = null;
// Initialisation de l’agent
protected void setup() {
getJFrame().setVisible(true);
try {
// Création de la description de l'agent
DFAgentDescription dfd = new DFAgentDescription();
dfd.setName(getAID());
DFService.register(this, dfd);
}
58
catch (FIPAException e) {
e.printStackTrace();}
protected void takeDown() {
try {
// Suppression de l'agent du DF
DFService.deregister(this);
}
catch (FIPAException e) {
e.printStackTrace();
}
}
ACLMessage message = new ACLMessage(ACLMessage.INFORM);
message.addReceiver(new AID("Agent1", AID.ISLOCALNAME));
message.setContent("Debut de l’exécution de l’algorithme apriori ");
send(message);
...
// Lecture de la valeur de SupportMin
Int SupportMin;
int ConfidenceMin;
do {
BufferedReader stdin = new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Donnez le support minimal");
String line = stdin.readLine();
try{
SupportMin = Integer.parseInt(line);
}
59
5.3 Communication entre agents
Pour que les trois agents JADE arrivent à collaborer, ils doivent s'échanger des messages. Chaque
agent JADE possède un buffer qui contient les messages qui lui sont envoyés par les autres agents.
Ces buffers sont sous forme d'une liste qui contient les messages selon l'ordre chronologique de leur
arrivés.
5 3.1.Format d'un message JADE
Les agents JADE utilisent des messages conformes aux spécifications de la FIPA (FIPA-ACL ) .les
messages JADE sont des instances de la classe ACLMessage du package jade.lang.acl. Ces messages
sont composés en général de :
•
•
•
•
•
L'émetteur du message : un champ rempli automatiquement lors de l'envoi d'un message.
L'ensemble des récepteurs du message : un message peut être envoyé à plusieurs agents
simultanément.
L'acte de communication : qui représente le but de l'envoi du message en cours (informer
l'agent récepteur, appel d'offre, réponse à une requête,…)
Le contenu du message.
Un ensemble de champs facultatifs, comme la langue utilisée, l'ontologie, le timeOut,
l'adresse de réponse…
Pour envoyer un message, il suffit de remplir les champs nécessaires (l'ensemble des
récepteur et le contenu du message et l'acte de communication) d'un message JADE, puis
d'appeler la méthode send() de la classe Agent. Voici un exemple d'envoi d'un message
JADE.
ACLMessage message = new ACLMessage(ACLMessage.INFORM);
message.addReceiver(new AID("Agent1", AID.ISLOCALNAME));
message.setContent("L’exécution de l’algorithme apriori est
terminée");
send(message);
Ce message est envoyé à l'agent appelé Agent1 pour lui informer la fin de l’exécution de
l’algorithme apriori.
Pour que l’agent2 reçoit, il doit appeler la méthode reveive() de la classe Agent pour récupérer le
première message non encore lu de l'agent.
ACLMessage messageRecu = receive();
Pour répondre à un message reçu on récupère l'identité de l'émetteur du message par la méthode
getSender() ;
ACLMessage message = new ACLMessage(ACLMessage.INFORM);
message.addReceiver(messageRecu.getSender());
message.setContent("Lancement de l’algorithme Apriori");
send(message);
60
Pour que les deux agents soient lancer en même temps .après le lancement de l’agent1 alors le
deuxième agent va faire une attente active jusqu'à l'arrivé du message de la manière suivante :
ACLMessage message =null ;
While (message == null){
Message = receive() ;
}
Exécution de l’algorithme Apriori.
Lorsque les deux agents terminent leurs exécutions de l’algorithme ils vont envoyer le résultat dans
un fichier texte.
le contenu de ce fichier
Apriori
=======
Minimum support: 0.15 (2 instances)
Minimum metric <confidence>: 0.9
Number of cycles performed: 17
Generated sets of large itemsets:
Size of set of large itemsets L(1): 12
Size of set of large itemsets L(2): 47
Size of set of large itemsets L(3): 39
Size of set of large itemsets L(4): 6
Best rules found:
1. outlook=overcast 4 ==> play=yes 4 conf:(1)
2. temperature=cool 4 ==> humidity=normal 4 conf:(1)
3. humidity=normal windy=FALSE 4 ==> play=yes 4 conf:(1)
4. outlook=sunny play=no 3 ==> humidity=high 3 conf:(1)
5. outlook=sunny humidity=high 3 ==> play=no 3 conf:(1)
6. outlook=rainy play=yes 3 ==> windy=FALSE 3 conf:(1)
7. outlook=rainy windy=FALSE 3 ==> play=yes 3 conf:(1)
8. temperature=cool play=yes 3 ==> humidity=normal 3 conf:(1)
61
9. outlook=sunny temperature=hot 2 ==> humidity=high 2 conf:(1)
10. temperature=hot play=no 2 ==> outlook=sunny 2 conf:(1)
Apres l’agent interface va lire le fichier texte et présenter le résultat a l’utilisateur final
protected void setup() {
String filePath = "c:\\Resultatapriori.java";
try{
BufferedReader buff = new BufferedReader(new FileReader(filePath));
try {
String line;
// Lecture du fichier ligne par ligne. Cette boucle se termine
// quand la méthode retourne la valeur null.
while ((line = buff.readLine()) != null) {
System.out.println(line);
}
} finally {
// dans tous les cas, on ferme nos flux
buff.close();
}
} catch (IOException ioe) {
// erreur de fermeture des flux
System.out.println("Erreur --" + ioe.toString());
}
}
}
62
5.4 Conclusion
Dans ce présent chapitre, nous avons présenté l’application de notre SMA basé sur la
technologie des agents à travers une étude de cas. Ce dernier consiste en la génération de
règles d’association en utilisant la technologie des agents.
Nous avons cité les différents composants nécessaires à sa réalisation. Enfin, nous avons
également exposé les différentes interfaces réalisées.
Dans
ce chapitre nous avons présenté un exemple concret de l’application de notre
Système sur des données métrologique. Le choix de cette source de données était adéquat
avec l’algorithme apriori.
63
Conclusion générale et perspectives
Dans ce travail, nous nous sommes focalisés sur l’étude de trois domaines différents qui
sont le Data Mining, le paradigme agent et l’utilisation des agents dans le Data Mining dans
l’objectif final de proposer une approche Data Mining basée agents et de concevoir le
système multi-agents permettant de la mettre en œuvre.
Le data mining basé agents est une nouvelle discipline qui combine deux grandes
technologies qui sont le Data Mining, et les systèmes multi-agents. De cette discipline
dérivent deux nouveaux axes de recherche. L’un s’intéresse à l’amélioration du processus
Data Mining en utilisant les avantages paradigme agent, et l’autre tire parti des techniques
Data Mining pour le développement et la réalisation de l’intelligence dans la technologie
agent.
Dans notre travail, nous nous sommes positionné dans la première vision, dont l’objectif
est le développement et à la réalisation d’une architecture Data Mining basée agents, qui
permet de prendre en charge le processus Data Mining durant chacune de ses étapes.
Pour cela, nous avons suivi un plan de quatre chapitres dont le premier volet a été
consacré au concept Data Mining, sa définition, son processus, leurs tâches et leurs
techniques. L’étude de la discipline Data Mining nous a permis de découvrir un domaine très
récent et très vague actuellement qui est l’extraction automatique des connaissances à
partir des données.
L’étude du paradigme agent ,nous a permis de comprendre de nouveaux concepts tels que la
mobilité, l’adaptabilité et la flexibilité de l’agent logiciel ainsi que d’assimiler les différentes
situations d’interaction entre agents et les protocoles d’interaction inhérents.
64
l’étude de quelque systèmes Data Mining basé agents existants dans la littérature.
Ensuite, nous avons terminé ce chapitre par une proposition d’une architecture Data Mining
basé agents, dans un premier temps, les caractéristiques de notre architecture suivie par
structure globale. Ensuite, nous avons décrit le fonctionnement de notre système ainsi que
les rôles et les interactions entre ses différents agents, et on a achevé ce volet par une
conclusion.
Une étude de cas a été réalisée tout en essayant de choisir les meilleurs outils techniques
adéquats. Elle a mis en exergue le mécanisme de l’approche proposée.
Nous espérons avoir donné une bonne idée sur les systèmes Data Mining basé agents, leur
caractéristiques, leurs objectifs et souligné de façons explicite la nature des problèmes posé
par ces systèmes.
Ce travail bien sûr est loin d’être achevé, et nécessite encore d’efforts et de persévérance.
Et si on a la chance de continuer dans ce domaine de recherche les prochaines étapes
seraient concentrées sur les points suivants :
Appliquer notre système sur une base de données de grande taille, avec des
données éventuellement inconsistantes ;
Compléter harmonieusement le développement des différents agents ;
Utiliser d’autre techniques hors que les règles d’associations ;
Utiliser d’autre algorithme et pas seulement Apriori
D’après les points que nous avons cités, nous pouvons juger que le domaine data mining
est un domaine apte à l’évolution et riche en sujets de recherche qui attend, celui qui
Vient pour relever ses défis.
65
66
Bibliographie
[1] Usama Fayyad, Gregory Piatetsky-Shapiro, and Padhraic Smyth From Data Mining
to Knowledge Discovery in Databases,1996.
[2] X. Wu, V. Kumar, J. R. Quinlan, J. Ghosh, Q. Yang, H. Motoda, G. McLachlan, A. Ng,
B. Liu, P. Yu, Z. Zhou, M. Steinbach, J. Hand, and D. Steinberg. Top 10 Algorithms in
Data Mining, Knowledge and Information Systems, volume 14, pages (1-37). In
Proceedings of the Knowledge and Information Systems, Springer-Verlag, London
Limited, 2008.
[3] Jiawei Han , Micheline Kamber , Jian Pei ; Data Mining: Concepts and Techniques,
Third Edition (2011)
[4]E-G. TALBI, Fouille de données (Data Mining) : Un tour d’horizon, Laboratoire
d’Informatique Fondamentale de Lille.
[5] Foundation for Intelligent Physical Agents. FIPA 2002 Specification. Geneva,
Switzerland, 2002 http://www.fipa.org/specs/fipa00023/SC00023J.html.
[6] http://depinfo.u-bourgogne.fr/DESSBDIA/DataMining/DataMining.ppt
[7] jiawei hamad and micheline kamber, intelegence databases, systemes research
tab, school of computing sciences, ‘’Data Mining : concepts and techniques ‘’ s.
frasier university juanuary 17, 2001.
[8] D. HAND, H. MANNILA et P. SMYTH, Principles of Data Mining,MIT Press,
Cambridge, MA, 2001.
[9]
M. J. BERRY, G. S. LINOFF, Data Mining Techniques For Marketing, Sales, and
Customer Relationship, Management, Second Edition, 2004
[10] M. J. BERRY, G. S. LINOFF, Mastering Data Mining: The Art and Science of
Customer Relationship Management, 2000
[11] Bernard ESPINASSE, l'Université d'Aix-Marseille, ’’Introduction aux méthodes de
Fouille de données, 2009
67
[12] D.T. LAROSE, Discovering Knowledge In Data: An Introduction to DataMining,
Central Connecticut State University, 2005
[13] Mark Hall, Eibe Frank, Geoffrey Holmes, Bernhard Pfahringer, Peter Reutemann,
Ian H. Witten (2009); The WEKA Data Mining Software: An Update; SIGKDD
Explorations, Volume 11, Issue 1.
[14] S. PRABHU, N. VENKATESAN, Data Mining and Warehousing, New Age
International (P) Ltd., Publishers, New Delhi, 2007
[15] Davies, W., “Agent-Based Data-Mining Working Report”, 1994 August, (Internal
Review Document, University of Aberdeen)
[17] F. Bellifemine, A. Poggi, and G. Rimassi. JADE: A FIPA-Compliant agent
framework. In Proceedings the Practical Applications of Intelligent Agents and MultiAgents, pages (97-108), 1999. http://www.jade.tilab.com.
[18] Edwards, P. & Davies, W. "A Heterogeneous Multi-Agent Learning System", In
1993 Proceedings of the Special Interest Group on Cooperating Knowledge Based
Systems, Deen, S.M., University of Keele, 1993, pp. 163-184.
[19] Furnkranz, J. "FOSSIL : A Robust Relational Learner", In European Conference on
Machine Learning, Bergadano, F. & De Raedt, L., Springer-Verlag, Catania, Italy,
April 1994, pp. 122-137.
[20] J. Han, J. Pei, and Y. Yin. Mining Frequent Patterns without Candidate
Generation: A Frequent-Pattern Tree Approach. In Proceedings of the ACMSpecial
Interest Group on Management of Data (SIGMOD) International Conference
Management of Data(SIG MOD), pages (53-87), 2004.
[22]
T. YUAN, Software Agents, Introduction to JADE, 2008.
[23] M. Wooldridge. An Introduction to Multi-Agent Systems. 2003.
[24]
longbing cae, ‘’data mining and multi agents integration,,2008
68
[25] R. Agrawal and R. Srikant. Fast algorithm for mining association rules.In
Proceedings of the 20th International Conference on Very Large Data Bases, Santiago
de Chile, Chile, pages (487-499), 1994.
[26]. JAM: Java agents for Meta-Learning over Distributed Databases
[27] Prakken. Relating protocols for dynamic dispute with logics for defeasible
argumentation. special issue on New Perspectives in Dialogical Logic, 2001.
[29] http://perso.limsi.fr/jps/enseignement/examsma/2003/VARADARADJOU_DAUVILLIER/
introduction.htm
[35]
An introduction to MAS (2009) M. Wooldridge
[36]
(Fr) Jacques Ferber, Les systèmes multi-agents : Vers une intelligence collective,
Inter Editions, 1995,
[37] Briot J.-P, Yves D., {Principes et architecture des SMA}, Hermès, 2001.
[38]
http://fr.wikipedia.org/wiki/Syst%C3%A8me_multi-agents
[39] S.Bailey,R.Grossman,H.Sivakumar,andA.Turinsky.Papyrus: a system for datamining Over
local and wide area clusters and super-clusters.
[40] Mathhias Klusch ,stefano Lodi,Gianluca Moro Agent-based distributed data mining:
The KDEC scheme .
[41] Jan Tozicka, Michael Rovatsos, Michal Pechoucek A Framework for Agent-Based
Distributed Machine Learning and Data Mining
[42] Vladimir Gorodetsky, Oleg Karsaeyv, Vladimir Samoilov .Multi-agent technology for
distributed data mining and classification Intelligent Agent Technology. IEEE/WIC 2003
[43] R.J.Bayardo, W.Bohrer, R.Brice, A.Cichocki, J.Fowler, A.Helal, V.Kashyap, T.Ksiezyk,
G.Martin,M.Nodine and Others.InfoSleuth:agent-based semantic integration of information
in open and dynamic environments. ACMSIGMODRecord,26(2):195–206,1997
[44] Peerapol Moemeng ,Longbing Cao,and Chengqi Zhang. F-TRADE3.0:An Agent-Based
Integrated Framework for Data Mining Experiments.
[45] RaymondS.T.LeeandJamesN.K.Liu.ijade web-miner:An intelligent agent framework for
Internet shopping. IEEE Transactions on Knowledge and Data Engineering,16(4):461–
473,2004.
69
Téléchargement