• Aucun résultat trouvé

Des données aux agents : la simulation réaliste de populations diversifiées de clients

N/A
N/A
Protected

Academic year: 2021

Partager "Des données aux agents : la simulation réaliste de populations diversifiées de clients"

Copied!
11
0
0

Texte intégral

(1)

HAL Id: hal-00826405

https://hal.archives-ouvertes.fr/hal-00826405

Submitted on 9 Sep 2013

HAL is a multi-disciplinary open access

archive for the deposit and dissemination of sci-entific research documents, whether they are pub-lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

Des données aux agents : la simulation réaliste de

populations diversifiées de clients

Philippe Mathieu, Sébastien Picault

To cite this version:

Philippe Mathieu, Sébastien Picault. Des données aux agents : la simulation réaliste de populations diversifiées de clients. JFSMA2013 – Lille (France) – 1er au 5 juillet 2013, 2013, France. pp.41-50. �hal-00826405�

(2)

Des données aux agents : la simulation réaliste

de populations diversifiées de clients

P. Mathieu

philippe.mathieu@lifl.fr

S. Picault

sebastien.picault@lifl.fr

Laboratoire d’Informatique Fondamentale de Lille (UMR CNRS 8022), Université Lille 1, Cité Scientifique, 59655 Villeneuve d’Ascq, France

Résumé

L’usage croissant de la simulation multi-agents pour modéliser des systèmes pourvoyeurs de grandes quantités de données, suppose l’identi-fication automatique des paramètres pertinents ou l’extraction de connaissances à partir des données réelles, faute de quoi la fiabilité des prédictions et des explications fournies par la simulation est sujette à caution. Dans cet ar-ticle, nous proposons une méthode pour extraire automatiquement des profils comportementaux à partir de mesures statistiques, dans le cadre de comportements de consommateurs dans un ma-gasin. Dotés des mêmes capacités globales d’in-teraction, les agents sont munis de profils dif-férents issus de l’exploration des données. Pla-cés dans un magasin virtuel réaliste, dans le-quel tous leurs objectifs peuvent ne pas être at-teignables, ils effectuent néanmoins des achats qui reflètent la diversité des clients réels ainsi que les profils initiaux. Nous défendons l’idée que de telles techniques sont nécessaires pour faire des simulations multi-agents un puissant outil d’aide à la décision.

Mots-clés : Simulation multi-agents, Explora-tion de données, Marketing, InteracExplora-tions

Abstract

The growing use of multiagent-based simula-tion for modeling systems associated with very large databases, addresses specific issues such as the automatization of parameter identifica-tion or knowledge extracidentifica-tion from real data, so as to enhance the confidence in simulation pre-dictions and explanations. In this paper, we pro-pose a method for automatically retrieving be-havioral prototypes from statistical measures, in the context of consumer behavior. Endowed with the same overall behavior, the agents are given different profiles based on the data analy-sis. They are put into a spatially realistic store, where some of their objectives may be unat-tainable. Though, their purchase reproduce the original clusters. We argue that such techniques are essential to make multi-agent simulations a

powerful decision support tool.

Keywords: Agent-based simulations, Know-ledge discovery, Marketing, Interactions

1

Introduction

Depuis de nombreuses années déjà, les modèles centrés individus et les simulations multi-agents sont employés pour renforcer la compréhension de systèmes complexes large échelle, et ce dans des domaines variés, de la biologie moléculaire aux réseaux sociaux. Ces approches éclairent en effet les mécanismes qui font émerger des phénomènes collectifs à partir des interactions entre les entités du système, en plus de four-nir des prédictions sur des variables macrosco-piques. Or, les domaines récemment abordés par la simulation multi-agents sont de ceux qui pro-duisent d’énormes quantités de données. Parmi les nouvelles problématiques qui en découlent, se pose de façon sensible la question de l’inté-gration de connaissances construites automati-quement à partir de ces données, en vue de com-pléter voire remplacer une expertise humaine. L’approche que nous proposons ici tente d’ex-traire autant d’information que possible de don-nées enregistrées afin d’identifier des groupes d’agents dont les traces d’activité sont simi-laires. Nous construisons une description abs-traite de leurs buts (sous forme de proto-types), laquelle permet de simuler une popula-tion d’agents qui reflète la diversité originelle. Nous adaptons pour ce faire diverses techniques de fouille de données au contexte particulier de l’initialisation de sous-groupes d’une popu-lation d’agents. Nous montrons que les proto-types ainsi construits, combinés à un modèle de comportement approprié et à une action située, produisent des traces d’activité statistiquement réalistes.

L’article est structuré comme suit : la section 2 présente le cadre de nos travaux, notamment le contexte de l’analyse et de la simulation de

(3)

com-portements de clients, qui nous a servi de cadre applicatif. La section 3 décrit la manière dont nous représentons les informations pertinentes pour l’identification et la caractérisation des ar-ticles d’un magasin, des transactions effectuées (achats) et des prototypes qui peuvent en être inférés. La section 4 présente le processus d’ex-ploration de données proprement dit, i.e. com-ment construire des prototypes à partir des tran-sactions ; et la section 5, comment nous avons évalué sa robustesse et mis en œuvre notre ap-proche au sein d’une simulation multi-agents.

2

Contexte scientifique

La question générale de l’identification sta-tistique des caractéristiques d’une population d’agents à partir de données se pose avec une acuité croissante, comme en témoignent d’ailleurs plusieurs travaux récents, tels que la détection dynamique de groupes émergents [4] ou encore l’intégration dans les simulations de paramètres appris afin d’exprimer une diversité comportementale [11]. Dans cet article, nous nous plaçons dans la situation où les traces pertinentes de l’activité des agents sont repré-sentables sous formes de transactions au sens d’Agrawal [1]. Il s’agit en l’occurrence du contexte applicatif de simulation de comporte-ments de clients dans un magasin, où les tran-sactions enregistrées sont des tickets de caisse, i.e. un ensemble d’articles ; nous discutons ul-térieurement de la généralisation de notre ap-proche à d’autres domaines. Nous commençons par exposer diverses approches utilisées pour l’analyse des paniers d’achats et la segmentation clientèle, puis nous décrivons le modèle multi-agents sur lequel nous nous appuyons pour tes-ter notre approche.

2.1 Les techniques d’analyse et de simula-tion des comportements de clients Les techniques classiques utilisées en marke-ting, par exemple pour partitionner les consom-mateurs en sous-groupes ayant des habitudes similaires, ou pour détecter des articles ache-tés fréquemment ensemble, consistent à ex-traire des informations globales à partir de très grandes bases au moyen d’algorithmes de fouille de données dédiés.

La principale technique de recherche d’infor-mations dans des données réelles est l’analyse d’affinité [1], qui s’appuie sur la co-ocurrence d’articles dans les achats enregistrés. Cette

mé-thode peut être appliquée directement à des ti-ckets de caisse réels et permet d’inférer des règles d’association entre articles (i.e. X → Y où X, Y sont des ensembles disjoints d’articles). Ces règles sont caractérisées par un support (proportion des achats qui contiennent à la fois X et Y ) et une confiance (probabilité condition-nelle d’acheter les articles de Y lorsque ceux de X sont dans le panier).

Cette approche est très efficace pour la vente additionnelle (cross-selling) ou la montée en gamme (up-selling), et dans une certaine me-sure donne des indications pour le placement des produits en rayon (par exemple, mieux vaut essayer d’associer dans les linéaires des produits achetés fréquemment ensemble). La première de ses limitations est le temps de calcul, qui croît comme le cube du nombre d’articles [5]. Mais surtout, il est assez difficile d’utiliser les règles d’association pour diriger les achats des agents, car une règle ne fait que suggérer des produits qui sont associés à d’autres, sans indiquer com-ment amorcer le panier [16].

Une autre méthode consiste à essayer de pré-dire des listes de courses à partir des tickets. Par exemple, dans [7], un assistant personnel tente d’apprendre les habitudes d’achats indi-viduelles afin de rappeler au consommateur ce dont il va le plus certainement avoir besoin lors de ses prochaines courses, et de lui proposer des promotions sur mesure. Le but de cette applica-tion est très éloigné du nôtre, et les méthodes de classification employées ne construisent pas de représentation symbolique de la liste de courses : elles ne font qu’une prédiction babiliste sur des catégories générales de pro-duits. Néanmoins, ce travail démontre la possi-bilité d’opérer un apprentissage inductif sur des tickets réels dans le but d’identifier une liste de courses sous-jacente.

