ESCBR.tex
50.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
\chapter{Raisonnement à partir de cas (RàPC) pour Régression}
\chaptermark{RàPC POUR RÉGRESSION}
\section{Introduction}
Ce chapitre est divisé en deux parties, la première partie présente un modèle fondé sur le raisonnement à partir de cas et les méthodes d'ensemble avec un double empilement itératif en deux étapes pour trouver des solutions approximatives à des problèmes de régression unidimensionnels et multidimensionnels. Une partie du contenu est extrait et traduit de l'article Soto \textit{et al.} \cite{10.1007/978-3-031-63646-2_11}. La deuxième partie montre comme a été conçu et implémenté un algorithme pour intégrer l'algorithme de raisonnement à partir de cas explicité dans la première partie avec les systèmes multi-agents pour améliorer la performance et les résultats pour traiter des problèmes de régression.
Le modèle fondé sur le raisonnement à partir de cas ne nécessite pas d'entrainement, et peut fonctionner avec des données dynamiques au moment de l'exécution. Les solutions sont générées à l'aide d'algorithmes stochastiques afin de permettre l'exploration de l'espace des solutions, l'évaluation est effectuée en transformant le problème de régression en un problème d'optimisation avec une fonction objectif associée. L'algorithme a été testé en comparaison avec neuf algorithmes de régression classiques sur dix bases de données de régression différentes extraites du site de l'UCI, les résultats montrent que l'algorithme proposé génère dans la plupart des cas des solutions assez proches des solutions réelles, selon le RMSE l'algorithme se trouve globalement parmi les six meilleurs algorithmes et avec MAE au troisième meilleur algorithmes des dix évalués, suggérant que les résultats sont raisonnablement bons.
Les méthodes d'ensemble utilisent plusieurs modèles multiples exécutés indépendamment et leurs résultats sont combinés pour obtenir une prédiction globale finale. L'idée principale est d'améliorer les résultats et la capacité de généralisation des modèles individuels. Certaines méthodes d'ensemble utilisent différents modèles avec différents ensembles de données, d'autres utilisent les mêmes modèles avec des paramètres différents, la combinaison des résultats des multiples modèles peut utiliser différentes stratégies comme des règles simples ou des approches plus complexes \cite{BAKUROV2021100913}. Les méthodes d'ensemble sont utiles dans les problèmes de classification et de régression.
Les méthodes d'apprentissage automatique appliquées à la régression permettent de prédire des valeurs pour différents types de problèmes en construisant, évaluant et formant des modèles linéaires et non linéaires complexes, mais s'il est possible d'améliorer la précision en les intégrant, les stratégies d'intégration les plus courantes utilisées pour l'apprentissage d'ensemble sont les suivantes : Stacking, Boosting et Bagging \cite{Liang}. Le Stacking est un type de méta-modèle d'apprentissage profond d'ensemble, dont l'objectif est d'utiliser diverses techniques d'apprentissage automatique pour surmonter les limites des modèles individuels, l'intégration générant un résultat final avec une précision améliorée \cite{cmc.2023.033417}. Dans les méthodes d'empilage, les algorithmes de base sont appelés niveau-0, il s'agit généralement de modèles ou d'algorithmes d'apprentissage automatique hétérogènes qui travaillent tous avec la même base de données. Le méta-algorithme qui unifie les résultats peut être une autre technique d'apprentissage automatique ou un ensemble de règles qui reçoit comme données d'entrée les résultats des algorithmes de niveau-0 est appelé niveau-1 \cite{10.3389/fgene.2021.600040}.
Un système multi-agents est un système décentralisé composé de plusieurs entités appelées agents qui ont la capacité d'effectuer des actions spécifiques et de réagir à l'environnement en fonction des informations partielles qu'ils peuvent obtenir, ils peuvent également collaborer les uns avec les autres et coopérer pour atteindre un objectif spécifique. À partir des informations qu'ils perçoivent et échangent, les agents peuvent apprendre de manière autonome et atteindre leurs objectifs de manière efficace \cite{KAMALI2023110242}. Les systèmes multi-agents peuvent être exécutés en parallèle étant donné l'indépendance des agents, ils sont robustes aux problèmes qui présentent une incertitude \cite{DIDDEN2023338}.
Le raisonnement Bayésien est une hypothèse sur le fonctionnement du cerveau humain et sa relation avec l'environnement, dont le principe est que les expériences passées permettent de déduire les états futurs, ce qui permet d'agir et de prendre des décisions \cite{HIPOLITO2023103510}, également des informations peuvent être deduites et d'apprendre à partir d'informations incomplètes \cite{ZHANG2023110564}.
Nous proposons dans la seconde partie un modèle qui intègre un algorithme de raisonnement à partir de cas avec des systèmes multi-agents cognitifs qui utilisent le raisonnement Bayésien afin d'améliorer les processus de recherche de voisins et de génération de solutions en utilisant l'échange d'informations inter-agents et l'apprentissage par renforcement, obtenant ainsi des effets émergents dans le comportement global de l'algorithme, ce qui peut conduire à l'amélioration des prédictions de l'algorithme ESCBR \cite{10.1007/978-3-031-63646-2_11}.\\\\
\textbf{PREMIÈRE PARTIE}
\section{Modèle Proposé}
L'algorithme proposé ESCBR (Ensemble Stacking Case-Based Reasoning) est fondé sur le paradigme générique CBR avec plusieurs algorithmes de recherche de voisins et de génération de solutions qui ont été intégrés selon une variation du modèle de stacking en deux étapes itératives, cette intégration donne à l'algorithme la capacité de s'adapter à différents types de problèmes, d'éviter les biais et le surentraînement. Les résultats de l'exécution des niveaux de stacking stockent dans la mémoire des conteneurs CBR des informations qui aident à l'apprentissage de l'algorithme au fil des itérations, en plus de faciliter la génération de solutions à divers problèmes sur différentes bases de données sans avoir besoin d'une phase d'entraînement. La conception itérative en deux cycles améliore la capacité de la CBR à travailler et à s'adapter à des problèmes dynamiques en cours d'exécution, comme le montre la figure \ref{figNCBR}.
\begin{figure}[!ht]
\centering
\includegraphics[scale=0.5]{./Figures/NCBR0.png}
\caption{Les deux cycles proposés pour le RàPC}
\label{figNCBR}
\end{figure}
L'étape de récupération utilise les algorithmes de recherche et la base de données de cas (conteneurs C1 et C3) pour trouver les voisins les plus proches d'un nouveau problème donné, l'étape de réutilisation utilise les algorithmes de génération de solutions (conteneur C2), l'étape de révision évalue les solutions générées et permet de générer de nouvelles solutions itérativement en fonction des paramètres stockés dans le conteneur C4 et en invoquant l'étape de reconfiguration, avec une solution sélectionnée, l'étape de renouvellement met à jour les paramètres et les données du conteneur, enfin, dans l'étape de conservation, la base de cas est mise à jour avec le nouveau cas et la solution générée. Le flux complet de l'algorithme proposé est présenté dans la figure \ref{figFlowCBR}. Les variables et paramètres complets de l'algorithme proposé sont indiqués dans le tableau~\ref{tabVarPar}.
\begin{figure}[!ht]
\centering
\includegraphics[scale=0.6]{./Figures/FlowCBR0.png}
\caption{Flux du \textit{Stacking} RàPC}
\label{figFlowCBR}
\end{figure}
\begin{table}[!ht]
\centering
\begin{tabular}{cccc}
ID&Type&Description&Domain\\
\hline
$it$&p&Nombre d'iterations&$\mathbb{N}, it>0$\\
$np$&p&Nombre de processus&$\mathbb{N}, np>2$\\
$nl$&p&Nombre maximal de voisins locaux&$\mathbb{N}, nl>0$\\
$ng$&p&Nombre de voisins globaux&$\mathbb{N}, ng>2$\\
$n$&v&Dimension de l'espace du problème&$\mathbb{N}, n>0$\\
$m$&v&Dimension de l'espace de solution&$\mathbb{N}, m>0$\\
$z$&v&Taille de la base de données&$\mathbb{N}, z>0$\\
$p$&v&Description du problème&$\mathbb{R} ^ n$\\
$s$&v&Description de la solution&$\mathbb{R} ^ m$\\
$r_a$&v&Nombre de modèles pour l'étape rétrouver&$\mathbb{N}, r_a>2$\\
$r_b$&v&Nombre de modèles pour l'étape de réutilisation&$\mathbb{N}, r_b>2$\\
$at$&v&Identificateur des actions&$[0,2] \in \mathbb{N}$\\
$nl_i$&v&Nombre de voisins locaux pour le modèle $i$&$\mathbb{N}, nl_i \le nl$\\
$g$&v&Description de la meilleure solution globale&$\mathbb{R} ^ m$\\
$v$&v&Évaluation de la meilleure solution globale&$\mathbb{R}$\\
$d(x_1,x_2)$&f&Fonction de distance entre $x_1$ et $x_2$ &$\mathbb{R}$\\
$MP(x_1^z,x_2,a)$&f&Fonction du modèle pour rétrouver entre $x_1$ et $x_2$&$\mathbb{R}^{a \times z}$\\
$MS(x_1^m)$&f&Fonction du modèle pour réutiliser avec $x_1$ &$\mathbb{R}^m$\\
$f_s(p^n,s^m)$&f&Évaluation des solutions&$\mathbb{R}$\\
\end{tabular}
\caption{Variables et paramètres du modèle proposé (Type: p - paramètre, v - variable, f - fonction)}
\label{tabVarPar}
\end{table}
\subsection{Rechercher}
La première étape de l'algorithme consiste à trouver les cas les plus similaires à un nouveau cas éventuel, pour cela un premier modèle de stacking avec différents processus est utilisé comme le montre la figure \ref{figSta1}, au niveau-0 chaque processus sélectionne et exécute un algorithme de recherche de voisins différent choisit parmi $r_a$ modèles dans le conteneur C3, avec un nombre de voisins $nl_i$ choisi aléatoirement dans l'intervalle $[0,nl]$, puis au niveau-1 les résultats sont unifiés en construisant un ensemble global de cas similaires. Cinq algorithmes pour le niveau 0 ont été mis en œuvre pour l'étape de récupération : KNN (K Nearest Neighbors), KMeans, GMM (Gaussian Mixture Model), FuzzyC et KNN Ponderation.
\begin{figure}
\centering
\includegraphics[scale=0.4]{./Figures/Stacking1.png}
\caption{\textit{Stacking} pour chercher les plus proches voisins}
\label{figSta1}
\end{figure}
Formellement, le premier modèle de stacking proposé fonctionne avec deux paramètres : une base de données de $z$ cas, un cas est composé de la description du problème et de la description de la solution ${(p^n,s^m)}^{z}$ et un nouveau cas sans solution $p_w^n$, le but de tous les algorithmes de niveau 0 est de générer une liste locale de cas similaires au nouveau cas en utilisant les informations de la description du problème, c'est-à-dire que pour chaque $j$ modèle effectué, est généré l'ensemble $X_j=\{x_1,x_2,. ..,x_z \; | \; x_i=MP_i((p^n)^z, p_w^n,nl_i) \}$. Au niveau 1, un ensemble global est créé à l'aide de tous les ensembles locaux $j$ $X_g=\cup_{n=1}^{ng} min \ ; ((\cup_{j=1}^{np} X_j)-X_g)$, puis le résultat du premier modèle d'empilement est l'ensemble $X_g$ avec les $ng$ voisins les plus proches.
\subsection{Réutiliser}
Une fois la liste globale des cas similaires établie, les informations correspondant aux solutions de chacun de ces cas sont extraites et utilisées pour générer une nouvelle solution qui s'adapte au nouveau cas en utilisant des cas similaires et des solutions similaires, comme le montre la figure \ref{figAuto}. La génération est effectuée avec un deuxième modèle de stacking avec différents processus comme le montre la figure \ref{figSta2}, au niveau 0 chaque processus sélectionne et exécute un algorithme de génération différent à partir des modèles $r_b$ dans le conteneur C2 et au niveau 1 toutes les différentes solutions générées sont stockées dans une mémoire globale. Étant donné que la représentation des solutions est comme un tableau unidimensionnel de multiples cases, alors neuf algorithmes ont été mis en œuvre pour l'étape de réutilisation au niveau 0 : moyenne avec probabilité, moyenne sans probabilité, valeurs médianes, sélection aléatoire avec probabilité, copie et changement, vote, interpolation, ACP (analyse en composantes principales) et marche aléatoire. Tous les algorithmes proposées pour générer une nouvelle solution combinent et modifient l'ensemble de solutions construit dans l'étape de récupération.
\begin{figure}[!ht]
\centering
\includegraphics[scale=0.4]{./Figures/AutomaticS.png}
\caption{Génération et vérification automatique des solutions}
\label{figAuto}
\end{figure}
La moyenne pondérée avec probabilité permet de construire une solution selon le calcul de la moyenne avec le poids de chaque solution en fonction de sa proximité au nouveau problème. L'équation \ref{gen00} define le calcul de la probabilité en fonction de la distance entre les problèmes et l'équation \ref{gen01} construit la solution en calculant chaque case $j$.
\begin{equation}
\alpha_j=\frac{d(p_j^n,p_w^n)}{\sum_{i=0}^{nl} d(p_i^n,p_w^n)}
\label{gen00}
\end{equation}
\begin{equation}
s^m_{j,w}= \frac{1}{nl} \sum_{i=0}^{nl} \alpha_j s_{i,j}
\label{gen01}
\end{equation}
La moyenne sans probabilité copie aléatoirement les informations des solutions selon la distribution uniforme en donnant la même probabilité à toutes les éléments de toutes les solutions proches. Formellement la génération de la solution est écrite comme l'équation \ref{gen2}, où chaque position $j$ est calculée de la même façon.
\begin{equation}
s^m_{w,j}= \frac{1}{nl} \sum_{i=0}^{nl} s_{i,j}
\label{gen2}
\end{equation}
La génération de la solution par valeurs médianes construit la solution en utilisant la valeur médiane de toutes les solutions pour chaque dimension ou $X_j$ représente l'ensemble des valeurs ordonnées de toutes le solutions $S$ dans la position $j$
\begin{equation}
s_{j,w}^m=
\begin{cases}
x_{j,\frac{m+1}{2}}, \; si \; m \in \{{2k+1 : k \in \mathbb{Z}}\}\\
\frac{x_{j,\frac{m}{2}}+x_{j,\frac{m}{2}+1}}{2}, \; sinon\\
\end{cases}
\end{equation}
La sélection aléatoire avec probabilité génère une solution en copiant aléatoirement l'information des solutions dans chaque position ayant une plus grande probabilité vers le cas de problème associé le plus proche.
\begin{equation}
s_{j,w}^m=s_{j,k}^m; k \sim \left(\frac{d(p_k,p_w)}{\sum_{i=1}^nl(p_k,p_i)} \right)
\end{equation}
Copie/changement, copie les informations d'une solution aléatoire et change une partie avec les informations d'une autre solution sélectionnée aléatoirement.
\begin{equation}
s_{j,w}^m=s_{j,k}^m; k \sim \left(\frac{1}{nl} \right)
\end{equation}
Le vote permet de copier l'information qui se présente avec plus de fréquence entre toutes les solutions, .
\begin{equation}
s_{j,w}^m=s_{j,k}^m; k=argmax_i \; \mathbb{P}(X=s_{j,i}^m), 1\le i \le nl
\end{equation}
L'interpolation utilise des informations aléatoires à partir d'une fonction d'interpolation lineaire 1D calculée.
\begin{equation}
s_{w,j}^m \sim \left( \left( \frac{y_i-y_{i+1}}{x_i-x_{i+1}} \right) (x-x_i)+y_i \right), \forall i \; 0 \le i < nl
\end{equation}
Avec ACP (PCA - Principal Component Analysis), si la dimension de l'espace des solutions $m$ est plus petit que la dimension de l'espace des problèmes $n$ ($m<n$), alors la description du problème est transformée dans l'espace de description des solutions pour établir une relation entre le problème et sa solution, avec le problème et la solution dans le même espace est calcule la moyenne de la distance entre tous les paires problème-solution et en utilisant la description du nouveau problème et la valeur moyenne de distance une solution est générée.
\begin{equation}
X_c=X-\frac{1}{N} \sum_{i=1}^N X_i
\end{equation}
Matrice de covariance :
\begin{equation}
C_x=\frac{1}{n-1}XX^T=\frac{1}{n-1} \left(
\begin{matrix}
x_1x_1^T&x_1x_2^T&...&x_1x_m^T\\
x_2x_1^T&x_2x_2^T&...&x_2x_m^T\\
\vdots&\vdots&\ddots&\vdots\\
x_mx_1^T&x_mx_2^T&...&x_mx_m^T\\
\end{matrix}
\right) \in \mathbb{R}^{mxm}
\end{equation}
\begin{equation}
C_x v = \lambda v
\end{equation}
Choisir les $k$ premier composantes principales
\begin{equation}
W_k=\{v_1, v_2,...v_k\}
\end{equation}
Faire la projection des $k$ composantes
\begin{equation}
Z=XW_k
\end{equation}
Calculer les distances entre les problèmes projetés et les solutions associées
\begin{equation}
d_j^m=distance(Z_j,s_j)
\end{equation}
\begin{equation}
s_{w,j}^m=Z_{w,j}^m+\frac{1}{m}\sum_{i=1}^m d_{i,j}
\end{equation}
Marche aléatoire choisit une solution et change les valeurs dans une dimension aléatoirement avec un petit pas. Le petit pas est une valeur aléatoire générée avec une distribution de probabilité normal.
\begin{equation}
k \sim \left(\frac{1}{nl}\right)
\end{equation}
\begin{equation}
s_{w,j}^m=\begin{cases}
s_{j,k}^m+\mathcal{N}(0,1)& si \; (\mathcal{U}_{int}(0,10))\%2=0\\
s_{j,k}^m-\mathcal{N}(0,1)&sinon
\end{cases}
\end{equation}
\begin{figure}
\centering
\includegraphics[scale=0.4]{./Figures/Stacking2.png}
\caption{\textit{Stacking} pour la génération de solutions}
\label{figSta2}
\end{figure}
Le deuxième modèle de stacking fonctionne avec la description des solutions $s$ comme paramètre, avec l'ensemble $(s^m)^{ng}$, chaque modèle de réutilisation exécuté peut générer une solution candidate $s_{i,c}=MS_i((s^m)^{ng})$. Le niveau 1 est la construction de l'ensemble d'unification de toutes les solutions candidates $Y_g= \cup_{i=1}^{np} s_{i,c}$. Cet ensemble est évalué à l'aide d'une fonction permettant de déterminer la qualité de la solution.
\subsection{Révision}
Dans cette phase, le problème de l'évaluation automatique d'une solution candidate est transformé en un problème d'optimisation, où la fonction objective est \ref{eqOpt}. Ce problème est similaire au probleme de trouver la moyenne geometrique ou problème de "Fermat-Weber", dans le cas de un espace multidimensionnel, le problème est connu comme moyenne spatiale \cite{doi:10.1137/23M1592420}. La figure \ref{fig:FW} montre un exemple de la formulation du problème en deux dimensions, où le point rouge représente une posible solution qui minimise la somme des distances avec tous les points définis dans l'espace.
La fonction objectif \ref{eqOpt} établi un rapport entre la distance de la solution générée $s^m_w$ et les $x$ solutions connues $s^m_x$ avec un facteur aléatoire de \textit{drift} ainsi que la distance du problème nouveau $p^n_w$ et les $x$ problèmes connus $p^n_w$. Ici, la complexité de trouver le point optimal se trouve dans le fait que tous les points dans l'espace ne sont pas valides comme solution du nouveau problème, c'est la raison pour laquelle le point doit être généré en utilisant l'information des solutions connues. L'objectif de faire ça est de utiliser l'information disponible qui décrit un problème et sa solution pour valider et générer l'ensemble de solutions proposées.
\begin{equation}
\lambda_x(p_w, s_w) = \left( \frac{d(s_w^m,(s_x^m+rn(0,d(p_w^n, p_i^n))))}{d(p_w^n,p_x^n)^2} \right)
\label{eqOpt0}
\end{equation}
\begin{equation}
min \; \left( f_s(p_w^n, s_w^m) \right) = min \left( \sum_{i=1}^{ng} \lambda_i (p_w, s_w) \right)
\label{eqOpt}
\end{equation}
\begin{figure}[!ht]
\centering
\includegraphics[width=0.5\linewidth]{Figures/FW.png}
\caption{Représentation graphique en deux dimensions du problème de moyenne geométrique. (Points associés au problème ($\lambda_1,..,\lambda_7$) et point rouge solution au problème)}
\label{fig:FW}
\end{figure}
Le cycle d'optimisation peut exécuter les phases de récupération et de réutilisation en fonction de l'action aléatoire sélectionnée parmi $[0,at]$ à chaque itération $it$, en sauvegardant dans une mémoire globale à chaque itération la solution qui obtient la valeur minimale dans l'évaluation de la fonction objective.
\subsection{Mémorisation}
L'étape de rétention consiste simplement à prendre la meilleure solution proposée et à déterminer s'il s'agit d'une solution nouvelle ou existante et, si elle est nouvelle, à l'enregistrer dans la base de données.
\section{Résultats}
Afin de comparer les performances de prédiction et le comportement de l'algorithme proposé, dix bases de données de régression présentant des caractéristiques différentes ont été sélectionnées. Les bases de données et leurs caractéristiques sont indiquées dans le tableau \ref{tabBases}. Les valeurs des paramètres de l'algorithme sont les suivantes : $it=100$, $np=50$, $nl=10$ et $ng=10$.
\begin{table}[!ht]
\tiny
\centering
\begin{tabular}{llccccc}
ID&DataSet&Features&Instances&Output Dimension&Input Domain&Output Domain\\
\hline
DS1&Yatch Hydrodynamics&6&308&1&$\mathbb{R}$&$\mathbb{R}$\\
DS2&Electrical Grid Stability&12&10000&1&$\mathbb{R}$&$\mathbb{R}$\\
DS3&Real State Valuation&6&414&1&$\mathbb{R_+}$&$\mathbb{R_+}$\\
DS4&Wine Quality (Red)&11&1598&1&$\mathbb{R_+}$&$\mathbb{N}$\\
DS5&Wine Quality (White)&11&4897&1&$\mathbb{R_+}$&$\mathbb{N}$\\
DS6&Concrete Compressive Strength&8&1030&1&$\mathbb{R_+}$&$\mathbb{R_+}$\\
DS7&Energy Efficiency&8&768&2&$\mathbb{R_+}$&$\mathbb{R_+}$\\
DS8&Gas Turbine CO, NOx Emission (2015)&9&7384&2&$\mathbb{R_+}$&$\mathbb{R_+}$\\
DS9&Student Performace Portuguese&30&649&3&$\mathbb{N*}$&$\mathbb{N}$\\
DS10&Student Performance Math&30&395&3&$\mathbb{N*}$&$\mathbb{N}$\\
\end{tabular}
\caption{Description des bases de données évaluées. (* après codification comme \textit{String})}
\label{tabBases}
\end{table}
L'algorithme proposé est comparé à neuf algorithmes de régression bien connus et largement utilisés dans divers travaux de recherche et problèmes appliqués. La liste des algorithmes est présentée dans le tableau \ref{tabAlgs}. Tous les algorithmes ont été exécutés 100 fois, et les algorithmes qui nécessitent un entraînement et des validations croisées sont exécutés avec $k=10$.
\begin{table}[!ht]
\centering
\footnotesize
\begin{tabular}{ll|ll}
ID&Algorithm&ID&Algorithm\\
\hline
A1&Linear Regression&A6&Polinomial Regression\\
A2&K-Nearest Neighbor&A7&Ridge Regression\\
A3&Decision Tree&A8&Lasso Regression\\
A4&Random Forest (Ensemble)&A9&Gradient Boosting (Ensemble)\\
A5&Multi Layer Perceptron&A10&Proposed Case Based Reasoning\\
\end{tabular}
\caption{Liste des algorithmes évalués}
\label{tabAlgs}
\end{table}
Le tableau \ref{tabRes1} présente le classement moyen de toutes les bases de données en fonction de l'erreur quadratique moyenne (RMSE). Les résultats détaillés des mêmes algorithmes et des mêmes bases de données, mais comparés avec la métrique MAE (Median Absolute Error), sont présentés dans le tableau \ref{tabRes2}.
\begin{table}[!ht]
\footnotesize
\centering
\begin{tabular}{c|ccccccccccc}
Dataset&A1&A2&A3&A4&A5&A6&A7&A8&A9&A10\\
\hline
DS1&9.010&10.780&1.224&0.982&3.369&9.009&8.985&9.629&\textbf{0.668}&5.871\\
DS2&0.022&0.025&0.020&0.012&0.017&0.022&0.022&0.037&\textbf{0.011}&0.015\\
DS3&8.633&8.033&9.334&\textbf{7.203}&8.470&8.705&8.842&9.009&7.324&8.491\\
DS4&0.651&0.746&0.782&\textbf{0.571}&0.694&0.651&0.651&0.792&0.617&0.762\\
DS5&0.753&0.806&0.820&\textbf{0.599}&0.853&0.754&0.757&0.863&0.688&0.748\\
DS6&10.439&8.871&6.144&\textbf{4.738}&6.553&10.423&10.422&10.428&5.053&8.766\\
DS7&2.948&2.116&0.541&\textbf{0.465}&3.726&2.949&2.979&4.094&0.467&1.973\\
DS8&1.315&1.161&1.513&\textbf{1.109}&1.566&1.303&1.308&1.318&1.125&2.157\\
DS9&\textbf{2.304}&2.624&3.217&2.315&2.898&\textbf{2.304}&\textbf{2.304}&2.551&2.342&2.802\\
DS10&3.052&3.404&4.158&\textbf{3.014}&3.607&3.061&3.061&3.150&3.020&3.874\\
\hline
Avg. Rank&5.7&6.3&7.2&2.1&6.6&5.6&5.5&8.6&1.8&5.6\\
\end{tabular}
\caption{Résultats de la métrique RMSE (Root Mean Squared Error) pour les bases de données évaluées avec des algorithmes de régression}
\label{tabRes1}
\end{table}
\begin{table}[!ht]
\footnotesize
\centering
\begin{tabular}{c|ccccccccccc}
Dataset&A1&A2&A3&A4&A5&A6&A7&A8&A9&A10\\
\hline
DS1&6.776&2.385&0.231&0.207&3.632&6.778&6.307&5.186&\textbf{0.162}&1.193\\
DS2&0.015&0.017&0.012&0.008&0.012&0.015&0.015&0.030&\textbf{0.007}&0.011\\
DS3&5.092&4.320&4.1&3.632&4.435&5.092&5.20&5.132&\textbf{3.504}&3.90\\
DS4&0.413&0.495&0.18&0.325&0.451&0.413&0.412&0.544&0.387&\textbf{0.154}\\
DS5&0.509&0.548&0.285&0.374&0.550&0.509&0.509&0.633&0.456&\textbf{0.113}\\
DS6&6.989&5.709&3.134&\textbf{2.839}&4.306&6.989&6.989&6.986&3.084&5.439\\
DS7&1.393&1.372&\textbf{0.217}&0.218&2.523&1.393&1.529&2.346&0.243&1.008\\
DS8&0.549&0.297&0.365&\textbf{0.289}&0.742&0.549&0.549&0.540&0.309&0.861\\
DS9&\textbf{1.496}&1.788&2.080&1.612&2.005&\textbf{1.496}&\textbf{1.496}&1.714&1.538&1.721\\
DS10&2.344&2.534&2.910&2.331&2.543&2.344&2.344&2.481&\textbf{2.258}&2.602\\
\hline
Avg. Rank&6.45&6.4&4.35&2.3&7.35&6.55&6.6&7.9&2.4&4.7\\
\end{tabular}
\caption{Résultat de la métrique MAE (Median Absolute Error) pour les bases de données évaluées avec des algorithmes de régression}
\label{tabRes2}
\end{table}
La dispersion globale, la médiane et les valeurs aberrantes pour quatre bases de données représentatives sont présentées dans la figure \ref{figBox}, où l'on peut voir que l'algorithme proposé génère plus de valeurs aberrantes que les autres algorithmes, mais la variance est faible et la convergence est proche de la valeur réelle, meilleure que la plupart des algorithmes comparés.
\begin{figure}
\includegraphics[scale=0.2]{./Figures/boxplot.png}
\caption{Résultats de la métrique MAE (\textit{Median Absolute Error}) pour les dix algorithmes et quatre bases de données représentatives}
\label{figBox}
\end{figure}
\section{Discussion}
L'algorithme proposé révèle une performance compétitive par rapport à certains des algorithmes les plus populaires, les plus utilisés et les plus récents pour la prédiction dans les problèmes de régression. En particulier, dans ce travail, nous avons effectué les tests sur dix bases de données avec différentes caractéristiques, telles que : le nombre d'instances, le nombre de caractéristiques, le domaine des variables d'entrée, les dimensions de la variable de sortie et le domaine d'application. Cela démontre la polyvalence de l'algorithme proposé et son applicabilité à différentes configurations. Étant donné la nature exploratoire et stochastique de l'algorithme proposé, il présente une grande diversité de solutions générant plusieurs valeurs aberrantes, mais malgré cela, dans la plupart des cas, il est possible d'atteindre une solution approximative qui converge vers la solution réelle, c'est la raison pour laquelle, dans certains cas, les valeurs de la moyenne sont élevées, mais celles de la médiane restent faibles.
On constate également que l'intégration des algorithmes de recherche produit de meilleurs résultats que les algorithmes simples, comme dans le cas de l'algorithme proposé par rapport au KNN ou par rapport à la régression linéaire, bien que pour l'algorithme proposé, l'impact du premier et du deuxième empilement sur les résultats finaux obtenus n'ait pas été déterminé avec précision.
Globalement, pour le RMSE, les algorithmes de boosting sont plus performants que les algorithmes classiques, même si les performances sont variables. L'algorithme proposé obtient des valeurs acceptables dans toutes les bases de données. D'après la moyenne des positions de classement, pour le RMSE, il est placé à la sixième place, pour le MAE, l'algorithme obtient la meilleure valeur dans trois des dix bases de données et il est placé globalement à la troisième place.
Un aspect important de l'algorithme proposé est la fonction objective, qui peut être évaluée et modifiée dynamiquement en fonction des caractéristiques du problème évalué, étant donné que dans la présente étude les tests ont été effectués avec la fonction intuitive qui fournit une plus grande probabilité de sélection et d'évolution à la solution associée aux voisins les plus proches, mais il est possible de compléter l'évaluation avec d'autres termes pertinents et d'améliorer ainsi les résultats.
Outre les résultats, l'algorithme proposé présente plusieurs avantages par rapport aux algorithmes avec lesquels il a été comparé, parmi lesquels : il ne nécessite pas d'entraînement, il peut intégrer des algorithmes et des règles dans chaque pile et, grâce à la conception en deux cycles, il peut travailler avec des problèmes dynamiques en cours d'exécution et la variance est faible dans les résultats produits.
\section{Conclusion}
Ce chapitre propose une technique de régression générique utilisant le raisonnement fondé sur les cas et le modèle d'empilement, dont les principales caractéristiques sont qu'elle ne nécessite pas de formation et que, grâce au cycle itératif interne, elle peut s'adapter à des problèmes dynamiques en temps réel. Les résultats numériques obtenus lors des tests effectués montrent le potentiel de l'algorithme avec des données variées et des bases de données de différentes tailles ainsi que la compétitivité avec d'autres algorithmes standard et robustes couramment utilisés dans les problèmes de régression.\\\\
\textbf{SECONDE PARTIE}
\section{Modèle Proposé}
L'algorithme ESCBR-SMA est fondé sur le paradigme RàPC générique et incorpore divers algorithmes de recherche de voisins et de génération de solutions. Ceux-ci sont intégrés à l'aide d'une variante du modèle d'empilement en deux étapes itératives, exécutées par des agents qui exploitent indépendamment les algorithmes définis dans les conteneurs de révision et de réutilisation. Les agents possèdent une mémoire locale qui leur permet d'ajuster et de développer leur recherche de voisins, en générant des solutions à chaque itération. Chaque agent individuel a un comportement correspondant qui permet l'échange d'informations entre les autres agents. Le processus de décision et les étapes des agents au sein du système élargi sont décrits dans la figure \ref{figNCBR}.
\begin{figure}[!ht]
\centering
\includegraphics[scale=0.65]{Figures/NCBR.png}
\caption{Deux cycles du système ESCBR-SMA proposé}
\label{figNCBR}
\end{figure}
ESCBR-SMA correspond aux deux étapes de l'ESCBR (Ensemble Stacking Case-Based Reasoning) %\cite{}
intégrées à un système multi-agents. Chaque agent effectue un algorithme de recherche des voisins du problème au cours de la première étape et, au cours de la seconde, génère une solution en se référant à la liste des solutions obtenues au cours de la première étape. À chaque itération, les agents peuvent choisir parmi trois comportements programmés : la recherche de problèmes voisins, la génération de solutions ou l'échange d'informations avec un autre agent. L'exécution asynchrone est employée pour ces comportements, tandis que la création et la sélection de la liste des voisins se font de manière synchrone pour unifier l'algorithme global. La création et la sélection des voisins se font de manière synchrone pour unifier l'algorithme global.
Les étapes d'extraction, de réutilisation, de révision et de conservation restent conformes au modèle RàPC conventionnel. L'algorithme proposé comprend désormais trois nouvelles étapes. Dans la phase de reconfiguration, les agents mettent à jour les valeurs de leurs paramètres locaux afin d'améliorer la qualité de la solution proposée lors de l'itération suivante. Dans la phase d'échange, les agents échangent des informations pour améliorer leurs processus internes de recherche et de génération. L'étape de rénovation met à jour les valeurs des paramètres globaux de l'algorithme. Le flux complet de l'algorithme proposé est présenté dans la figure \ref{figFlowCBR}, où l'on peut voir que l'algorithme commence par la création de n agents. Lors de l'initialisation, les agents sélectionnent au hasard un algorithme de récupération et un algorithme de réutilisation, et initialisent également les vecteurs bayésiens correspondants. Tous les agents travaillent avec le même ensemble de données. En parallèle, les agents exécutent l'algorithme de récupération sélectionné, à partir des problèmes similaires trouvés, chaque agent extrait les solutions et exécute l'algorithme spécifique de génération d'une nouvelle solution. Toutes les solutions proposées par les agents sont évaluées à l'aide d'une fonction objective de minimisation, c'est-à-dire que la solution qui minimise la fonction objective est la meilleure solution possible. Au cours de l'étape suivante, les agents sélectionnent au hasard un algorithme de récupération et un algorithme de réutilisation, puis mettent à jour les vecteurs bayésiens en fonction des résultats obtenus avec la fonction objective. Lors de l'itération suivante, chaque agent peut choisir l'une des trois actions possibles : changer les algorithmes de récupération et de réutilisation, ne changer que l'algorithme de réutilisation ou échanger des informations avec un autre agent choisi au hasard. Le choix aléatoire d'une action différente permet à l'agent de construire et d'améliorer une solution candidate.
Les variables et paramètres complets de l'algorithme proposé sont présentés dans le tableau \ref{tabVarPar}. Le système multi-agents est composé d'un nombre variable d'agents, tous homogènes mais dotés de processus cognitifs internes indépendants et stochastiques.
\begin{figure}[!ht]
\centering
\includegraphics[scale=0.6]{Figures/FlowCBR.png}
\caption{Flux du \textit{Stacking} du RàPC (* est une tâche effectuée par chaque agent)}
\label{figFlowCBR}
\end{figure}
\begin{table}[!ht]
\footnotesize
\centering
\begin{tabular}{cccc}
ID&Type&Description&Domain\\
\hline
$it$&p&Nombre d'itérations&$\mathbb{N}, it>0$\\
$np$&p&Nombre d'agents&$\mathbb{N}, np>2$\\
$nl$&p&Nombre maximal de voisins locaux&$\mathbb{N}, nl>0$\\
$ng$&p&Nombre de voisins globaux&$\mathbb{N}, ng>2$\\
$n$&v&Dimension de l'espace du problème&$\mathbb{N}, n>0$\\
$m$&v&Dimension de l'espace de solution&$\mathbb{N}, m>0$\\
$p$&v&Description du problème&$\mathbb{R} ^ n$\\
$s$&v&Description de la solution&$\mathbb{R} ^ m$\\
$p_w$&v&Description du nouveau problème&$\mathbb{R} ^ n$\\
$s_w$&v&Description de la nouvelle solution&$\mathbb{R} ^ m$\\
$n_{rt}$&v&Nombre d'algorithmes por l'étape de rétrouver&$\mathbb{Z}$\\
$n_{rs}$&v&Nombre d'algorithmes de réutilisation&$\mathbb{Z}$\\
$d(x_1,x_2)$&f&Fonction de distance entre $x_1$ et $x_2$ &$\mathbb{R}$\\
$rn(x,y)$&f&
\begin{tabular}{@{}c@{}}Valeur aléatoire avec distribution normale\\ $x$ moyenne, $y$ écart-type
\end{tabular}
&$\mathbb{R}_+$\\
$rnp(x,y)$&f&
\begin{tabular}{@{}c@{}}Valeur aléatoire discrète, $x$ nombre d'options \\ $y$ vecteur discret de probabilités
\end{tabular}
&$\mathbb{Z}$\\
$f_s(p^n,s^m)$&f&Évaluation des solutions&$\mathbb{R}$\\
\end{tabular}
\caption{Variables et paramètres du modèle proposé (Type: p - paramètre, v - variable, f - fonction)}
\label{tabVarPar}
\end{table}
\subsection{Algorithmes}
Lors de la première étape de l'empilage, chaque agent peut sélectionner l'un des algorithmes mis en œuvre pour rechercher des problèmes similaires au nouveau problème posé. Les algorithmes sont les suivants : KNN (K-Nearest Neighbor), KMeans, GMM (Gaussian Mixture Model), FuzzyC et KNN pondéré.
Lors de la deuxième étape de l'empilage, les agents peuvent choisir un algorithme parmi les suivants : pondération avec probabilité, pondération sans probabilité, valeurs médianes, Copier/Changer, vote, interpolation, PCA (analyse en composantes principales) et pas aléatoire.
La sélection aléatoire pondérée avec l'algorithme de probabilité construit une solution en copiant aléatoirement les informations des solutions ayant une probabilité plus élevée vers le cas de problème associé le plus proche. En revanche, la sélection aléatoire pondérée sans algorithme de probabilité copie aléatoirement les informations des solutions selon la distribution uniforme. Les valeurs médianes utilisent la valeur médiane de toutes les solutions pour chaque dimension. L'algorithme fondé sur la copie/le changement copie les informations d'une solution aléatoire et en modifie une partie avec les informations d'une autre solution sélectionnée de manière aléatoire. L'algorithme fondé sur le vote copie l'information la plus fréquente entre les solutions. L'algorithme fondé sur l'interpolation utilise des informations aléatoires à partir d'une fonction d'interpolation calculée. Le générateur avec PCA transforme la description du problème en un espace de descriptions de solutions afin d'établir une relation entre le problème et sa solution. Enfin, l'algorithme de pas aléatoire sélectionne une solution et modifie les valeurs dans une seule dimension de manière aléatoire avec un petit pas dans l'espace des solutions.
\subsection{Structure des agents}
La structure des agents est similaire pour tous, mais chaque agent effectue un processus cognitif individuel qui lui permet d'obtenir un comportement indépendant et différent de tous les autres. La figure \ref{figAgent} montre les actions et les variables nécessaires à l'exécution de l'ensemble du processus.
Il y a trois actions possibles à exécuter (« Récupérer et réutiliser », « Réutiliser » et « Échanger ») et huit variables : le nombre de voisins qui définit le nombre de problèmes similaires au nouveau problème posé que l'agent doit rechercher dans la base de données, la liste des voisins les plus proches établit la liste des agents voisins avec lesquels des informations peuvent être échangées, l'algorithme de récupération est l'identifiant de l'algorithme que l'agent va exécuter pour trouver les problèmes similaires au nouveau problème, l'algorithme de réutilisation est l'identifiant de l'algorithme que l'agent va exécuter pour générer une solution candidate au nouveau problème, solution est la description de la solution générée, évaluation de la solution est la valeur numérique décrivant la qualité de la solution générée selon une fonction d'optimisation (eq \ref{eqOpt1} et eq \ref{eqOpt2}), vecteur bayésien pour les algorithmes de récupération contenant les valeurs de probabilité pour chacun des algorithmes de récupération et vecteur bayésien pour les algorithmes de réutilisation contenant les valeurs de probabilité pour chacun des algorithmes de réutilisation.
\begin{equation}
min \; \left( f_s(p_w^n, s_w^m) \right) = min \left( \sum_{i=1}^{ng} \frac{d(s_w^m,s_i^t)}{d(p_w^n,p_i^n)^2} \right)
\label{eqOpt1}
\end{equation}
\begin{equation}
s_i^t=s_i^m+rn(0,d(p_w^n,p_i^n))
\label{eqOpt2}
\end{equation}
\begin{figure}[!ht]
\centering
\includegraphics[scale=0.7]{Figures/agent.png}
\caption{Structure interne des agents}
\label{figAgent}
\end{figure}
\subsection{Apprentissage des agents}
Tous les agents contiennent un vecteur bayésien de probabilité pour la phase de récupération (conteneur C3) et un vecteur bayésien de probabilité pour la phase de réutilisation (conteneur C2). Initialement, ces vecteurs sont configurés avec une probabilité uniforme pour tous les algorithmes de récupération et de réutilisation, il s'agit de la distribution de probabilité \textit{a priori}, mais pour chaque itération, les vecteurs sont mis à jour avec l'équation bayésienne en utilisant les meilleurs résultats du même agent comme paramètre de vraisemblance. Le choix suivant d'algorithmes pour la récupération et la réutilisation calcule la probabilité avec les vecteurs. L'agent apprend ainsi de son expérience et sélectionne les algorithmes les plus susceptibles de fournir les meilleures réponses au regard de l'objectif défini.
L'apprentissage est fondé sur un raisonnement bayésien où les vecteurs de récupération et de réutilisation sont initialisés avec une probabilité uniforme pour tous les algorithmes, comme le montre la figure \ref{fig:bayev}. Au cours d'une itération, si un algorithme a contribué à la construction de la meilleure solution, il reçoit un point pour chaque agent qui l'a utilisé. Ces informations sont stockées dans un vecteur normalisé qui est ensuite utilisé comme vecteur de vraisemblance $P(A)$ pour calculer les nouvelles probabilités dans l'équation bayésienne \ref{eqBay}, $P(B)$ est le terme de normalisation global.
\begin{figure}
\centering
\includegraphics[scale=0.5]{Figures/BayesianEvolution.png}
\caption{Exemple d'évolution Bayésienne des vecteurs pour un agent. a) Initialisation des probabilités $P(B|A)$ vecteurs pour Retrieve et Reuse, b) Probabilités après quelques itérations $P(A|B)$ vecteurs pour Retrieve et Reuse}
\label{fig:bayev}
\end{figure}
\begin{equation}
P(A|B)=\frac{P(B|A)P(A)}{P(B)}
\label{eqBay}
\end{equation}
La sélection d'un algorithme de recherche $a_{rt}$ se fait au moyen d'une valeur aléatoire tirée du vecteur de distribution de recherche discrète obtenu par raisonnement bayésien, comme le montre l'équation \ref{eqRta}.
\begin{equation}
a_{rt}=rnp(n_{rt},P(A|B)_{rt})
\label{eqRta}
\end{equation}
La sélection d'un algorithme de réutilisation $a_{rs}$ se fait au moyen d'une valeur aléatoire tirée du vecteur de distribution de réutilisation discrète obtenu par raisonnement bayésien, comme le montre l'équation \ref{eqRsa}.
\begin{equation}
a_{rs}=rnp(n_{rs},P(A|B)_{rs})
\label{eqRsa}
\end{equation}
Le processus d'apprentissage est réalisé individuellement par chaque agent, mais comporte un aspect collaboratif puisque les agents communiquent les informations qu'ils ont trouvées, les optimisations locales qu'ils ont réalisées, ainsi que les algorithmes et les paramètres.
\subsection{Échanges entre les agents}
Les agents peuvent modifier leurs informations au cours d'une itération en choisissant au hasard un voisin dans leur liste de voisins les plus proches. Les changements permettent d'obtenir une grande probabilité de propager les paramètres des agents qui ont obtenu les meilleurs résultats et d'obtenir des effets de rétroaction. Le type d'information qu'ils peuvent modifier est choisi au hasard, il peut s'agir du nombre de voisins, de la liste des voisins les plus proches, de l'algorithme de récupération, de l'algorithme de réutilisation ou même des vecteurs bayésiens. Si un agent décide de modifier ses informations avec un voisin, les informations qu'il possédait à l'origine sont remplacées par une copie des informations obtenues auprès de l'agent sélectionné.
\section{Résultats}
Afin de comparer la prédiction des performances et le comportement de l'algorithme proposé, onze bases de données de régression présentant des caractéristiques différentes ont été sélectionnées. Les bases de données et leurs caractéristiques sont indiquées dans le tableau \ref{tabBases}. Les valeurs des paramètres de l'algorithme sont les suivantes $it=100$, $np=50$, $nl=10$ et $ng=10$. Les paramètres de tous les autres algorithmes sont présentés dans le tableau \ref{AlgsPar}.
\begin{table}[!ht]
\footnotesize
\centering
\begin{tabular}{c|ccccccccccc}
&A1&A2&A3&A4&A5&A6&A7&A8&A9&A10\\
\hline
%DS1&9.081&12.301&1.228&1.066&7.763&9.081&9.078&9.764&0.750&8.263&8.225\\
DS1&9.081&12.301&1.228&1.066&7.763&9.081&9.078&9.764&0.750&8.225\\
%DS2&0.022&0.025&0.019&0.013&0.017&0.022&0.022&0.037&0.011&0.016&0.016\\
DS2&0.022&0.025&0.019&0.013&0.017&0.022&0.022&0.037&0.011&0.016\\%DS3&8.756&8.465&9.656&7.665&8.716&8.756&9.005&9.177&7.369&8.148&7.991\\
DS3&8.756&8.465&9.656&7.665&8.716&8.756&9.005&9.177&7.369&7.991\\
%DS4&0.647&0.752&0.794&0.602&0.688&0.647&0.646&0.798&0.616&0.628&0.607\\
DS4&0.647&0.752&0.794&0.602&0.688&0.647&0.646&0.798&0.616&0.607\\
%DS5&0.767&0.824&0.877&0.66&0.826&0.767&0.775&0.87&0.703&0.690&0.662\\
DS5&0.767&0.824&0.877&0.66&0.826&0.767&0.775&0.87&0.703&0.662\\
%DS6&10.525&9.174&6.93&5.372&6.662&10.525&10.525&10.527&5.131&9.413&9.070\\
DS6&10.525&9.174&6.93&5.372&6.662&10.525&10.525&10.527&5.131&9.070\\
%DS7&2.961&2.451&0.589&0.528&3.955&2.961&3.009&4.083&0.490&3.031&2.941\\
DS7&2.961&2.451&0.589&0.528&3.955&2.961&3.009&4.083&0.490&2.941\\
%DS8&1.298&1.125&1.360&1.197&1.486&1.298&1.298&1.306&1.128&2.752&2.553\\
DS8&1.298&1.125&1.360&1.197&1.486&1.298&1.298&1.306&1.128&2.553\\
%DS9&2.256&2.565&3.174&2.377&2.817&2.256&2.255&2.468&2.293&2.747&2.468\\
DS9&2.256&2.565&3.174&2.377&2.817&2.256&2.255&2.468&2.293&2.468\\
%DS10&3.136&3.415&4.173&3.165&3.710&3.136&3.135&3.161&3.108&3.897&3.621\\
DS10&3.136&3.415&4.173&3.165&3.710&3.136&3.135&3.161&3.108&3.621\\
DS11&0.625&0.565&0.741&0.56&0.606&0.626&0.626&0.681&
0.541&0.54\\
\hline
%Avg. Rank&5.8&6.5&7.2&2.3&6.7&5.7&5.6&8.65&1.9&4.65\\
Avg. Rank&6.4&6.9&8.2&2.6&7.2&6.45&6.35&9.55&2.1&4.75\\
\end{tabular}
\caption{Résultat de la métrique RMSE (Root Mean Squared Error) pour les bases de données évaluées avec des algorithmes de régression}
\label{tabRes1}
\end{table}
\begin{table}[!ht]
\scriptsize
\centering
\begin{tabular}{llccp{1.4cm}p{1.2cm}p{1.2cm}}
ID&DataSet&Features&Instances&Output. Dimension&Input. Domain&Output Domain\\
\hline
DS1&Yatch Hydrodynamics&6&308&1&$\mathbb{R}$&$\mathbb{R}$\\
DS2&Electrical Grid Stability&12&10000&1&$\mathbb{R}$&$\mathbb{R}$\\
DS3&Real State Valuation&6&414&1&$\mathbb{R_+}$&$\mathbb{R_+}$\\
DS4&Wine Quality (Red)&11&1598&1&$\mathbb{R_+}$&$\mathbb{N}$\\
DS5&Wine Quality (White)&11&4897&1&$\mathbb{R_+}$&$\mathbb{N}$\\
DS6&Concrete Compressive Strength&8&1030&1&$\mathbb{R_+}$&$\mathbb{R_+}$\\
DS7&Energy Efficiency&8&768&2&$\mathbb{R_+}$&$\mathbb{R_+}$\\
DS8&Gas Turbine CO, NOx Emission (2015)&9&7384&2&$\mathbb{R_+}$&$\mathbb{R_+}$\\
DS9&Student Performace Portuguese&30&649&3&$\mathbb{N*}$&$\mathbb{N}$\\
DS10&Student Performance Math&30&395&3&$\mathbb{N*}$&$\mathbb{N}$\\
DS11&Generated Student Performance&5&1000&1&$\mathbb{R}_+$&$\mathbb{R}_+$\\
\end{tabular}
\caption{Description des bases de données évaluées. (* après codification comme
\textit{String})}
\label{tabBases}
\end{table}
\begin{table}[!ht]
\centering
\begin{tabular}{ccc|ccc}
ID&Parameter&Value&ID&Parameter&Value\\
\hline
A1&Intercept&True&A6&Degree&4\\
&Positive&True&&Bias&True\\
\hline
A2&Neighbors&5&A7&Fit Intercept&True\\
&Weights&Uniform&&alpha&0.2\\
&Metric&Minkowsky&&tol&1e-4\\
&Power Minkowsky&2\\
\hline
A3&Error&Squared Error&A8&Fit Intercept&True\\
&Min samples split&2&&alpha&[0.00001, 0.4]\\
&&&&Max iter&1000\\
&&&&tol&1e-4\\
\hline
A4&Estimators&10&A9&Error&Squarred Error\\
&Error&Squared Error&&Learning Rate&0.1\\
&Min samples split&2&&Estimators&100\\
&Bootstrap&True&&Min Split&2\\
\hline
A5&Hidden Layers&100\\
&Activation&Relu\\
&Solver&Adam\\
&alpha&0.0001\\
&Learning Rate&0.001\\
&Max Iter&200\\
&beta1&0.9\\
&beta2&0.999\\
&epsilon&1e-8\\
\end{tabular}
\caption{Paramètres pour tous les algorithmes comparés}
\label{AlgsPar}
\end{table}
Le classement moyen de toutes les bases de données en fonction de la mesure RMSE (Root Mean Square Error) est indiqué dans le tableau \ref{tabRes1}. Les résultats détaillés des mêmes algorithmes et des mêmes bases de données, mais comparés avec la métrique MAE (Median Absolute Error), sont présentés dans le tableau \ref{tabRes2}.
\begin{table}[!ht]
\footnotesize
\centering
\begin{tabular}{c|ccccccccccc}
Dataset&A1&A2&A3&A4&A5&A6&A7&A8&A9&A10\\
\hline
%DS1&6.776&2.385&0.231&0.207&3.632&6.778&6.307&5.186&0.162&1.193&1.218\\
DS1&6.776&2.385&0.231&0.207&3.632&6.778&6.307&5.186&0.162&1.218\\
%DS2&0.015&0.017&0.012&0.008&0.012&0.015&0.015&0.030&0.007&0.011&0.010\\
DS2&0.015&0.017&0.012&0.008&0.012&0.015&0.015&0.030&0.007&0.010\\
%DS3&5.092&4.320&4.1&3.632&4.435&5.092&5.20&5.132&3.504&3.90&3.771\\
DS3&5.092&4.320&4.1&3.632&4.435&5.092&5.20&5.132&3.504&3.771\\
%DS4&0.413&0.495&0.18&0.325&0.451&0.413&0.412&0.544&0.387&0.154&0.135\\
DS4&0.413&0.495&0.18&0.325&0.451&0.413&0.412&0.544&0.387&0.135\\
%DS5&0.509&0.548&0.285&0.374&0.550&0.509&0.509&0.633&0.456&0.113&0.085\\
DS5&0.509&0.548&0.285&0.374&0.550&0.509&0.509&0.633&0.456&0.085\\
%DS6&6.989&5.709&3.134&2.839&4.306&6.989&6.989&6.986&3.084&5.439&5.072\\
DS6&6.989&5.709&3.134&2.839&4.306&6.989&6.989&6.986&3.084&5.072\\
%DS7&1.393&1.372&0.217&0.218&2.523&1.393&1.529&2.346&0.243&1.008&1.006\\
DS7&1.393&1.372&0.217&0.218&2.523&1.393&1.529&2.346&0.243&1.006\\
%DS8&0.549&0.297&0.365&0.289&0.742&0.549&0.549&0.540&0.309&0.861&0.794\\
DS8&0.549&0.297&0.365&0.289&0.742&0.549&0.549&0.540&0.309&0.794\\
%DS9&1.496&1.788&2.080&1.612&2.005&1.496&1.496&1.714&1.538&1.721&1.556\\
DS9&1.496&1.788&2.080&1.612&2.005&1.496&1.496&1.714&1.538&1.556\\
%DS10&2.344&2.534&2.910&2.331&2.543&2.344&2.344&2.481&2.258&2.602&2.371\\
DS10&2.344&2.534&2.910&2.331&2.543&2.344&2.344&2.481&2.258&2.371\\
DS11&0.387&0.35&0.46&0.338&0.384&0.387&0.387&0.453&
0.327&0.347\\
\hline
Avg. Rank&7.15&6.9&5.35&2.6&7.95&7.25&7.3&9.0&2.5
&4.5\\
%Avg. Rank&6.45&6.5&4.35&2.4&7.45&6.55&6.6&8.1&2.4&4.2\\
\end{tabular}
\caption{Comparaison des résultats MAE (Median Absolute Error) pour les bases de données évaluées avec des algorithmes de régression}
\label{tabRes2}
\end{table}
La dispersion globale, la médiane et les valeurs aberrantes pour toutes les bases données évaluées sont présentées dans la figure \ref{figBox}, où l'on peut voir que l'algorithme proposé génère dans certains cas plus de valeurs aberrantes que d'autres algorithmes, mais la variance est très faible et la convergence est proche de la valeur réelle, meilleure que la plupart des algorithmes comparés. Les valeurs aberrantes sont plus élevées que les valeurs réelles.
\begin{figure}[!ht]
\includegraphics[scale=0.26]{Figures/boxplot2.png}
\caption{Résultats de la métrique MAE (Median Absolute Error) pour dix algorithmes}
\label{figBox}
\end{figure}
Les résultats montrent que l'algorithme est compétitif dans la plupart des bases de données sélectionnées, obtenant les meilleurs résultats dans les bases DS2, DS4, DS5 et DS9. Globalement, d'après le classement moyen, l'algorithme est placé en troisième position, à proximité d'autres algorithmes d'ensemble. Par rapport à l'ESCBR, une amélioration des résultats et une réduction de la variance ont été obtenues, ce qui montre que les systèmes multi-agents et le raisonnement stochastique bayésien contribuent à l'apprentissage et à la convergence de l'algorithme vers des solutions plus proches de la solution réelle.
\section{Conclusion}
L'ECBR proposé avec SMA tente d'utiliser les avantages des systèmes multi-agents pour améliorer la qualité des solutions proposées ainsi que pour améliorer le processus d'apprentissage global afin d'augmenter la performance de l'algorithme à chaque nouvelle exécution même sur des données différentes, il utilise également le raisonnement bayésien qui permet d'obtenir de bonnes approximations et un apprentissage optimal avec peu de données.
Ce travail a démontré la capacité du modèle à trouver des solutions proches de l'optimum global pour la majorité des ensembles de données analysés, même avec des ensembles de données divers, déséquilibrés et de tailles différentes. Les résultats montrent en effet une amélioration de l'ECBR de base, qui peut être due à la combinaison du potentiel de l'ECBR et des caractéristiques des systèmes multi-agents tels que les effets de rétroaction, les effets émergents et le comportement de raisonnement bayésien cognitif mis en œuvre.