ESCBR.tex 50.7 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}.\\\\

\section{PREMIÈRE PARTIE}

\subsection{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[width=\textwidth]{./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'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 é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[width=\textwidth]{./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.

\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 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[width=\textwidth]{./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[width=\textwidth]{./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.

\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 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=\textwidth]{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.

\subsubsection{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.

\subsection{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[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}

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.

\subsection{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.\\\\

\section{SECONDE PARTIE}

\subsection{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[width=\textwidth]{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}

\subsubsection{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.

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

\subsubsection{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.

\subsubsection{É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é.

\subsection{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[width=\textwidth]{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.

\subsection{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.