Quant aux modèles centrés individus, ils sont utilisés de façon croissante depuis quelques an-nées dans le domaine de la distribution pour aider la prise de décision marketing [15, 17, 18, 13], dans la mesure où la modélisation fine des comportements individuels permet d’éluci-der les raisons de l’efficacité (ou non) d’une technique commerciale donnée. Ces modèles permettent de prendre en compte les préfé-rences au niveau individuel, et même d’intro-duire une expertise psychologique [19], de fa-çon à construire une description précise des mo-tivations et des besoins de chaque consomma-teur. Ce sont ensuite les actions de ces clients simulés qui sont responsables des achats

(4)

pré-dits. Les hypothèses concernant les facteurs qui influencent les ventes peuvent être décrites ex-plicitement dans le modèle : elles peuvent être comprises et examinées par les experts, et vali-dées ou invalivali-dées au moyen d’expériences ap-propriées.

En contrepartie, ces modèles multi-agents, tout particulièrement lorsqu’ils mettent en œuvre des agents cognitifs, requièrent souvent une exper-tise qui n’est facile ni à acquérir ni à implémen-ter. De plus, peu de modèles de simulation de magasins prennent en compte les aspects spa-tiaux qui sont pourtant considérés comme es-sentiels dans la grande distribution, comme l’al-location des linéaires, le placement des articles, le dimensionnement des caisses, la publicité sur le point de vente, etc. Dans de précédents tra-vaux [18], nous avons abordé ces questions de façon à concevoir une simulation de supermar-chés où les agents sont situés dans un environ-nement spatialement réaliste. Ce caractère situé, comme nous le montrons plus loin, est néces-saire pour transformer une simulation ad hoc en un véritable outil d’aide à la décision, ca-pable de prédire comment les clients réagissent aux changements de l’organisation spatiale du magasin, aux événements commerciaux ou en-core à la pression concurrentielle. D’autre part, la fidélité des profils de consommateurs doit être respectée, afin d’assurer le réalisme non pas uni-quement des actions effectuées par les agents si-mulés, mais également de la diversité de leurs objectifs d’achats.

2.2 Un modèle orienté interactions

L’approche que nous défendons ici s’inscrit dans la continuité de nos travaux antérieurs sur ce sujet [18, 13], dans lesquels l’acqui-sition d’une expertise et la conception de di-vers modèles de simulation imposaient une dé-marche incrémentale et empirique, d’où l’usage de la méthode IODA [10] pour aider les psycho-logues et les experts marketing d’exprimer ex-plicitement les règles comportementales adop-tées par les agents.

Pour mémoire, cette méthode « orientée interac-tions » considère que toute entité du modèle est représentée par un agent ; chaque comportement est modélisé de façon autonome par une « inter-action », i.e. une séquence d’inter-actions impliquant un agent source et un agent cible, soumise à des conditions d’exécution. Une interaction est réa-lisable si la source et la cible satisfont les condi-tions. Agents et interactions peuvent être

déve-loppés en bibliothèques indépendantes, puis la simulation est conçue en assignant des interac-tions à des couples d’agents, au sein d’une « ma-trice d’interaction » (cf. tab. 1), qui constitue un moyen très visuel d’exprimer quelles familles d’agents sont autorisées à interagir, et au moyen de quelles interactions. Cette matrice d’interac-tion est traitée par un moteur de simulad’interac-tion gé-nérique, qui a pour fonction principale d’évaluer les interactions réalisables avec leurs sources et cibles respectives, de façon à déterminer quelles actions doivent être effectuées par chacun des agents.

Le modèle de comportement sur lequel nous nous appuyons dans les travaux présentés ici, a été développé pour la simulation d’un ma-gasin de détail dans le but de former des ven-deurs en les confrontant à des clients simulés au sein d’un Serious Game immersif (projet For-matStore [13]). Le comportement générique des clients simulés a donc été validé par des experts en marketing et, dans toute la suite, il est consi-déré comme figé. La matrice d’interaction cor-respondante figure dans le tableau 1.

En résumé, les clients ont un même comporte-ment d’ensemble, mais diffèrent dans leurs be-soins, aussi sont-ils dotés au démarrage de la simulation d’une liste de courses qui spécifie, de façon plus ou moins détaillée, quels articles ils sont susceptibles d’acheter dans le magasin. Ces besoins peuvent être spécifiés avec préci-sion (par exemple « SodaCola light, pack de 6× 2L ») ou au moyen d’une description vague (telle que « eau de source ») qui peut s’appli-quer à de nombreux articles du magasin. Cette liste de courses est utilisée par les conditions de l’interaction Take (qui peut être effectuée par un agent Customer sur un agent Item) pour rendre compte de la décision d’achat.

Au cours de la simulation, les interactions ont lieu selon la matrice d’interaction et l’état et la position des agents, en respectant un compor-tement cohérent pour les consommateurs : les clients artificiels cherchent tous les articles qui figurent sur leur liste, durant un laps de temps fixé. Ils peuvent obtenir diverses informations utiles pour accomplir cette tâche à partir des af-fiches, panneaux, caisses, articles, etc.

Dans FormatStore [13], ces listes de courses étaient soit aléatoires (selon une distribution de Poisson basée sur la taille moyenne des pa-niers), soit définies « à la main » selon une scénarisation particulière destinée à placer l’ap-prenti vendeur dans une situation

(5)

probléma-TABLE1 – Matrice d’interaction qui définit le comportement de tous les agents de la simulation. Par exemple, l’intersection entre la ligneCustomeret la colonne Item contient deux interactions, Take et MoveTowards, ce qui signifie qu’un agent Client peut soit prendre un agent Article, soit s’en appro-cher, en fonction de la priorité (premier des deux nombres — ici, Take a la plus forte priorité) et de la distance entre les agents (second nombre), sous réserve que les conditions des ces interactions soient satisfaites pour chacun des agents. La colonne ∅ contient les interactions réflexives (i.e. où l’agent cible est l’agent source lui-même).

XX XX XX XXX X Source Target

∅ Customer Item Checkout Queue Door

Customer

Wander (0) MoveTowards (2, 10) MoveTowards (3, 10) StepIn (5, 2) Exit (8, 1)

GoToPlace (1, ∞) Take (4, 1) MoveOn (6, 1)

WalkOut (7, 1)

Item Notify (1, 10)

Sign Notify (1, 10)

Checkout Close (10)Open (10) CheckOut(7, 1)Notify (1, 15) ShutDown (9, 1)Handle (8, 1)

Door SpawnCustomer(1) Notify(1, 10)

tique. Dans les expériences décrites dans la sec-tion 5, ces listes ont été construites au moyen de l’algorithme d’extraction de connaissances que nous proposons. La question que nous dis-cutons dans la suite est donc essentiellement : comment construire efficacement de telles listes de courses ?

La réponse triviale consisterait à utiliser telles quelles les transactions enregistrées pour « re-jouer » en simulation les achats réels. Mais les achats réels ne sont pas la cause du comporte-ment des clients : seulecomporte-ment leur effet. Ils ré-sultent précisément de la confrontation de deux mécanismes : d’une part, des besoins plus ou moins précis chez les clients, et d’autre part, une certaine organisation spatiale du magasin, la dis-ponibilité ou la visibilité des articles, etc. autre-ment dit le caractère situé des choix que doivent faire les individus dans leur environnement. Les utiliser en dépit de ce caractère fortuit priverait la simulation de toute capacité d’extrapolation. Nous tentons donc de combiner l’identification de clients similaires (comme dans la segmen-tation clientèle classique) en classifiant leurs transactions, et l’induction d’une caractérisa-tion abstraite de ces classes, en l’occurrence par des listes de courses types (prototypes). Nous pouvons dès lors utiliser l’association entre des classes de clients et leurs listes de courses pour générer des profils d’agents susceptibles d’ache-ter des articles similaires. Notre démarche peut être vue comme une boucle méthodologique comme celle présentée sur la figure 1 : à par-tir des transactions (tickets de caisse) enregis-trés, nous pouvons extraire des prototypes re-présentatifs de divers groupes de transactions si-milaires (listes de courses) ; après quoi, ces pro-totypes peuvent être utilisés en simulation pour produire à leur tour des transactions simulées,

