ESCBR.tex 54.9 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 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718
\chapter{Le raisonnement à partir de cas (RàPC) pour la 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. Nous l'avons baptisé \textit{ESCBR} (\textit{Ensemble Stacking Case Based Reasoning}). Ce processus se fait en deux étapes pour trouver des solutions approximatives à des problèmes de régression unidimensionnels et multidimensionnels. Une partie de cette proposition est publiée dans \cite{10.1007/978-3-031-63646-2_11}. La seconde partie montre la conception et l'implémentation d'un SMA intégré à l'ESCBR présenté dans la première partie. Nous considérons dans ce chapitre que le choix des exercices les plus adaptés revient à résoudre un problème de régression. C'est la raison pour laquelle nous testons notre approche sur des jeux de données classiques de régression.
Le modèle présenté dans cette seconde partie associe un raisonnement à partir de cas à des systèmes multi-agents cognitifs implémentant un raisonnement Bayésien. Cette association, combinant échange d'informations entre agents et apprentissage par renforcement, permet l'émergence de prédictions plus précises et améliore ainsi les performances d'ESCBR \cite{10.1007/978-3-031-63646-2_11}.\\

Avant de présenter nos propositions, rappelons quelques caractéristiques importantes des outils combinés dans notre approche.

Le système de 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 proposées par notre système de RàPC sont générées à l'aide d'algorithmes stochastiques guidant l'exploration de l'espace des solutions. L'évaluation des solutions possibles est effectuée en transformant le problème de régression en un problème d'optimisation et utilise une fonction \textit{objectif}.
\\ \colorbox{yellow}{Il faut expliquer en quelques mots ce que fait cette fonction  objectif}\\ 
Les prédictions de ce nouvel algorithme ont été comparées à celles de neuf algorithmes de régression classiques sur dix jeux de données pour la régression extraits du site de l'UCI\textcolor{red}{ref?}. En évaluant les résultats obtenus avec la métrique RMSE, ce nouvel algorithme se classe parmi les six meilleurs. Avec la métrique MAE il est le troisième meilleur algorithme des dix évalués, ce qui suggère que les résultats produits par ESCBR sont raisonnablement saitsfaisants.

Les méthodes d'ensemble permettent de résoudre des problèmes de classification et de régression en combinant les résultats de plusieurs modèles exécutés indépendamment. Certaines de ces méthodes utilisent des modèles différents et des ensembles de données différents tandis que d'autres utilisent les mêmes modèles avec des paramètres différents. La combinaison des résultats provenant de multiples modèles peut être réalisée selon différentes stratégies comme l'application de règles simples ou des approches plus complexes \cite{BAKUROV2021100913}. Plusieurs travaux de recherche explorent la possibilité d'utiliser cette méthode d'ensemble en la combinant à des outils d'apprentissage automatique.

Les méthodes d'apprentissage automatique appliquées à la régression permettent quant à elles 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'en améliorer la précision en les associant. Les stratégies d'intégration les plus courantes utilisées pour l'apprentissage d'ensemble sont le \textit{Stacking} (empilement), le \textit{Boosting} et le \textit{Bagging} \cite{Liang}. Le \textit{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. Plusieurs études démontrent que l'association de ces techniques permet d'améliorer la précision des résultats \cite{cmc.2023.033417}. Dans ces méthodes d'empilement, les algorithmes de base sont appelés \textit{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 les mêmes données. Le méta-algorithme (appelé \textit{niveau-1}) qui unifie les résultats peut être une autre technique d'apprentissage automatique ou un ensemble de règles qui reçoit en entrée les résultats des algorithmes de \textit{niveau-0} \cite{10.3389/fgene.2021.600040}.

La modélisation de systèmes implémentant différentes techniques d'apprentissage nous amène tout naturellement à considérer les avantages et inconvénients proposés par un système multi-agents. Un SMA est 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 à leur disposition. 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 efficacement \cite{KAMALI2023110242}. Les actions d'un système multi-agents peuvent être exécutées en parallèle grâce à l'indépendance des agents. Ils sont également robustes aux problèmes présentant une incertitude \cite{DIDDEN2023338}.

Le raisonnement Bayésien clos ce premier tour d'horizon des techniques implémentées dans l'approche présentée dans ce chapitre. Celui-ci est fondé sur l'observation du raisonnement humain et la relation de l'humain avec l'environnement. Son principe repose sur le postulat que les expériences passées permettent de déduire les états futurs, guidant ainsi ses actions et ses décisions \cite{HIPOLITO2023103510}. Des informations peuvent également être déduites à partir d'informations incomplètes \cite{ZHANG2023110564}.

\section{Apprentissage par empilement et raisonnement à partir de cas}

Cette section présente la première version de l'algorithme que nous avons conçu pour résoudre des problèmes de régression. Celui-ci est fondé sur le raisonnement à partir de cas et l'empilement.

\subsection{Modèle Proposé}

L'algorithme proposé, ESCBR (\textit{Ensemble Stacking Case-Based Reasoning}), est fondé sur le paradigme générique du RàPC combiné à plusieurs algorithmes de recherche de voisins et de génération de solutions. Ces algorithmes ont été intégrés selon une variation du modèle d'empilement 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 d'empilement stockent dans la mémoire des conteneurs de connaissances du système de RàPC des informations qui aident non seulement à l'apprentissage de l'algorithme au fil des itérations, mais facilitent également la génération de solutions à divers problèmes sur différents ensembles de données sans nécessité d'entraînement préalable. La conception itérative en deux cycles améliore la capacité du système de RàPC à travailler et à s'adapter à des problèmes dynamiques en cours d'exécution, comme le montre la figure \ref{figNCBR1}.

\begin{figure}[!ht]
\centering
\includegraphics[width=\textwidth]{./Figures/NCBR0.png} 
\caption{Les deux cycles proposés pour le RàPC}
\label{figNCBR1}
\end{figure}
\colorbox{yellow}{Attention, cette figure apparaît deux fois dans ce chapitre.}\\
\colorbox{yellow}{J'ai l'impression que ce n'est pas la seule.}

L'étape de récupération utilise les algorithmes de recherche et la base de données de cas (conteneurs $C1$ et $C3$ de la figure \ref{figNCBR1}) pour trouver les voisins les plus proches d'un problème cible. Puis l'étape de réutilisation utilise les algorithmes de génération de solutions (conteneur $C2$). L'étape de révision évalue ensuite les solutions générées et permet d'en générer de nouvelles itérativement en fonction des paramètres stockés dans le conteneur $C4$. Vient ensuite l'étape de révision prenant en considération la solution sélectionnée. Faisant suite à cette révision, l'étape de renouvellement met à jour les paramètres et les données du conteneur. Enfin, dans l'étape de capitalisation, la base de cas est mise à jour avec l'intégration du nouveau cas. Les flux d'information de l'algorithme proposé sont présentés sur la figure~\ref{figFlowCBR}, tandis que le tableau~\ref{tabVarPar} présente l'ensemble des variables et paramètres de l'algorithme proposé.

\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'itérations&$\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 retrouver 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}

\subsubsection{Rechercher}
La première étape de l'algorithme consiste à trouver les cas les plus similaires à un nouveau cas (appelé \textit{cas cible}). Pour ce faire, le modèle d'empilement de différents processus présenté sur la figure \ref{figSta1} est utilisé. Au niveau-0, chaque processus sélectionne et exécute un algorithme de recherche de voisins différents choisi 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 (\textit{K Nearest Neighbors} - K plus proches voisins), KMeans, GMM (\textit{Gaussian Mixture Model}), FuzzyC et KNN Ponderation.

\begin{figure}
\centering
\includegraphics[width=\textwidth]{./Figures/Stacking1.png}
\caption{\textit{Stacking} pour chercher les plus proches voisins}
\label{figSta1}
\end{figure}

Formellement, le premier modèle d'empilement proposé fonctionne avec deux paramètres : \textcolor{red}{quels sont les 2 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 cas cible. Ainsi, pour chaque algorithme $j$ exécuté, l'ensemble $X_j=\{x_1,x_2,. ..,x_z \; | \; x_i=MP_i((p^n)^z, p_w^n,nl_i) \}$ est généré. 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)$. Le résultat du premier modèle d'empilement est l'ensemble $X_g$ avec les $ng$ voisins les plus proches.

\subsubsection{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 cas cible, en suivant le processus et les flux d'informations représentés sur la figure \ref{figAuto}. La génération est effectuée avec un deuxième modèle d'empilement de différents processus. Ce modèle d'empilement est représenté sur 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$. Au niveau-1, toutes les solutions générées sont stockées dans une mémoire globale. 

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és 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[width=\textwidth]{./Figures/AutomaticS.png} 
\caption{Génération et vérification automatique des solutions}
\label{figAuto}
\end{figure}

\colorbox{yellow}{Il faut revoir ce qui suit car ne comprenant pas, j'ai complètement ré-écrit.}
La moyenne pondérée avec probabilité permet de construire une solution. La pondération est calculée en fonction de la proximité \colorbox{yellow}{du cas ? lequel ? de la solution ? On la connait ?} avec le cas cible. La probabilité est calculée en fonction de la distance entre les problèmes selon l'équation \ref{gen00} et la solution globale est construite à partir des solutions proposées par les $nl$ algorithmes selon l'équation \ref{gen01}.

\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 \colorbox{yellow}{copie ?} aléatoirement les informations des solutions selon la distribution uniforme en donnant la même probabilité à tous les éléments de toutes les solutions proches. Formellement la génération de la solution est calculée selon l'équation \ref{gen2}, où chaque position $j$ est calculée de la même façon \colorbox{yellow}{?}.

\begin{equation}
    s^m_{w,j}= \frac{1}{nl} \sum_{i=0}^{nl} s_{i,j}
    \label{gen2}
\end{equation}

La génération par valeurs médianes construit la solution en utilisant la valeur médiane de toutes les solutions pour chaque dimension. $X_j$ représente l'ensemble des valeurs ordonnées de toutes les solutions $S$ dans la position $j$ \colorbox{yellow}{position ?}.

\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.
\colorbox{yellow}{Il est difficile à comprendre à quel moment intervient l'aléatoire dans ce processus}\\
\colorbox{yellow}{À ce stade, les équations ne sont plus citées.}

\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 en remplace une partie par celles 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 la plus fréquente de toutes.

\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. 
\\ \colorbox{yellow}{Pourquoi aléatoire ? Une interpolation ne rend pas un résultat aléatoire}

\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}

Dans l'analyse en composantes principales (ACP), 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 \colorbox{yellow}{transposée ?} dans l'espace de description des solutions pour établir une relation entre le problème et sa solution. Le problème et la solution étant ainsi dans le même espace, la moyenne de la distance entre tous les paires problème-solution est calculée en utilisant la description du nouveau problème et la valeur moyenne de distance une solution est générée. \textcolor{red}{à vérifier} \colorbox{yellow}{Idem, je n'ai pas compris la fin de la dernière phrase.}

\colorbox{yellow}{À quoi correspond le processus ci-dessous ?}

\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}

La marche aléatoire consiste à choisir une solution et changer ses valeurs dans une dimension aléatoirement avec un pas. Le pas est une valeur aléatoire générée avec une distribution de probabilité normal.
\\ 
\colorbox{yellow}{Je ne comprends pas ce qui est aléatoire. Le choix de la dimension ? Le pas ?}\\
\colorbox{yellow}{Éviter les petits et grands, si nécessaire, donner plutôt un ordre de grandeur ou un intervalle.}

\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[width=\textwidth]{./Figures/Stacking2.png}
\caption{\textit{Stacking} pour la génération de solutions}
\label{figSta2}
\end{figure}

La description des solutions $s$ et l'ensemble $(s^m)^{ng}$ sont les paramètres du deuxième modèle d'empilement. Chaque modèle décrit ci-dessus génère une solution candidate $s_{i,c}=MS_i((s^m)^{ng})$. Vient ensuite la construction de l'ensemble d'unification de toutes les solutions candidates $Y_g= \cup_{i=1}^{np} s_{i,c}$ (niveau-1). Cet ensemble est évalué à l'aide d'une fonction permettant de déterminer la qualité de la solution.
\colorbox{yellow}{J'ai ré-écrit le paragraphe ci-dessus selon ma compréhension. Est-ce exact ?}

\subsubsection{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 objectif est \ref{eqOpt}. Ce problème revient à calculer la moyenne géométrique ou encore à résoudre le problème de "Fermat-Weber". Dans le cas d'un espace multidimensionnel, résoudre ce problème revient à calculer la moyenne spatiale \cite{doi:10.1137/23M1592420}. La figure \ref{fig:FW} montre un exemple de la formulation du problème en deux dimensions. Sur cette figure, le point rouge représente une solution possible minimisant la somme des distances entre ce point et tous les autres points définis dans l'espace.

La fonction objectif \ref{eqOpt} établit 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} d'une part, et la distance entre le problème cible $p^n_w$ et les $x$ problèmes connus $p^n_w$ d'autre part. Ici, la difficulté à trouver le point optimal réside dans le fait que les points de l'espace ne peuvent pas tous convenir en temps que solution cible. La solution cible finale dépend donc des informations des solutions connues. L'objectif est d'utiliser les informations disponibles de chaque cas (problème et solution) pour valider et générer l'ensemble de solutions proposées.\\
\colorbox{yellow}{J'ai beaucoup modifié le paragraphe ci-dessus. Il faudrait vérifier.}

\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=\textwidth]{Figures/FW.png}
    \caption{Représentation graphique en deux dimensions du problème de moyenne géomé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 \textcolor{red}{permet? ou éxecute} exécuter les phases de récupération et de réutilisation en fonction de l'action sélectionnée aléatoirement parmi $[0,at]$ à chaque itération $it$. À chaque itération, la valeur minimale évaluée par la fonction objectif est sauvegardée.

\subsubsection{Mémorisation}

L'étape de mémorisation consiste simplement à prendre la meilleure solution proposée et à déterminer s'il s'agit d'une solution nouvelle ou existante. S'il s'agit d'une nouvelle solution, elle est enregistrée dans la base de connaissances.

\subsection{Résultats}

Les performances de prédiction de l'algorithme proposé ont été comparées à celles de neuf autres algorithmes sur dix jeux de données classiquement utilisés pour évaluer des méthodes de régression. Ces jeux de données présentent des caractéristiques différentes. Les jeux de données et leurs caractéristiques sont consigné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$. \colorbox{yellow}{À quoi correspondent ces valeurs ? Unités ?}

\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 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$. \colorbox{yellow}{À quoi correspond ce k ? Unité ?}

\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 l'erreur quadratique moyenne (RMSE) obtenue par chaque algorithme pour chaque jeu de données. Le tableau \ref{tabRes2} présente l'erreur absolue médiane (MAE) obtenue par chaque algorithme pour chaque jeu de données.

\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{RMSE calculées sur les dix jeux de données sélectionnés obtenues après exécution des dix algorithmes de régression considérés}
\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{MAE calculées sur les dix jeux de données sélectionnés obtenues après exécution des dix algorithmes de régression considérés}
\label{tabRes2}
\end{table}

La dispersion globale, la médiane et les valeurs aberrantes pour quatre jeux de données représentatifs sont présentées sur la figure \ref{figBox}. Nous pouvons voir que l'algorithme proposé génère plus de valeurs aberrantes que les autres algorithmes\textcolor{red}{pourquoi?}, 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[width=\textwidth]{./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}

\subsection{Discussion}

De par ses performances, ESCBR se révèle compétitif par rapport à certains des neuf autres algorithmes testés pour la prédiction dans les problèmes de régression. En particulier, dans ce travail, nous avons effectué les tests sur dix jeux de données aux caractéristiques variées, 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 d'ESCBR, il présente une grande diversité de solutions générant plusieurs valeurs aberrantes. Malgré cela, dans la plupart des cas, il est possible d'atteindre une solution approximative convergeant vers la solution optimale. Pour cette raison, les valeurs de la moyenne sont parfois élevées, mais celles de la médiane restent faibles, la médiane atténuant les disparités.

On constate également que l'intégration des algorithmes de recherche produit de meilleurs résultats que les algorithmes simples (tels que le KNN ou la régression linéaire).

Globalement, si l'on observe les RMSE obtenues, les algorithmes de boosting \colorbox{yellow}{rappeler ici entre parenthèses les noms de ces algorithmes de boosting} sont globalement plus performants que les algorithmes classiques, même si les performances sont variables. Les performances calculées selon la RMSE classent notre algorithme ESCBR à la sixième place. En revanche, en considérant les performances mesurées selon la MAE, ESCBR est classé en première place pour trois des dix jeux de données et il se classe globalement à la troisième place.

Un aspect important de l'algorithme proposé est la fonction objectif, qui peut être modifiée dynamiquement en fonction des caractéristiques du problème évalué. 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.\textcolor{red}{je ne comprends pas} \colorbox{yellow}{Idem}

De plus, ESCBR ne nécessite pas d'entraînement, il peut intégrer des algorithmes et des règles dans chaque pile \textcolor{red}{sûr?} et, grâce à la conception en deux cycles, il peut travailler avec des problèmes dynamiques en cours d'exécution. Par ailleurs, la variance faible obtenue lors des tests sur les dix jeux de données montrent qu'ESCBR fournit des résultats stables \colorbox{yellow}{C'est bien ça ?} \textcolor{red}{variance faible =?}.

\subsection{Conclusion}

Ce chapitre propose une technique de régression générique utilisant le raisonnement à partir de cas et le modèle d'empilement que nous avons baptisé ESCBR. Ce modèle ne nécessite pas d'entrainement préalable et grâce au cycle itératif interne, il 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 jeux de données de différentes tailles. Les tests effectués dans cette première partie de chapitre montrent ainsi la compétitivité d'ESCBR avec d'autres algorithmes standards et robustes couramment utilisés pour résoudre des problèmes de régression.\\\\

\section{ESCBR-SMA : Introduction des systèmes multi-agents dans ESCBR}

La méthode ESCBR que nous avons proposée dans la section précédente est fondée sur une technique d'apprentissage d'ensemble par empilement. Cette technique mettant en oeuvre plusieurs solutions proposées par des processus intelligents et concurrents pour en générer une, nous nous sommes tout naturellement tourné vers la possibilité d'inclure des agents dans le processus de décision. L'une des ambitions des systèmes multi-agents consiste en effet à faire émerger une intelligence collective capable de fournir une solution. Cette section présente donc l'évolution d'ESCBR en ESCBR-SMA.

\subsection{Modèle Proposé}

L'algorithme ESCBR-SMA est fondé sur le paradigme du RàPC 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 connaissances de la révision et de la réutilisation du cycle classique du RàPC. 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 a un comportement individuel autorisant l'échange d'informations avec les autres agents. La figure \ref{figNCBR} décrit le processus de décision et les comportements des agents au sein du système élargi.

\begin{figure}[!ht]
\centering
\includegraphics[width=\textwidth]{Figures/NCBR.png} 
\caption{Deux cycles du système ESCBR-SMA proposé}
\label{figNCBR}
\end{figure}

Dans ESCBR-SMA, chaque agent effectue un algorithme de recherche des voisins du problème au cours de la première étape puis, 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 de ces trois comportements programmés est asynchrone. En revanche, la création et la sélection de la liste des voisins se font de manière synchronisée.

Les étapes d'extraction, de réutilisation, de révision et de conservation restent conformes au modèle RàPC conventionnel. En revanche, ESCBR-SMA comprend trois nouvelles étapes :
\begin{itemize}
	\item durant 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,
	\item durant la phase d'échange, les agents échangent des informations pour améliorer leurs processus internes de recherche et de génération,
	\item enfin, l'étape de révision met à jour les valeurs des paramètres globaux de l'algorithme. 
\end{itemize}  

Le flux complet de l'algorithme proposé est décrit sur la figure \ref{figFlowCBR}. 

En premier lieu, ESCBR-SMA crée $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. 

Les agents exécutent en parallèle 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 objectif : la solution qui minimise la fonction objectif est la meilleure solution trouvée à ce stade. 

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 ils mettent à jour les vecteurs bayésiens en fonction des résultats obtenus avec la fonction objectif. 

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. De plus, l'agent choisit aléatoirement une action pour tenter d'améliorer la solution candidate.

L'ensemble des variables et paramètres d'ESCBR-SMA sont consigné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}

\subsubsection{Algorithmes}

Cette section présente de manière plus détaillée les comportements des agents d'ESCBR-SMA.

Lors de la première étape de l'empilement, chaque agent peut sélectionner l'un des algorithmes à mettre en œuvre pour rechercher des problèmes similaires au nouveau problème posé. Les algorithmes possibles 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'empilement, 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\textcolor{red}{et non aléatoire?}. 

L'algorithme de construction de solution par pondération avec probabilité utilise la probabilité que le problème considéré soit le plus proche du problème cible. Cet algorithme construit une solution en copiant certaines informations de la ou des solutions ayant la probabilité la plus élevée. Le choix des informations à copier est aléatoire. Pour sa part, la sélection aléatoire pondérée sans probabilité copie certaines informations (choisies aléatoirement) des solutions sans tenir compte de la probabilité que le problème associé soit le plus proche du problème cible. 

Les valeurs médianes construisent une solution à partir des valeurs médianes des informations de toutes les solutions.

L'algorithme Copie/Changer copie les informations d'une solution aléatoire 
\\ \colorbox{yellow}{c'est le contenu de la solution qui est généré avec des valeurs aléatoires ou}
\\ \colorbox{yellow}{cette solution est choisie aléatoirement ?} 
\\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 construit une solution en considérant les informations indépendemment. Chaque information aura la valeur apparaissant leplus fréquemment dans l'ensemble des solutions possibles. 

L'algorithme fondé sur l'interpolation utilise des informations aléatoires à partir d'une fonction d'interpolation calculée.
\\ \colorbox{yellow}{Qu'est-ce qui est aléatoire ?} 
\\ \colorbox{yellow}{Qu'est-ce qui est interpolé ?}
\\ \colorbox{yellow}{Qu'est-ce qui est calculé ?}  

Le générateur avec PCA transforme la description du problème en une description de la solution et établit ainsi une relation entre les valeurs des descripteurs de la partie problème et celles des descripteurs de la patie solution. 

Enfin, l'algorithme de pas aléatoire sélectionne une solution et modifie la valeur d'une seule de ses composantes choisie au hasard selon un certain pas.

\subsubsection{Structure des agents}

Tous les agents ont une structure siùilaire, mais chaque agent suit 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.

Chaque agent peut exécuter trois actions différentes :
\begin{itemize}
	\item « Récupérer et réutiliser », 
	\item « Réutiliser » et 
	\item « Échanger ».
\end{itemize} 

Chaque agent accède aux valeurs de huit variables qui lui sont propres : 
\begin{itemize}
	\item le nombre de voisins définissant le nombre de problèmes similaires au nouveau problème posé que l'agent doit rechercher dans la base de connaissancesÒ,
	\item la liste des voisins les plus proches établit la liste des agents avec lesquels des informations peuvent être échangées, 
	\item l'identifiant de l'algorithme de récupération que l'agent exécutera pour trouver les problèmes similaires au nouveau problème, 
	\item l'identifiant de l'algorithme de réutilisation que l'agent exécutera pour générer une solution candidate au cas cible,
	\item la description de la solution générée, 
	\item l'évaluation de la solution renseignant sur la qualité de la solution générée et calculée selon une fonction d'optimisation (eq \ref{eqOpt1} et eq \ref{eqOpt2}), 
	\item le vecteur bayésien nécessaire aux algorithmes de récupération contenant les valeurs de probabilité, et 
	\item le vecteur bayésien nécessaire aux algorithmes de réutilisation contenant les valeurs de probabilité.
\end{itemize}

\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}

\subsubsection{Apprentissage des agents}

Tous les agents considèrent 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 (probabilité \textit{a priori}). À chaque itération, les vecteurs sont mis à jour selon l'équation bayésienne \colorbox{yellow}{ref ? Numéro d'équation ?} en utilisant les meilleurs résultats du même agent comme paramètre de vraisemblance. L'agent apprend ainsi de son expérience et sélectionne les algorithmes les plus aptes à fournir les meilleures réponses au regard de l'objectif défini.

Par conséquent, d'un point plus global au niveau du SMA, l'apprentissage est fondé sur un raisonnement bayésien où les vecteurs de récupération et de réutilisation évoluent. Un exemple d'évolution est présenté sur 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} (dans cette équation, $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 
\\ \colorbox{yellow}{La valeur est aléatoire ? Ou le choix de la valeur est aléatoire ?} \\
tirée du vecteur de distribution de recherche discrète obtenu par raisonnement bayésien et calculé selon 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 
\\ \colorbox{yellow}{La valeur est aléatoire ? Ou le choix de la valeur est aléatoire ?} \\
tirée du vecteur de distribution de réutilisation discrète obtenu par raisonnement bayésien et calculé selon 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 échangent les informations qu'ils ont calculées, les optimisations locales qu'ils ont réalisées, ainsi que les algorithmes et les paramètres qu'ils ont utilisés.

\subsubsection{Échanges entre les agents}

Un agent peut modifier ses informations et leur affecter les valeurs de celles d'un voisin au cours de chaque itération en choisissant au hasard un voisin dans sa liste de voisins les plus proches. L'ensemble de ces changements permettent de propager les paramètres menant aux meilleurs résultats et d'effectuer des actions rétrospectivement. Les informations modifables sont choisies aléatoirement : 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. 

\subsection{Résultats}

Des expérimentations sur onze jeux de données relatifs à des problèmes de régression et présentant des caractéristiques différentes ont été réalisées. Les jeux de données et leurs caractéristiques sont consignés 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$. 
\\ \colorbox{yellow}{Quel algorithme ?}
\\ \colorbox{yellow}{À quoi correspondent ces paramètres ? Quelles sont les unités ?}\\
Le tableau \ref{AlgsPar} présente les valeurs des paramètres de tous les autres algorithmes.

\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 selon la métrique RMSE (Root Mean Squared Error) pour les jeux de données évalués avec les différents algorithmes de régression considérés.}
\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 jeux de données évalués. (* 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 de tous les algorithmes comparés}
\label{AlgsPar}
\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&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}

Les tableaux \ref{tabRes1} et \ref{tabRes2} présentent respectivement les RMSE et les MAE obtenues pour chaque jeu de données et chaque algorithme testé.

La figure \ref{figBox} représente graphiquement la dispersion globale, la médiane et les valeurs aberrantes obtenues durant ces tests. Cette figure montre qu'ESCBR-SMA génère parfois plus de valeurs aberrantes que d'autres algorithmes. Toutefois, la variance est très faible. De plus, la convergence est proche de la valeur réelle et même meilleure que celle de la plupart des autres algorithmes testés. Il est également possible de remarquer que les valeurs aberrantes sont plus élevées que les valeurs réelles.\textcolor{red}{plus élevées??, pourquoi?}

\begin{figure}[!ht]
\includegraphics[width=\textwidth]{Figures/boxplot2.png}
\caption{Résultats selon la métrique MAE (Median Absolute Error) pour les dix algorithmes testés}
\label{figBox}
\end{figure}

Les résultats montrent que l'algorithme ESCBR-SMA est compétitif pour la plupart des jeux de données considérés dans cette étude. Il obtient en effet les meilleurs résultats sur $DS2$, $DS4$, $DS5$ et $DS9$. Globalement, ESCBR-SMA est le troisième meilleur algorithme. Il se classe donc à 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, démontrant ainsi que les systèmes multi-agents et le raisonnement stochastique bayésien contribuent à l'apprentissage et à la convergence vers des solutions plus proches de la solution réelle.

\subsection{Conclusion}
L'ECBR intégrant un SMA propose d'utiliser les avantages des systèmes multi-agents pour améliorer la qualité des solutions proposées et également le processus d'apprentissage global en couvrant un plus large spectre de possibilités et en le couvrant de manière intelligente à l'aide d'un raisonnement bayésien. ESCBR-SMA permet ainsi d'obtenir de bonnes approximations avec peu de données.

Ce travail a démontré la capacité d'ESCBR-SMA à trouver des solutions proches de l'optimum global pour la majorité des ensembles de données analysés. Ces jeux de données présentent une certaine diversité, ils peuvent être déséquilibrés et ils sont de tailles différentes. Grâce aux caractéristiques inhérentes aux systèmes multi-agents (possibilités de rétroactions, d'échanges d'informations, l'émergence d'une intelligence collective, utilisation d'un raisonnement cognitif), les performances d'ESCBR-SMA sont meilleures que celles d'ESCBR.