qui peuvent être elles-mêmes analysées par le même procédé pour vérifier que les prototypes issus de la simulation sont les mêmes que ceux issus des données réelles.

TRANSACTIONS e.g. tickets de caisse

PROTOTYPES e.g. listes de courses ENREGISTREMENT EXPLORATION DE DONNÉES (1) SIMULATION (2)

FIGURE 1 – Un aperçu de notre démarche

mé-thodologique. (1) Notre processus d’exploration de données construit automatiquement des pro-totypes à partir de transactions. (2) La simula-tion utilise les prototypes pour paramétrer les comportements et produire des transactions si-mulées, qui à leur tour peuvent être segmentées en prototypes à comparer à ceux issus des don-nées réelles.

Pour rentrer dans les détails de ce processus, nous devons d’abord expliquer comment nous allons décrire les articles, les tickets de caisse et les listes de courses pour leur appliquer le trai-tement le plus adapté.

3

Représentation des connaissances

3.1 Identifiants des articles

Dans la grande distribution, chaque produit unique est identifié par une « unité de ges-tion des stocks » (UGS, en anglais SKU pour « stock-keeping unit ») afin de tracer sa

(6)

disponi-bilité et la demande. Les UGS ne sont pas des-tinés à décrire la nature ou les caractéristiques des produits de façon standardisée, mais seule-ment à les référencer. Ces méthodes d’identifi-cation ne sont pas très adaptées pour extraire autre chose de des règles de co-occurrence. Il est en fait nécessaire, pour caractériser ces pro-duits en vue d’une analyse explicative, de leur adjoindre des connaissances marketing perti-nentes (famille de produits, qualité, prix rela-tif, marque, label bio, etc.). Cette étape peut re-quérir une expertise pour évaluer quelles sont les caractéristiques jugées pertinentes dans un contexte commercial donné.

Dans ce qui suit, nous identifions chaque produit unique par un tuple d’entiers strictement posi-tifs, qui encode les valeurs des caractères jugés pertinents. Par exemple, si les propriétés utiles sont la marque, la famille du produit et une des-cription détaillée (e.g. respectivement « Soda-Cola », « boisson », « soda goût cola »), alors les produits sont identifiés par un triplet d’entiers, e.g. (31, 4, 15). Cela permet une représentation de tous les produits à une granularité arbitraire-ment fine, incluant des qualifications très spéci-fiques comme « bio », « commerce équitable » ou « sans gluten ». De plus, des valeurs conti-nues comme le prix ou le poids peuvent être en-codées moyennant une discrétisation préalable (e.g. 1 pour « bon marché », 2 pour « moyen », 3 pour « cher » ; ou de 1 à 4 pour un condition-nement variant de « petit » à « familial »). La transformation des UGS ou d’autres méthodes d’identification en ce genre de tuples d’entiers peut être effectuée automatiquement, en effec-tuant les jointures appropriées entre bases de données.

3.2 Transactions et prototypes

Notre processus d’exploration de données s’ap-puie sur des informations d’achats enregistrées ; les plus accessibles sont les tickets de caisse. Une transaction au sens de [1] peut être calculée à partir d’une simple énumération des produits uniques (sans doublons) présents sur les tickets, sans prendre en compte les quantités (comme [1]). Ainsi, à partir d’une liste d’identifiants de type UGS, nous construisons un ensemble de tuples d’entiers.

À partir de ces transactions, le processus que nous appliquons consiste à extraire des proto-types qui visent à décrire un « ticket abstrait » caractérisant les groupes de tickets similaires. Pour ce faire, nous introduisons d’abord la

no-tion d’article prototype. Un article prototype est également un tuple d’entiers, mais pour lequel la valeur 0 est autorisée comme valeur géné-rique (joker). Par exemple, un produit carac-térisé par « n’importe quelle marque », « bois-son », « soda goût cola » peut être décrit au moyen du triplet (0, 4, 15). Le triplet nul (0, 0, 0) signifie « n’importe quel produit ». Un proto-typeest alors simplement défini comme un en-semble d’articles prototypes.

Ces prototypes construits à partir des données peuvent également être utilisés comme « listes de courses » pour les cliens simulés, car il ar-rive fréquemment que seuls quelques traits des articles souhaités soient effectivement spécifiés. Ainsi, M. Dupont achète du « soda goût cola » sans égard pour la marque, tandis que M. Du-pond est susceptible d’acheter n’importe quel yaourt bio de la marque « Yoopla ». L’usage du 0 comme joker est fort utile pour exprimer de tels souhaits vagues.

Dans la section suivante, nous montrons com-ment de tels prototypes sont effectivecom-ment construits à partir des transactions.

4

Étapes du processus

d’explora-tion de données

L’analyse des achats procède de la façon sui-vante : 1o la base de transactions est

partition-née en classes (ce qui suppose de définir préa-lablement une mesure de distance entre tickets, elle-même basée sur une mesure de distance entre articles) ; 2o pour chaque classe de

tran-sactions, tous les articles qui apparaissent sur les transactions sont à leur tour classés pour construire des articles prototypes, puis le proto-type composé de l’union des articles protoproto-types est évalué par rapport à toutes les transactions de la classe.

4.1 Mesure de similarité entre articles Comme certains articles souhaités par les clients peuvent n’être pas complètement spécifiés, il est à prévoir que des consommateurs dotés du même prototype (i.e. de la même liste de courses) n’achètent pas exactement les mêmes produits. Aussi, si l’on calcule une distance entre transactions uniquement en fonction des produits qu’elles ont en commun, il faut s’at-tendre à ce que la classification des transac-tions soit de piètre qualité. Nous proposons au

(7)

contraire de moduler la comparaison des tran-sactions en prenant en compte la distance entre articles.

Une façon simple de procéder est de calculer une distance « à la Hamming » (ou réciproque-ment un indice de similarité de type Hamming). Si deux articles (ou articles prototypes) sont re-présentés par les tuples d’entiers I = (f1, ..., fn)

et I0 = (f10, ..., fn0), leur similarité est définie comme suit : σ(I, I0) = 1nPn

i=1ς(fi, f 0 i) où

ς(fi, fi0) = 1 si fi = fi0 ou fi = 0 ou fi0 = 0, et

ς(fi, fi0) = 0 sinon.

4.2 Mesure de similarité entre transactions Afin de comparer les transactions, nous sommes partis d’une mesure fort employée pour le cal-cul de similarités entre ensembles de tailles dif-férentes : l’indice de Jaccard [9]. Il est dé-fini comme suit pour tout ensemble X, Y : J (X, Y ) = |X∩Y ||X∪Y | = |X|+|Y |−|X∩Y ||X∩Y |

Comme nous l’avons expliqué ci-dessus, l’usage brut de l’indice de Jaccard ne peut sa-tisfaire nos besoins, dans la mesure où il ne fait aucune différence entre des ensembles disjoints et des ensembles qui contiennent des éléments proches mais différents. Aussi, nous en pro-posons une extension, basée sur la similarité entre articles. Elle consiste à calculer le score des meilleurs appariements entre les articles de deux transactions, par similarité décroissante. Ce nouvel indice est noté dans la suite JBM

(pour « best-match Jaccard index »). Pour le calculer entre une transaction T = {I1, ..., Ip}

et une autre transaction T0 = {I10, ..., Iq0}, nous appliquons l’algorithme suivant :

1. Calculer la matrice d’appariement (σi,j)

avec σi,j = σ(Ii, Ij0)

2. Pour k de 1 à min(p, q) : (a) Calculer µk= maxi,j(σi,j)

(b) Identifier un couple (i?, j?) tel que

σi?,j? = µk (si plusieurs couples

(i, j) vérifient µk = σi,j,

sélection-ner un couple (i?, j?) qui minimise :

(P

i6=i?σi,j?+P

j6=j?σi?,j))

(c) Remplacer (σi,j) par la sous-matrice

obtenue en supprimant la ligne i? et la colonne j?

3. µBM =

Pmin(p,q)

k=1 µkjoue le même rôle que

|X ∩ Y | dans l’indice de Jaccard classique,

de sorte que nous avons : JBM(T , T0) =

µBM

p + q − µBM

Par exemple, prenons T ={(1, 1, 2), (3, 5, 8), (13, 21, 34)} et T0={(1, 1, 2), (3, 6, 8), (12, 13, 14), (1, 1, 34)}. Comme on a T ∩ T0 ={(1, 1, 2)} seulement, on aurait J (T , T0) ≈ 0.17, tan-dis que l’on obtient JBM(T , T0) = 0.4, car

plu-sieurs articles de T et de T0 sont assez proches comme on peut le voir sur le tableau 2 ci-après. TABLE 2 – Exemple de matrice de similarité

entre les articles de deux transactions, utilisée pour calculer la valeur de JBM. Les valeurs

des µk sont en gras. On a ici µBM = 2 d’où

JBM = 3+4−22 = 0.4

σ(I, I0) (1, 1, 2) (3, 6, 8) (12, 13, 14) (1, 1, 34) (1, 1, 2) 1 0 0 0.6666667

(3, 5, 8) 0 0.6666667 0 0

(13, 21, 34) 0 0 0 0.3333333

Il existe de nombreuses mesures de similarité et de distance qui peuvent se substituer à l’in-dice de Jaccard [6] ; en pratique, la méthode que nous proposons est également adaptée pour les plus fréquents d’entre eux tels que les in-dices d’Ochiai [14] ou de Sørensen-Dice [8], qui peuvent être étendus suivant le même algo-rithme de meilleur appariement. Ce point précis a été vérifié expérimentalement au moyen de la même procédure que celle que nous présentons dans la section 5.

4.3 Classification des transactions

Nous utilisons ensuite l’indice JBM pour

cal-culer une matrice des distances entre toutes les transactions de la base de données : ∆BM =

(di,j) avec di,j = 1 − JBM(Ti, Tj). Cette

ma-trice de distances peut être soumise à de nom-breuses techniques de classification. Nous avons choisi un algorithme très classique de classifica-tion hiérarchique, en l’occurrence celui implé-menté dans la bibliothèque flashClust de R [12], et qui nous permet d’obtenir très sim-plement des dendrogrammes en fonction des si-milarités entre transactions.

Ensuite, le dendrogramme est découpé en K classes (e.g. au moyen de la fonction cutree de R). La valeur « correcte » de K n’est pas ai-sée à déterminer a priori, aussi nous avons ten-ter d’évaluer empiriquement la hauteur la plus appropriée pour couper l’arbre, au moyen de

(8)

prototypes générés aléatoirement avec une va-leur connue pour K (cf. section 5). Il est apparu qu’une hauteur h ≈ 0.6 − 0.7 permettait dans tous les cas de trouver la bonne valeur de K. 4.4 Induction des prototypes

Construire un prototype pour une classe consiste ici à trouver un ensemble de tuples (autorisant le 0) qui obtient le meilleur score possible, quand on mesure sa similarité avec les N transactions de la classe au moyen de l’indice JBM. Il doit

donc être aussi précis que possible tout en intro-duisant de la généralisation lorsque c’est néces-saire.

Le processus commence par une analyse de fré-quence : pour chaque article I qui apparaît sur l’une des N transactions de la classe à analyser, nous calculons φ(I) comme le rapport entre le nombre de transactions contenant I, et N . Les articles rares, i.e. pour lesquels φ(I) < ε, peuvent être considérés comme des achats de circonstance ou du « bruit », et simplement ignorés (en pratique cela fonctionne assez bien pour ε ≈ N1, i.e. des articles qui n’apparaissent que sur un seul ticket). Inversement, les ar-ticles fréquents, i.e. pour lesquels φ(I) > θ, peuvent être considérés comme indispensables et sont maintenus tels quels dans le prototype à construire (empiriquement, nous utilisons θ ≈ 0.95).

En ce qui concerne les articles de fréquence in-termédiaire, nous leur appliquons une nouvelle classification, afin de détecter certaines régula-rités, par exemple que les produits « SodaCola » sont toujours associés à du « yoghourt bio » de diverses marques. Pour cela nous calculons une matrice des distances entre articles de la classe considérée : (Di,j) avec Di,j = 1 − σ(Ii, Ij),

et nous l’utilisons pour construire un dendro-gramme des articles. À nouveau, le nombre de classes pertinentes KI n’est pas connu a priori.

Pour l’estimer, nous utilisons l’algorithme sui-vant pour les valeurs possibles de KI :

1. Pour chaque classe d’articles : calculer un article prototype en plaçant un 0 lorsque les caractéristiques diffèrent ; par exemple, si les articles de la classe sont (1, 5, 7), (1, 6, 7) and (1, 12, 7), l’article prototype corres-pondant est (1, 0, 7).

2. Faire l’union de tous les articles proto-types ainsi que des articles fréquents, ce qui donne un prototype candidat PKI.

3. Calculer le score de PKI comme la

moyenne de JBM(PKI, T ) pour toutes les

transactions T de la classe analysée.

Nous conservons la valeur KI? pour laquelle le prototype associé PK?

I) maximise ce score. Cet

algorithme est appliqué aux K classes de tran-sactions pour générer K prototypes.

5

Validation

Les prototypes ainsi obtenus ont vocation à être utilisés par un processus de simulation pour produire de transactions artificielles. Les agents clients effectuent des comportements de façon autonome, en fonction de leurs listes de courses contenant des articles prototypes (i.e. avec des jokers), et ce dans le contexte situé d’un ma-gasin réaliste. Dans la mesure où des articles peuvent manquer ou être difficiles à trouver, on ne peut toutefois s’attendre à ce que les transac-tions qui résultent de la simulation soient exac-tement identiques aux transactions réelles qui sont à l’origine des listes de courses.

Pourtant, nous devons nous assurer que la si-mulation est capable de reproduire le même type de comportement d’achatque celui observé chez les clients réels. Un moyen d’y parvenir est d’analyser les transactions produites par la simulation, de reconstruire les prototypes cor-respondants au moyen du même processus de fouille de données, et de les comparer aux pro-totypes issus des données réelles.

Toutefois, il est nécessaire avant d’analyser les résultats de simulations multi-agents de vérifier que la méthode de construction des prototypes est suffisamment robuste. Sans cela, d’éven-tuelles différences entre les prototypes qui re-flètent l’activité des agents et ceux qui caracté-risent les achats de consommateurs réels, pour-raient trouver leur origine non pas dans le com-portement des agents ou dans les particularités de l’environnement, mais seulement dans une forte sensibilité aux perturbations du proces-sus d’exploration des données. Nous présentons donc ci-dessous comment la robustesse de notre méthode d’analyse a été évaluée.

5.1 Simulations stochastiques de l’instan-ciation des prototypes

Afin d’effectuer des tests assez complets, nous avons généré plusieurs ensembles de proto-types, chacun composé d’articles prototypes aléatoires. Puis, pour obtenir une simulation à

(9)

483542379599 420625 64515433316 196141560 569707216 279289 418 52354347569471537757168082180274 533566 110619698574735198 106419563 774140265111713737 41349215237515327609 5266624643 153 671678 643 120656 497663 218 28322513299 644720 85650918244547247 116408 10326114518628624457512189452796 212217275164752 143 321459 4827025844946027317245557822028448080040776736 428556626403 444538 343440 100424426262502367425605409173748133381750469313397206142570658641788203229466537635301356298465567315340514170209354797657959974046757226777712131151 149733414434783329783025496993394317623413676717275626450147668266516317 287594188306 727 587744310506524675 277673109243352 227596 632 16264 719350476127410 13775526328521463767271959693 44648558 85 2781 689 199799 17360107487 749 314665672 6365176390169276441112660402954747233792346326 385624 320398197739579347 52436190126399 86761117 535695 36430224337369 191323548 54410618627696 11461 205507115305481655124631295762703832366409 361772201705146 500662 1238 135519192580 62147401 318 269622 94 144 463531 581242449484 230380488657778798 13685 322457768 545211590776525 89168319583 791 167611623634477575 6544718387 208540129292179390789161 15523127214 128511 400309797453184225549423 252388 221 35670 734 554642 260486775690238 239522 732 234770 412125248 58207138328461231717591 69351204588 28335 613692 373759 448312429 667213332250753 647 573721 9817661737821 130518 794751747709697652646636589562552527521510472470456435402368290281222193185150888768432790786757730714701677676638607601598592561559553517443417415406376375351333296268253249235228174118163 32525711 194661490532 764278280771 458564 427 557288421 254 251464 792 37456555460371633 76657753620225 59364 241195 4554130897232529485348 20259 793 725754 717610471586712331 628787 649 113716491604 722629608 3656543939377639745 53784210593 615 729255479 81 437 131528503504132370 616389 156439 158746700 664758 454 223 294653 76034474738 728 219496 68383256630 438782 84432686 152612 157166741358679 779 539614 58225833642278529139540465044555534570304297688493620724102468462175391226568687353282520691706366334 104433 74371451 585357 5975344051833724891245105591338341674159648742708330601877732418168166946141635934250307 6 233505492773 311 68469 501 108 42162 154133922933631927311913410120060371812227240726 39680703324551139178 600659 5462 4424993627803943 49817738435550855071071168223165382 606666 704 148495 546595769 160300 64411 47830473 530 303386 0.0 0.2 0.4 0.6 0.8 1.0 Dendrogram Height 2063 6642587192299010422896 1504 19742482 25583162 2592097 2082 11521364411 2203 576176723422871278619162224 16712538 25173168 1710 15252951 3106 8361088 244412428 21222882201134 617 10042118341 2829 16532242 840126119419131743311519272914 2380887269326873169204517063191 1369 18683 642 11132765 675116623142407 14762825 1911195898 23562462647194029601647 68129092544 25612804 183419591972382 51396 2416 3082463 262707 515129220342217 1902 1040306922562573199 509 70 222293 181240519541263260122722396 2831615 1675 11401813 1642 2956183514412120990 1481 756779 264 178975 98511782534 442019 25962604599165666112641870 504749231106813092414 822422153156 9761532 20992659 2337 223226273742585 12841556 1054121343758 84 2237289319422060 3271530103310392736 13463055 1599 3023146949187410501059 2352920 21411236 9221543 2067 2162044162417722346 10081925 118313945643044 554107717831872 21372318 310418902644414 2490 29313067158 2029 2638 36990621821621689 1149 18381881475232521549731845301019222386 711 3162971 94711081295 7351253 2726 139465 1 1027 367 17252236 820 1351828 2630 2234 9682481 8133077986173517 2977 2992294930 2899357305822357632762 1583 26821493017174519386809651937908 14862746 3054 14702611 3186368206814921917 16322504 2624 7691546 9041353 20142941425 566282429393084 2729 9432929 57 49421029511224 14662984 297522662855 263 10191055182229631436 11611205 15162219 3026 25192979 28442974 397 6901318 46250 8029458963189 3020196730282962 18512695 160731609331063 3184 19562017 125254 444807 10892477 27132803267527384311499 8342867 3532194299886713301045512105 240623502665233927681294 9562289 417 7532424 528544261887421113008 17983301190 27218882352 17813842381 14531852 73725141397276714452348 1427 9672859 910 10451237 639 659761 30788921320186268816391323 1893 25022569 12422005 1758 1231551 13831663438 2995 11072640 26172324 11213083 24582589 2428 2955 6241975 10181137 1879 148525792599 19002280 20692781 3196394 7452226 7225052255 2431757 142 236386 17742411086298218922331 486 13722774 80030651608250727157871433 1549214615501747 17642933 4161248 2663228 2532870 2916300 6066828823772669 3019731 2479 2127 10302074 3041 1795 13272389 19042523 3125 1971308513992653484 2718 1461939 1299271421858302894 1184 22922316 895 38885013031849 111109 150828302841 53120702935 1701 25472648 319148329086452177654746 15581987 10961272 2271 176101210031017 7781765 55831662847 6081375 4 8411825 28113087 40 2405 1740 1317173124302484 402 11049282053 22502937 1381496 9701367 9451707183225011842 83572 2862 11862705 1875292513101962 9921037 22253130 2658 17202436 37922811542 532437 69 1823 4802708179427313113 2591262238717351928271713352969144230374813050 22281642062305 23022441 507607944133921751670 7551930 2869 14391616 21862257 18262290 4049402950 454573175217 1304 3128 15342103 1880 205232291525222806 718 8572176 770 10981536 574 21022752836 1082220729065115408092938 1270 16301837 17223136 231113727178 3211469 2900 1802593 23712525 19603098 5278222691196747156212012131 1431329 8521677 27548082089 106417921564 30402880256471250430157913822719 99112 245998 7867943821949 1620 17462168 432 21522307 1021 14202584 18003031 2756 15384871079 117263770523066571810 3711882 1978 15551692 806 783 1131 2171288 897 6312499 11822166 2101288730 18682229 2512 15612858 1262 2652 202514191610 1600 1722957 49514841488 1301256014981696 12022890 11511539131628 1345191816012066 48 2865 279612781885 2750 115 2184508 1114 2326 112015351430177 1618 17333157 772 42221 2734 15 2513 19902180 342 26411655608661362 9 2247276425551779 23512470 460 6691464 2887373 11768692061335632 17141948 12772788 21552309 418 29423831804 4882295 207314432744 2338 1544201330613080 114310221 111619852940 846868 31416527982997278181661127732839604133253617285691907 2388 130016159231222541273364013192364159421131750 14381963 22152656 3097 2264 20832993 1481865 717 855491 2 2861207 2794 12962778 142511691167123315241155555 633249424152581 23201889 3662324591477520 5371658 2710 2874287311712655 12542128 12821958 216791291930942651 8 12451643 955 5161259 1894318230741209 76122 7011705 348953172921611541286464685666311532149159618888652885 10955901 1521992270318525902845 1220246121226 8281991 248995734 2039 52528188611170 280 163126661199812769 17193180 3072186618693171 238527164622686 12942013028531644 2711 40174474018212159 2691506 1545 13962539 29646135381356 8031449 1859163 1276 8292930 169917523919432822999 2570 17492571 11332790 2723 19952088 2926 542209312891410 2273 5 1920 110394195712602003 1239253313372282 4062603 13669392378 14121043952 1478 18632528 12982819 15002041 3029 2654 24933110 724230127983013 24022518 3073 10752973293214351574 1083 19313076 26682793 7252072 1667 445 10111101 29 30934234481081129728752204243187519451313927 10781379 22731717241844 198424652179 18582983 16501801 501118863 283713402958 1651183 11441737 7092347 1069 12431748 99 2065 10932443 226520582649 2742 291814184826102133 27271423 17543107 2018237926051602461136125532008922438 31 18141921308210461128104728571405 625 12341831 24512813172760513912233 13411578241724697762683 214238137 1582 156718712548 2464 10412355 7232384815 1843 2104191 1090 1167413 20044105571652281610572626 64324271846565 1533 1495 3595008601462 1654609 2285 123527597192680863 8541126 588 145218071977 8242524 435 27921487 14512801 28885592244 52 12792492 3642706497 11363190 980 1902009 799247330051877436 4077162080 15907621460 2197 286815632586 189554319036961191 2021 15313133 3167 2800 49 1148 122931435624851147739168010514802707 14672260 1521987672630 19815936871097239013781142279 34742419325524921613 14581588173423281393935161131012614104261673 8493066 303 2546 274111728862972 2536899 17093615272515 10071223 2723172 25771355547 2919 31094982452 17912036 79338391459 25113138403703 3227854198733367157901702 15172245 133663818972632616 1957 2124 20752206 11721519511248612661512 400223811691979221121827891479 13072480 2031 2147 13421461 248313712802 126 139222122671424259534622 3036 2787 2262861 182 11828522304230812691657 2242843 240 31983988132597712161365816 1780 82611871909 14002620 577 1106185715131773 1951 5821668 14092709 27751569162449 31652684 58721321992203520622361 2989 17392336 145 28151212674 11742100 25422758 1674 122826728191238 9291510 1782134299 1738 15371697 76517113108 6951350 4792616 238366 729934 545 16419791715201223331659 27841173 18208421769 523 26112042985 13631883 5147821221 5023147324 52695952953022538842202 1493 1016106224962623 996909 693827 202 13061402 4901672 30531732 136029591351221619262598 2651418 1283200 1570 27512823 19992913 7671473328 19946 315 2474 2895314317892907 21622988 5851741 246439 11572724301674 879 2510101 2130 1271472 2516 2832764 1162 61 2662110 2447 332 2426361570 17852468 1763247 1447 1029158424572556 1753915 22917591217298710262071 1617 1929289812912055 1568297617702866 2737469 1860 62721261626170343315982612 12252435 673 141 3291645 3033252 19652568 17082334 468 1946260616232129 91411182050 349196822002418 449148218672676108715017842341230025263014290513331604 3178188 19555902850533 11682608 1348 2508 294320272838 5912965446 18336361125 948 12083154 167823583934772809 3202201629237339151829672391 1589244228723090 86413442671274111198211256240314562139 17182410 1685 26022891 1387270321153402678 17862049 268833196 2096 19662924 63515475356912573307 2936 12461471139520951840 1471240 2432 2011060 2254886 3261368 1514211420242897300289157120981666309811 28492884 1572757 1560 3021 17612520 2183 44318069952981305 3012 2952282 19532434 1193135213252255862419775231914742037 1575 277727121415 21922860 18181712843142126382360 87 133425092340167628410611377314522971247205631972743911116329216341941464142827852740164818847731694260013221384268924712467111174 16882231 766679463 3991910358 2732770 24442010567 3192263315268761222 1633196120519621994 22222643 49913 2761805 15973022270015913174 624221554 296228726853068 209 1552 8052745 20943193 556562 16062854 65 1784 21253183 1972 16862820 11771401 317921362701 2267 2158 6582551 1573795 1811239916192365 323 112989 1440 3342043136450352950193613572269 21092283 16292720870 1723285613882367 28532108 1934 15572878 1411539 17301878 1331 25321682216314942375108414541775 1964 21952564 2776 2033 18532170 19763095204844 20482421 1386 1001142517162826 1407 21712227 14163135 274831493045 1824 3027 22233148 6822928 2312 10852335 288329782362 22511625 1381679 3105 942994 18735461199 372 2771 29223175 310 9721417 2828 2580 11462970 1717 13431528 2646 23873060 1581 53670130 2376 6 568 151584 1052262119932567 92614374417432411578600 12652440 10512214 1036 6207892917 1793127 59614698 3176 72 8022011 14902563 18128 3116 222014441998 19871 3099 285287 15201609 1756 984 29730242980 12753088 183977717992466 9971446 15092377 15011451693 2797634710 2500 23572398 911133502472 268442 5631506 14592575 2757 1891215016902209 6221952 119273 157 2085 30522112 1338 2370 2799 13082747 21482566 2892 20072028 2079 18472877 72031537213150 23691829280818502699 2425 2193 2160 311254991828279252354 2679 34590213162609 534580 16602647 380771 17602291 1290 2498 2506 8711091 171375637303985 1553 3158 2923 11802345 5892673 699 5521219 1076 2645 2284 74 1924 6501970 3119 3103 22639692274 2393 893900 312253512062576 3051 8231698 697 28791463 22462557 4731071 16492791 1565 1000 16223132 365208431815153187 12142221 655 21873043 389 727185527611548 11812582642 245011352116 583303220321432512 2046 27662760 5612543 2445 1551700 101031312550258810252495 38594 1112792 1595 21442634 2353 10092530 3177 35122134511129 24886306 3064 648903 11597411755 209111581742 16022239 4552488 2639 10331515031403 30253124 120028211431 1390 159732 21811408 24012755 272210701434219 14292022 1827 17762540 140415662934313 25774 28638382889392 3120 20572848 1035 20592344 7972814 314021172248 2876 7362299 214019862961 303024462392 457155910672559352092 4827147001503 7521919 30632947 11022042 23971586 540982 2081 5751646 2968603 127240851022611593207727921576417268331933300734427042278 35427631465168116352090 2363 15692531319519322657780 1778 11001448 232932126711111905 3056 678847 1210 1376831 179682516401080 2635708 2702 233223682038 1195311711853114796 1389 6066103188 676 3761472 1028207829555313542991267093195425922851 16032783 889 1686282906 18092491 7682554128619351215248713701856 250354818861996 7481022 1274185 2565 2782124880212123231251 17663134147510822316652031803 26903102 107326811067332413 602 11051901 31641049726 1212 30462151120375260170468 231319972310 30382412 10953121 2780132416212537 19063048 19154581030042016133 1092 2327 115020541655243721321535411110 26502460 23833071 1771 15223075 15071491781 30923023142210744277063015 18191989 660619207 37872827722453 19732583 1969 11892881 839 5981281 16959731372994 23212999 229418961768168316361104612047198318761130907817751 1950493960 140415 594 2954 3 1287 2218 2619 15802191 8042400 1489 11412277 102430 1005 202612581160 3126684206422963111 30703001 16141751 152945385192333 878 70441 98 2840 1861518 10347021154 56 2521 30961255208 2903 2366470 10063152 54 1099314420002433 23 315924048942911128178721902268 3006 26253129 224964969436081822583091 113812321426 1218 6012040 2173653 2015100222932779 27 125710582698 1044 1197 6665625292111014 2904667 166519 1326317319146261777 97 29531066 25722831 2834395 1797 22592455 8771115 2597 2317 13111505 2835 10382178 2276 21192662 100 4295211815 22432409 1947 13121695 920152310312169 1802 483595304988 2189 20023049 3112 166652423641 6622817 257818878018822343 229819122349 3170692 2981721 2145196 11752422 2329275 298611562135 8911592 2230 12312631 273950938 13151347 9212948166425052545184 30576772478 337 1577 270333 1349476 1244 685 8591065 249 1122759 2286 2582 4742448 1836671 1123 27282475 3047 3123513712 1053478 1539216526281132931020 2210 200631002143200 1864596 10151314 549 2439 1230149621742901 793 4581511 77 18081273 85818981385 25542123742753 689178828053194363963266128462106311820762629 9712810 46681222052497186 1124 571202326962725 21983062 40846783520201687237216382301293 1502 1359269713212574 644 2331980 266718724562051627 107 5501450239423031094832 1398125248510237 3003618 1322134 30343142 2749 213826921908281227951457 11272322 8839051312772199 20 16624529084812032454 30182395231517449832359917208726608371227170967 1587 7381605 3079210713741164440 26641684154362 9782607 81 189921439741830137323429211988173621232833284225944567542240 1612 26363016 10482001 281966 2420242916691139666 2164 294426772918 88 2912179329274095225811249 791 10131194 13052966 171 4472188 25626152730220830111576224131631358140629493081119821723161303599312801817621128523731762144273219449641585121116613086 937103210723089 29101380434 11792196 2615 3903009 58 8451328 8721413 19823139 2086742961686 7502030 2946885355 34 3181 8621923 17902262 11652735579 1414 713 2902 12413155 189 52430424712613 3982527 29962891497370114278827522807 21562252 18542476 1162122 95814682694343 1268 8901455 2330489 10563059 1637 1841760 9243000 0.0 0.2 0.4 0.6 0.8 Dendrogram Height 507 508 506 505 501526 519 520 511523502528 14 2166 52 70 23 35 87 8 68545 49 2 44 65 27 4055 78 53 71 33 10 358 86 42 136 22 48 1812 67829803111 13 726857 8854 7447 9373 92 483 9517 2659 9116 9639 56 98 5030 89 46 637932 19 84 69 24 29 5125 99 9753834 61 94 37 76 7590 43 81 15 28 20 60 6241100 77 764 504 509 527 513 515 521 503 522 222 271230 285 206 243 227 265 297223 217 293 263 276258 281287218 242 202 292 283235 254 290 240 272 228 275 209 251 232 249248 277241 262273 298247 289278208 221255 246 282 211 267219 261205 237 210 201 260203 299 256 266 284 264 252 279 225 294257229 234 300 207 288 214 236 295 238 259 245 250 224 226216280 213 270 212 239 244 233 253274 204 286 231 291 220268269 215 296 518 524525 485 453 408 457 487492 452 481 411 470 436 416455 419 429 412 473 407 479 489431 459490500 417 424 496 443 486406 480414 456 468 432 445 422 464 465 498403 410441 440 475 458 409 434 447 418 448 499 425437420 450467 471 478 494 483 474482 462 484 401 404454 491 461 415 460438 469413 472 449 495423 421 428 430 433402 488 405 442 477444 446 466 476 426 451 497 427 435 493 439 463 512 155 133 195 172 166 187 110 118 150 193138 141 165 148 164 130 176 161 169 175 131158 168 198 122 190 136 124 177 197 146117199 137103 139 153 107 191 160112 192189132 145 134 185114101 126 125 196144113 104 106135 188183 173 184 154123121 156181 115102 128129 147 142109 171120200 105 116162 167170 182 127 178108 152157143 180186 111 119 194151 163 140 159174149 179 510 363 352 312 313 330 358 368393346 351 319 325365348 362 309302 306335 308 360 397321 383 332 334 329388 395 386 304 364 339 373 372 385 343399 369 376 328 347 370 371 375307 378387 394 317 318398 320 323400 316 342 344 382353 361311 305 381 338 303 337 389354301 315357326 390 359 396 314 380 377 322 310 345350 379 333 349 340 341 366336 355 324 327374 391331 392 367 356 384 516 514 517 0.0 0.2 0.4 0.6 0.8 Dendrogram Height (a) (b) (c)

FIGURE 2 – Dendrogrammes issus des

simi-larités entre transactions dans 3 expériences. La ligne horizontale représente la hauteur de coupe (0.6) qui permet de retrouver les K classes de départ. Paramètres : (a)K = 4, NI =

{5, 10, 20, 40}, NT = 200, NA = 5 %, NM =

5 %, NO = 0; (b)K = 8, NI = 10, NT = 400, NA =

5 %, NM = 5 %, NO = 0; (c)K = 5, NI = 20, NT =

100, NA= 5 %, NM = 5 %, NO= 5 %.

gros grain, mais rapide, des achats induits par ces prototypes, nous les avons instanciés de fa-çon aléatoire, sur la base des paramètres sui-vants :

– le nombre K de classes (donc de prototypes) à tester ;

– le nombre d’articles prototypes NI(i) dans

chaque classe i ;

– le nombre de transactions par classe, NT(i),

qui détermine combien de transactions sont instanciées pour le prototype i ;

– le nombre d’articles additionnels NA(i) qui

indique combien d’articles aléatoires sont ajoutés dans chaque transaction de la classe i (cela permet de représenter des achats occa-sionnels qui ne sont pas représentatifs des ha-bitudes des agents de cette classe) ;

– le nombre d’articles manquants NM(i) qui

donne, pour la classe i, le nombre d’articles prototypes qui ne sont pas instanciés (possi-bilité que certains articles ne soient pas trou-vés) ;

– le nombre NO de transactions qui

n’appar-tiennent à aucune classe (et sont générées de façon totalement aléatoire).

L’instanciation d’un article prototype consiste à remplacer chaque 0 par un entier aléatoire stric-tement positif, dans un certain domaine de va-leurs pris par les caractéristiques des articles réels. Dans nos expériences nous avons utilisé des tuples de 5 entiers dont les valeurs maxi-males étaient (20, 100, 10, 5, 2) (valeurs choi-sies sur la base de travaux antérieurs [13]). Nous avons mené des expériences automatiques et leur évaluation pour les combinaisons des pa-ramètres ci-dessus dans les intervalles suivants : K : 4 – 10 ; NI : 5, 10, 20, 40 ; NT : 50, 100,

200, 400, 800 ; NA: 0, 5, 10 % du nombre

d’ar-ticles dans les transactions ; NM 0, 5, 10 % du

nombre d’articles dans les transactions ; NO: 0,

5, 10 % du nombre total de transactions. Toutes ces expériences ont donné des résultats concor-dants que nous résumons ci-après.

5.2 Résultats et discussion

Comme le montre la figure 2 pour trois des ces expériences, les transactions produites par l’ins-tanciation de prototypes aléatoires sont correc-tement discriminées : couper les arbres à une hauteur voisine de 0.6 suffit à identifier des classes qui reflètent exactement les K classes d’origine (cf. fig. 3a–b), même lorsque les tran-sactions sont construites avec des articles addi-tionnels ou manquants.

Lorsque la base contient également des transac-tions aléatoires (cf. fig 2c), i.e. n’appartenant à aucune classe caractérisée par un prototype, le processus identifie toujours correctement les K classes d’origine, en ajoutant des classes sup-plémentaires très petites (cf. fig. 3c), qui sont la plupart du temps réduites à une seule tran-saction. Ces classes peuvent être très facilement écartées lors de la phase de généralisation. Dans toutes les expériences (jusqu’à NO = 10 % du

nombre total de transactions), la construction de prototypes a été un succès, ce qui nous semble une bonne indication de robustesse.

best.match.jaccard 5ï200ïï10ï200ïï20ï200ïï40ï200 estimated prototype actual prototype 1 2 3 4 1 2 3 4 0 50 100 150 200 (a) best.match.jaccard 8ï10ï400 estimated prototype actual prototype 1 2 3 4 5 6 7 8 1 2345678 050100150200250300350400 (b) best.match.jaccard 5ï20ï100ïo5ï20 estimated prototype actual prototype 0 1 2 3 4 5 123456789101112131415161718192021222324252627282930313233 0 20 40 60 80 100 (c)

FIGURE 3 – Comparaison entre les classes de

transactions estimées (abscisses) et les classes d’origine (ordonnées) pour les expériences (a), (b) et (c). L’intensité de chaque carré est pro-portionnelle au nombre de transactions classées dans la ligne et la colonne correspondantes. Tan-dis que (a) et (b) montrent une correspondance exacte, dans (c) il y a des transactions « bruit » générées de façon totalement aléatoire : elles ne sont pas réparties parmi les véritables classes, mais placées dans de petits groupes isolés. 5.3 Expérimentations multi-agents

Le simulateur conçu dans nos travaux antérieurs (cf. [13] et § 2.2) a été modifié pour repré-senter les listes de courses au moyen de pro-totypes et les articles par des tuples d’entiers.

(10)

FIGURE 4 – Tracé des chemins suivis par les

clients simulés dans le magasin virtuel.

Nous avons d’abord mené des expériences avec les mêmes prototypes que dans les simulations stochastiques et avec des agents connaissant la position des rayons dans le magasin. Dans ces conditions, les transactions simulées sont ca-pables de reproduire les classes et les prototypes de départ.

Cependant, ces résultats sont modulés par la li-mite temporelle donnée aux agents pour effec-tuer leurs achats, lorsque ceux-ci ne connaissent pas l’agencement spatial du magasin. Lors-qu’elle est trop réduite, ils sortent du maga-sin sans avoir acheté tous les articles de leur liste. Cela n’a pas d’effet sur l’identification des classes de transactions (grâce à la robus-tesse du processus vis-à-vis des articles man-quants), mais peut modifier la nature des pro-totypes construits à partir des transactions si-mulées. En effet, l’observation des chemins sui-vis par les clients dans le magasin (cf. fig. 4) met en évidence des « points chauds » très fré-quentés, où les articles sont donc trouvés faci-lement, ainsi que des « points froids » où les agents passent peu : les produits manquants sont donc souvent les mêmes car « mal placés » (du point de vue marketing), contrairement à ce qui se passait dans les simulations stochastiques où les produits manquants étaient choisis de fa-çon uniformément aléatoire parmi les articles prototypes de la liste de courses. Il en résulte que les prototypes reconstruits dans ces condi-tions constituent un sous-ensemble des proto-types d’origine.

Loin de constituer une limitation de notre ap-proche, cettre propriété met en lumière le côté crucial de la mise en situation spatiale des si-mulations, et illustre bien comment utiliser ces outils pour l’aide à la prise de décision quant au placement des articles en rayon, l’agencement du magasin, la signalisation, etc. La limitation du temps passé dans le magasin est également

importante, non seulement parce qu’elle serait un gage de réalisme, mais plus significativement parce qu’elle exerce une pression forte sur le dé-cideur pour ce qui est de l’optimisation du posi-tionnement des produits et de l’information. Les travaux en cours portent sur l’analyse et l’intégration de bases de données de tickets réels, ainsi que la construction d’un environne-ment de plus grande taille reproduisant les ca-ractéristiques du magasin où ces tickets ont été collectés. Cela requiert notamment d’intégrer les positions effectives des articles et celles des panneaux de signalisation, le plan du magasin, etc. puisque nous avons montré que ces infor-mations ont un impact direct sur les résultats de la simulation. Ces éléments doivent donc faire l’objet d’une validation auprès des experts com-merciaux avec lesquels nous travaillons avant de pouvoir lancer des expérimentations grandeur nature.

6

Conclusion

La conception d’un outil intégré d’aide à la dé-cision dans le domaine de la distribution est évidemment un objectif de longue haleine. Ce-pendant nous avons montré comment combi-ner une approche de simulation incrémentale (adaptée à la représentation d’hypothèses por-tant sur les comportements individuels, les inter-actions entre agents ou la configuration de l’en-vironnement) et des algorithmes d’exploration de données (employés d’ordinaire pour extraire un « comportement moyen » valable pour l’en-semble de la population). Notre proposition per-met ainsi de doter les populations d’agents de profils différenciés, sur la base de critères sta-tistiques réalistes, ces profils servant à leur tour à paramétrer les comportements des agents afin de produire des résultats similaires à ceux ob-servés dans la réalité. En outre cette proximité des résultats de simulation avec les données en-registrées n’est pas que qualitative : les outils que nous avons construits en donnent une me-sure. Par ailleurs, nous avons montré que ces al-gorithmes sont plutôt robustes au bruit dans les données. Il reste encore à tester cette approche sur une large échelle à partir d’une base de ti-ckets réels.

Il est à noter que notre méthode, contraire-ment à la pratique courante en marketing, ne cherche pas à partitionner les transactions en « véritables » classes de clients, par exemple selon des critères socio-économiques, démo-graphiques ou géodémo-graphiques pré-établis. Nous

(11)

cherchons uniquement à capter des similari-tés dans les traces d’activité des individus, en construire une représentation abstraite et concise, dans l’hypothèse que cette représen-tation peut être génératrice de comportements. Cette démarche rend notre méthode indépen-dante de cadres théoriques préexistants, et sur-tout permet de changer aisément de point de vue. Ainsi par exemple, la prise en compte de variations saisonnières se réduit à utiliser alter-nativement les profils issus de données enregis-trées à des périodes différentes.

Par ailleurs, nous comptons mettre à l’épreuve nos méthodes dans d’autres domaines d’appli-cation pour lesquelles nous avons de bonnes rai-sons de penser que nos techniques peuvent s’ap-pliquer, c’est-à-dire ceux où les traces d’acti-vité des agents s’expriment sous forme de tran-sactions et leurs buts sous forme de prototypes. Cela devrait être notamment le cas en géno-mique fonctionnelle [2] (qui s’appuie fréquem-ment sur des approches de type classification multi-labels) ou en écologie [3] (où l’on ren-contre de nombreuses méthodes d’identification de paramètres). Si la généralité de cette ap-proche se confirme, elle constituera une étape importante pour le renforcement de l’intégra-tion automatique de données dans les simula-tions muti-agents.

Références

[1] Rakesh Agrawal and Ramakrishnan Srikant. Fast algorithm for mining association rules. In Procee-dings of the 20th Conference on Very Large Data Bases (VLDB’94), pages 487–499, 1994.

[2] Z. Barutcuoglu, R. E. Schapire, and O. G. Troyans-kaya. Hierarchical multi-label prediction of gene function. Bioinformatics, 22(7) :830–836, 2006. [3] Rémy Beaudouin, Gilles Monod, and Vincent

Gi-not. Selecting parameters for calibration via sensi-tivity analysis : An individual-based model of mos-quitofish population dynamics. Ecological Model-ling, 218 :29–48, 2008.

[4] Philippe Caillou and Javier Gil-Quijano. Descrip-tion automatique de dynamiques de groupes dans des simulations à base d’agents. In Actes des 20èmes Journées Francophones sur les Systèmes Multi-Agents (JFSMA’12), pages 23–32. Cépaduès, 2012.

[5] Luís Cavique. A scalable algorithm for the market basket analysis. Journal of Retailing and Consumer Services, 14(6), November 2007.

[6] Seung-Seok Choi, Sung-Hyuk Cha, and Charles C. Tappert. A survey of binary similarity and distance measures. Journal of Systemics, Cybernetics and In-formatics, 8(1) :43–48, 2010.

[7] Chad Cumby, Andrew Fano, Rayid Ghani, and Marko Krema. Predicting customer shopping lists

from point-of-sale purchase data. In Proceedings of the 10th International Conference on Knowledge Discovery and Data mining (KDD’04), pages 402– 409, New York, NY, USA, 2004. ACM.

[8] Lee R. Dice. Measures of the amount of ecologic association between species. Ecology, 26(3) :297– 302, 1945.

[9] Paul Jaccard. Étude comparative de la distribution florale dans une portion des alpes et du jura. Bulle-tin de la Société Vaudoise des Sciences Naturelles, 37 :547–579, 1901.

[10] Yoann Kubera, Philippe Mathieu, and Sébastien Pi-cault. IODA : an interaction-oriented approach for multi-agent based simulations. Journal of Autono-mous Agents and Multi-Agent Systems, pages 1–41, 2011.

[11] Benoît Lacroix, Philippe Mathieu, and Andras Ke-meny. Formalizing the construction of populations in multi-agent simulations. Journal of Engineering Applications of Articifial Intelligence, 26(1) :211– 226, January 2013.

[12] Peter Langfelder and Steve Horvath. Fast R func-tions for robust correlafunc-tions and hierarchical cluste-ring. Journal of Statistical Software, 46(11) :1–17, 2012.

[13] P. Mathieu, D. Panzoli, and S. Picault. Virtual customers in an agent world. In Y. Demazeau et al., editors, Proceedings of the 10th International Conference on Practical Applications of Agents and Multi-Agent Systems (PAAMS’12), Advances in Soft Computing. Springer, 2012.

[14] A. Ochiai. Zoogeographic studies on the soleoid fishes found in japan and its neighbouring regions. Bulletin of the Japanese Society for Fish Science, 22 :526–530, 1957.

[15] A. Schwaiger and B. Stahmer. Simmarket : Multiagent-based customer simulation and decision support for category management. In Proceedings of MATES 2003 : multiagent system technologies, volume 2831 of LNAI, pages 74–84. Springer, 2003. [16] Pieter Sheth-Voss and Ismael E. Carreras. How in-formative is your segmentation ? a simple new me-tric yields surprising results. Marketing Research, pages 9–13, Winter 2010.

[17] Peer-Olaf Siebers, Uwe Aickelin, Helen Celia, and Chris W. Clegg. Using intelligent agents to un-derstand management practices and retail produc-tivity. In Proceedings of the Winter Simulation Conference (WSC’07), pages 2212–2220, Washing-ton, D.C., December 2007.

[18] Kubera Yoann, Philippe Mathieu, and Sébastien Pi-cault. An interaction-oriented model of customer behavior for the simulation of supermarkets. In Pro-ceedings of IEEE/WIC/ACM International Confe-rence on Intelligent Agent Technology (IAT’10), pages 407–410. IEEE Computer Society, September 2010.

[19] T. Zhang and D. Zhang. Agent-based simulation of consumer purchase decision-making and the decoy effect. Journal of Business Research, 60(8) :912– 922, August 2007. Complexities in Markets Special Issue.

Références

Documents relatifs

En considérant la température uniforme et indépendante du temps à la surface de la Terre, en déduire la valeur T t de

Je suis un entier égal au produit de six nombres premiers distincts. La somme de mon inverse et des inverses de mes six facteurs premiers est égale

 Cette  faculté  le  fait  utiliser  comme

Ayez la bonté, cher Soury de me faire la bande de Moebius – que nous appelons triple : celle qui se figure comme cela.. F IGURE

Vous avez signé la pétition pour refuser la privatisation du financement des soins courants, hors maladies graves et de longue durée, que proposait initialement François Fillon..

Lorsque la vitesse de l¶air est élevée les échanges convectifs influent d¶une façon importante sur le bilan thermique de l¶individu, « Les échanges par convection sont

pour alpha = 0,5, DeltaI = 5.14 A (valeur maximale); il s'agit d'une ondulation très importante par rapport à In; il faudrait ensivager un Th

Marginalité et errance dans l’œuvre de Laurent Gaudé : le vagabond comme figure de la rupture.. Dépeignant un univers fictionnel particulièrement tragique, les œuvres de Laurent