ESCBR.tex
25.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
\chapter{Raisonnement à partir de cas (RàPC) pour Régression}
\section{Introduction}
Ce chapitre présente un modèle basé 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}.\\
Cette approche 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}.
\section{Modèle Proposé}
L'algorithme proposé ESCBR (Ensemble Stacking Case-Based Reasoning) est basé sur le paradigme générique CBR avec plusieurs algorithmes de recherche de voisins et de génération de solutions qui ont été intégrés selon une variation du modèle de stacking en deux étapes itératives, cette intégration donne à l'algorithme la capacité de s'adapter à différents types de problèmes, d'éviter les biais et le surentraînement. Les résultats de l'exécution des niveaux de stacking stockent dans la mémoire des conteneurs CBR des informations qui aident à l'apprentissage de l'algorithme au fil des itérations, en plus de faciliter la génération de solutions à divers problèmes sur différentes bases de données sans avoir besoin d'une phase d'entraînement. La conception itérative en deux cycles améliore la capacité de la CBR à travailler et à s'adapter à des problèmes dynamiques en cours d'exécution, comme le montre la figure \ref{figNCBR}.\\
\begin{figure}[!ht]
\centering
\includegraphics[scale=0.5]{./Figures/NCBR0.png}
\caption{Les deux cycles proposés pour le RàPC}
\label{figNCBR}
\end{figure}
L'étape de récupération utilise les algorithmes de recherche et la base de données de cas (conteneurs C1 et C3) pour trouver les voisins les plus proches d'un nouveau problème donné, l'étape de réutilisation utilise les algorithmes de génération de solutions (conteneur C2), l'étape de révision évalue les solutions générées et permet de générer de nouvelles solutions itérativement en fonction des paramètres stockés dans le conteneur C4 et en invoquant l'étape de reconfiguration, avec une solution sélectionnée, l'étape de renouvellement met à jour les paramètres et les données du conteneur, enfin, dans l'étape de conservation, la base de cas est mise à jour avec le nouveau cas et la solution générée. Le flux complet de l'algorithme proposé est présenté dans la figure \ref{figFlowCBR}. Les variables et paramètres complets de l'algorithme proposé sont indiqués dans le tableau \ref{tabVarPar}.
\begin{figure}[!ht]
\centering
\includegraphics[scale=0.6]{./Figures/FlowCBR0.png}
\caption{Flux du \textit{Stacking} RàPC}
\label{figFlowCBR}
\end{figure}
\begin{table}[!ht]
\centering
\begin{tabular}{cccc}
ID&Type&Description&Domain\\
\hline
$it$&p&Nombre d'iterations&$\mathbb{N}, it>0$\\
$np$&p&Nombre de processus&$\mathbb{N}, np>2$\\
$nl$&p&Nombre maximal de voisins locaux&$\mathbb{N}, nl>0$\\
$ng$&p&Nombre de voisins globaux&$\mathbb{N}, ng>2$\\
$n$&v&Dimension de l'espace du problème&$\mathbb{N}, n>0$\\
$m$&v&Dimension de l'espace de solution&$\mathbb{N}, m>0$\\
$z$&v&Taille de la base de données&$\mathbb{N}, z>0$\\
$p$&v&Description du problème&$\mathbb{R} ^ n$\\
$s$&v&Description de la solution&$\mathbb{R} ^ m$\\
$r_a$&v&Nombre de modèles pour l'étape rétrouver&$\mathbb{N}, r_a>2$\\
$r_b$&v&Nombre de modèles pour l'étape de réutilisation&$\mathbb{N}, r_b>2$\\
$at$&v&Identificateur des actions&$[0,2] \in \mathbb{N}$\\
$nl_i$&v&Nombre de voisins locaux pour le modèle $i$&$\mathbb{N}, nl_i \le nl$\\
$g$&v&Description de la meilleure solution globale&$\mathbb{R} ^ m$\\
$v$&v&Évaluation de la meilleure solution globale&$\mathbb{R}$\\
$d(x_1,x_2)$&f&Fonction de distance entre $x_1$ et $x_2$ &$\mathbb{R}$\\
$MP(x_1^z,x_2,a)$&f&Fonction du modèle pour rétrouver entre $x_1$ et $x_2$&$\mathbb{R}^{a \times z}$\\
$MS(x_1^m)$&f&Fonction du modèle pour réutiliser avec $x_1$ &$\mathbb{R}^m$\\
$f_s(p^n,s^m)$&f&Évaluation des solutions&$\mathbb{R}$\\
\end{tabular}
\caption{Variables et paramètres du modèle proposé (Type: p - paramètre, v - variable, f - fonction)}
\label{tabVarPar}
\end{table}
\subsection{Rechercher}
La première étape de l'algorithme consiste à trouver les cas les plus similaires à un nouveau cas éventuel, pour cela un premier modèle de stacking avec différents processus est utilisé comme le montre la figure \ref{figSta1}, au niveau-0 chaque processus sélectionne et exécute un algorithme de recherche de voisins différent choisit parmi $r_a$ modèles dans le conteneur C3, avec un nombre de voisins $nl_i$ choisi aléatoirement dans l'intervalle $[0,nl]$, puis au niveau-1 les résultats sont unifiés en construisant un ensemble global de cas similaires. Cinq algorithmes pour le niveau 0 ont été mis en œuvre pour l'étape de récupération : KNN (K Nearest Neighbors), KMeans, GMM (Gaussian Mixture Model), FuzzyC et KNN Ponderation.\\
\begin{figure}
\centering
\includegraphics[scale=0.4]{./Figures/Stacking1.png}
\caption{\textit{Stacking} pour chercher les plus proches voisins}
\label{figSta1}
\end{figure}
Formellement, le premier modèle de stacking proposé fonctionne avec deux paramètres : une base de données de $z$ cas, un cas est composé de la description du problème et de la description de la solution ${(p^n,s^m)}^{z}$ et un nouveau cas sans solution $p_w^n$, le but de tous les algorithmes de niveau 0 est de générer une liste locale de cas similaires au nouveau cas en utilisant les informations de la description du problème, c'est-à-dire que pour chaque $j$ modèle effectué, est généré l'ensemble $X_j=\{x_1,x_2,. ..,x_z \; | \; x_i=MP_i((p^n)^z, p_w^n,nl_i) \}$. Au niveau 1, un ensemble global est créé à l'aide de tous les ensembles locaux $j$ $X_g=\cup_{n=1}^{ng} min \ ; ((\cup_{j=1}^{np} X_j)-X_g)$, puis le résultat du premier modèle d'empilement est l'ensemble $X_g$ avec les $ng$ voisins les plus proches.
\subsection{Réutiliser}
Une fois la liste globale des cas similaires établie, les informations correspondant aux solutions de chacun de ces cas sont extraites et utilisées pour générer une nouvelle solution qui s'adapte au nouveau cas en utilisant des cas similaires et des solutions similaires, comme le montre la figure \ref{figAuto}. La génération est effectuée avec un deuxième modèle de stacking avec différents processus comme le montre la figure \ref{figSta2}, au niveau 0 chaque processus sélectionne et exécute un algorithme de génération différent à partir des modèles $r_b$ dans le conteneur C2 et au niveau 1 toutes les différentes solutions générées sont stockées dans une mémoire globale. Étant donné que la représentation des solutions est comme un tableau unidimensionnel de multiples cases, alors neuf algorithmes ont été mis en œuvre pour l'étape de réutilisation au niveau 0 : moyenne avec probabilité, moyenne sans probabilité, valeurs médianes, sélection aléatoire avec probabilité, copie et changement, vote, interpolation, ACP (analyse en composantes principales) et marche aléatoire. Tous les algorithmes proposées pour générer une nouvelle solution combinent et modifient l'ensemble de solutions construit dans l'étape de récupération.\\
\begin{figure}[!ht]
\centering
\includegraphics[scale=0.4]{./Figures/AutomaticS.png}
\caption{Génération et vérification automatique des solutions}
\label{figAuto}
\end{figure}
La moyenne pondérée avec probabilité permet de construire une solution selon le calcul de la moyenne avec le poids de chaque solution en fonction de sa proximité au nouveau problème. L'équation \ref{gen00} define le calcul de la probabilité en fonction de la distance entre les problèmes et l'équation \ref{gen01} construit la solution en calculant chaque case $j$.\\
\begin{equation}
\alpha_j=\frac{d(p_j^n,p_w^n)}{\sum_{i=0}^{nl} d(p_i^n,p_w^n)}
\label{gen00}
\end{equation}
\begin{equation}
s^m_{j,w}= \frac{1}{nl} \sum_{i=0}^{nl} \alpha_j s_{i,j}
\label{gen01}
\end{equation}
La moyenne sans probabilité copie aléatoirement les informations des solutions selon la distribution uniforme en donnant la même probabilité à toutes les elements de toutes les solutions proches. Formellement la génération de la solution est écrite commme l'equation \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.\\
\begin{equation}
s_{w,j}^m=
\begin{cases}
x_{j,\frac{n+1}{2}}, \; si \; n \in \{{2k+1 : k \in \mathbb{Z}}\}\\
\frac{x_{j,\frac{n}{2}}+x_{j,\frac{n}{2}+1}}{2}, \; autrement\\
\end{cases}
\end{equation}
La sélection aleatoire 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_{w,k}^m=max(P(S_j))_k \; with \; probability \; \alpha_j \; \forall k=\{1,...,m\}
\end{equation}
\textcolor{red}{complete all the models formalization...}
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_{w}^m=max(P(S_j)) \; with \; uniform \; probability
\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_{w,j}^m=max(\#(s_{j}))
\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=rand \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 PCA, 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}
s_{w,j}^m=
\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}
s_{w,j}^m=\begin{cases}
s_{j}^m+randNormal(0,1)& if \; randIntU(0,10)\%2=0\\
s_{j}^m-randNormal(0,1)&otherwise
\end{cases}
\end{equation}
\begin{figure}
\centering
\includegraphics[scale=0.4]{./Figures/Stacking2.png}
\caption{\textit{Stacking} pour la génération de solutions}
\label{figSta2}
\end{figure}
****************** \\
\textcolor{red}{
Expliciter chacune des méthodes de génération des solutions.}\\
******************
Le deuxième modèle de stacking fonctionne avec la description des solutions $s$ comme paramètre, avec l'ensemble $(s^m)^{ng}$, chaque modèle de réutilisation exécuté peut générer une solution candidate $s_{i,c}=MS_i((s^m)^{ng})$. Le niveau 1 est la construction de l'ensemble d'unification de toutes les solutions candidates $Y_g= \cup_{i=1}^{np} s_{i,c}$. Cet ensemble est évalué à l'aide d'une fonction permettant de déterminer la qualité de la solution.
\subsection{Révision}
Dans cette phase, le problème de l'évaluation automatique d'une solution candidate est transformé en un problème d'optimisation, où la fonction objective est \ref{eqOpt}. Ce problème est similaire au probleme de trouver la moyenne geometrique ou problème de "Fermat-Weber", dans le cas de un espace multidimensionnel, le problème est connu comme moyenne spatiale \cite{doi:10.1137/23M1592420}. La figure \ref{fig:FW} montre un exemple de la formulation du problème en deux dimensions, où le point rouge représente une posible solution qui minimise la somme des distances avec tous les points définis dans l'espace.\\
La fonction objectif \ref{eqOpt} établi un rapport entre la distance de la solution générée $s^m_w$ et les $x$ solutions connues $s^m_x$ avec un facteur aléatoire de \textit{drift} ainsi que la distance du problème nouveau $p^n_w$ et les $x$ problèmes connus $p^n_w$. Ici, la complexité de trouver le point optimal se trouve dans le fait que tous les points dans l'espace ne sont pas valides comme solution du nouveau problème, c'est la raison pour laquelle le point doit être généré en utilisant l'information des solutions connues. L'objetif de faire ça est de utiliser l'information disponible qui décrit un problème et sa solution pour valider et générer l'ensemble de solutions proposées.\\
\begin{equation}
\lambda_x(p_w, s_w) = \left( \frac{d(s_w^m,(s_x^m+rn(0,d(p_w^n, p_i^n))))}{d(p_w^n,p_x^n)^2} \right)
\label{eqOpt0}
\end{equation}
\begin{equation}
min \; \left( f_s(p_w^n, s_w^m) \right) = min \left( \sum_{i=1}^{ng} \lambda_i (p_w, s_w) \right)
\label{eqOpt}
\end{equation}
\begin{figure}[!ht]
\centering
\includegraphics[width=0.5\linewidth]{Figures/FW.png}
\caption{Représentation graphique en deux dimensions du problème de moyenne geométrique. (Points associés au problème ($\lambda_1,..,\lambda_7$) et point rouge solution au problème)}
\label{fig:FW}
\end{figure}
Le cycle d'optimisation peut exécuter les phases de récupération et de réutilisation en fonction de l'action aléatoire sélectionnée parmi $[0,at]$ à chaque itération $it$, en sauvegardant dans une mémoire globale à chaque itération la solution qui obtient la valeur minimale dans l'évaluation de la fonction objective.
\subsection{Mémorisation}
L'étape de rétention consiste simplement à prendre la meilleure solution proposée et à déterminer s'il s'agit d'une solution nouvelle ou existante et, si elle est nouvelle, à l'enregistrer dans la base de données.
\section{Résultats}
Afin de comparer les performances de prédiction et le comportement de l'algorithme proposé, dix bases de données de régression présentant des caractéristiques différentes ont été sélectionnées. Les bases de données et leurs caractéristiques sont indiquées dans le tableau \ref{tabBases}. Les valeurs des paramètres de l'algorithme sont les suivantes : $it=100$, $np=50$, $nl=10$ et $ng=10$.\\
\begin{table}[!ht]
\tiny
\centering
\begin{tabular}{llccccc}
ID&DataSet&Features&Instances&Output Dimension&Input Domain&Output Domain\\
\hline
DS1&Yatch Hydrodynamics&6&308&1&$\mathbb{R}$&$\mathbb{R}$\\
DS2&Electrical Grid Stability&12&10000&1&$\mathbb{R}$&$\mathbb{R}$\\
DS3&Real State Valuation&6&414&1&$\mathbb{R_+}$&$\mathbb{R_+}$\\
DS4&Wine Quality (Red)&11&1598&1&$\mathbb{R_+}$&$\mathbb{N}$\\
DS5&Wine Quality (White)&11&4897&1&$\mathbb{R_+}$&$\mathbb{N}$\\
DS6&Concrete Compressive Strength&8&1030&1&$\mathbb{R_+}$&$\mathbb{R_+}$\\
DS7&Energy Efficiency&8&768&2&$\mathbb{R_+}$&$\mathbb{R_+}$\\
DS8&Gas Turbine CO, NOx Emission (2015)&9&7384&2&$\mathbb{R_+}$&$\mathbb{R_+}$\\
DS9&Student Performace Portuguese&30&649&3&$\mathbb{N*}$&$\mathbb{N}$\\
DS10&Student Performance Math&30&395&3&$\mathbb{N*}$&$\mathbb{N}$\\
\end{tabular}
\caption{Description des bases de données évaluées. (* après codification comme \textit{String})}
\label{tabBases}
\end{table}
L'algorithme proposé est comparé à neuf algorithmes de régression bien connus et largement utilisés dans divers travaux de recherche et problèmes appliqués. La liste des algorithmes est présentée dans le tableau \ref{tabAlgs}. Tous les algorithmes ont été exécutés 100 fois, et les algorithmes qui nécessitent un entraînement et des validations croisées sont exécutés avec $k=10$.\\
\begin{table}[!ht]
\centering
\footnotesize
\begin{tabular}{ll|ll}
ID&Algorithm&ID&Algorithm\\
\hline
A1&Linear Regression&A6&Polinomial Regression\\
A2&K-Nearest Neighbor&A7&Ridge Regression\\
A3&Decision Tree&A8&Lasso Regression\\
A4&Random Forest (Ensemble)&A9&Gradient Boosting (Ensemble)\\
A5&Multi Layer Perceptron&A10&Proposed Case Based Reasoning\\
\end{tabular}
\caption{Liste des algorithmes évalués}
\label{tabAlgs}
\end{table}
Le tableau \ref{tabRes1} présente le classement moyen de toutes les bases de données en fonction de l'erreur quadratique moyenne (RMSE). Les résultats détaillés des mêmes algorithmes et des mêmes bases de données, mais comparés avec la métrique MAE (Median Absolute Error), sont présentés dans le tableau \ref{tabRes2}.\\
\begin{table}[!ht]
\footnotesize
\centering
\begin{tabular}{c|ccccccccccc}
Dataset&A1&A2&A3&A4&A5&A6&A7&A8&A9&A10\\
\hline
DS1&9.010&10.780&1.224&0.982&3.369&9.009&8.985&9.629&\textbf{0.668}&5.871\\
DS2&0.022&0.025&0.020&0.012&0.017&0.022&0.022&0.037&\textbf{0.011}&0.015\\
DS3&8.633&8.033&9.334&\textbf{7.203}&8.470&8.705&8.842&9.009&7.324&8.491\\
DS4&0.651&0.746&0.782&\textbf{0.571}&0.694&0.651&0.651&0.792&0.617&0.762\\
DS5&0.753&0.806&0.820&\textbf{0.599}&0.853&0.754&0.757&0.863&0.688&0.748\\
DS6&10.439&8.871&6.144&\textbf{4.738}&6.553&10.423&10.422&10.428&5.053&8.766\\
DS7&2.948&2.116&0.541&\textbf{0.465}&3.726&2.949&2.979&4.094&0.467&1.973\\
DS8&1.315&1.161&1.513&\textbf{1.109}&1.566&1.303&1.308&1.318&1.125&2.157\\
DS9&\textbf{2.304}&2.624&3.217&2.315&2.898&\textbf{2.304}&\textbf{2.304}&2.551&2.342&2.802\\
DS10&3.052&3.404&4.158&\textbf{3.014}&3.607&3.061&3.061&3.150&3.020&3.874\\
\hline
Avg. Rank&5.7&6.3&7.2&2.1&6.6&5.6&5.5&8.6&1.8&5.6\\
\end{tabular}
\caption{Résultats de la métrique RMSE (Root Mean Squared Error) pour les bases de données évaluées avec des algorithmes de régression}
\label{tabRes1}
\end{table}
\begin{table}[!ht]
\footnotesize
\centering
\begin{tabular}{c|ccccccccccc}
Dataset&A1&A2&A3&A4&A5&A6&A7&A8&A9&A10\\
\hline
DS1&6.776&2.385&0.231&0.207&3.632&6.778&6.307&5.186&\textbf{0.162}&1.193\\
DS2&0.015&0.017&0.012&0.008&0.012&0.015&0.015&0.030&\textbf{0.007}&0.011\\
DS3&5.092&4.320&4.1&3.632&4.435&5.092&5.20&5.132&\textbf{3.504}&3.90\\
DS4&0.413&0.495&0.18&0.325&0.451&0.413&0.412&0.544&0.387&\textbf{0.154}\\
DS5&0.509&0.548&0.285&0.374&0.550&0.509&0.509&0.633&0.456&\textbf{0.113}\\
DS6&6.989&5.709&3.134&\textbf{2.839}&4.306&6.989&6.989&6.986&3.084&5.439\\
DS7&1.393&1.372&\textbf{0.217}&0.218&2.523&1.393&1.529&2.346&0.243&1.008\\
DS8&0.549&0.297&0.365&\textbf{0.289}&0.742&0.549&0.549&0.540&0.309&0.861\\
DS9&\textbf{1.496}&1.788&2.080&1.612&2.005&\textbf{1.496}&\textbf{1.496}&1.714&1.538&1.721\\
DS10&2.344&2.534&2.910&2.331&2.543&2.344&2.344&2.481&\textbf{2.258}&2.602\\
\hline
Avg. Rank&6.45&6.4&4.35&2.3&7.35&6.55&6.6&7.9&2.4&4.7\\
\end{tabular}
\caption{Résultat de la métrique MAE (Median Absolute Error) pour les bases de données évaluées avec des algorithmes de régression}
\label{tabRes2}
\end{table}
La dispersion globale, la médiane et les valeurs aberrantes pour quatre bases de données représentatives sont présentées dans la figure \ref{figBox}, où l'on peut voir que l'algorithme proposé génère plus de valeurs aberrantes que les autres algorithmes, mais la variance est faible et la convergence est proche de la valeur réelle, meilleure que la plupart des algorithmes comparés.
\begin{figure}
\includegraphics[scale=0.2]{./Figures/boxplot.png}
\caption{Résultats de la métrique MAE (\textit{Median Absolute Error}) pour les dix algorithmes et quatre bases de données représentatives}
\label{figBox}
\end{figure}
\section{Discussion}
L'algorithme proposé révèle une performance compétitive par rapport à certains des algorithmes les plus populaires, les plus utilisés et les plus récents pour la prédiction dans les problèmes de régression. En particulier, dans ce travail, nous avons effectué les tests sur dix bases de données avec différentes caractéristiques, telles que : le nombre d'instances, le nombre de caractéristiques, le domaine des variables d'entrée, les dimensions de la variable de sortie et le domaine d'application. Cela démontre la polyvalence de l'algorithme proposé et son applicabilité à différentes configurations. Étant donné la nature exploratoire et stochastique de l'algorithme proposé, il présente une grande diversité de solutions générant plusieurs valeurs aberrantes, mais malgré cela, dans la plupart des cas, il est possible d'atteindre une solution approximative qui converge vers la solution réelle, c'est la raison pour laquelle, dans certains cas, les valeurs de la moyenne sont élevées, mais celles de la médiane restent faibles.\\
On constate également que l'intégration des algorithmes de recherche produit de meilleurs résultats que les algorithmes simples, comme dans le cas de l'algorithme proposé par rapport au KNN ou par rapport à la régression linéaire, bien que pour l'algorithme proposé, l'impact du premier et du deuxième empilement sur les résultats finaux obtenus n'ait pas été déterminé avec précision.\\
Globalement, pour le RMSE, les algorithmes de boosting sont plus performants que les algorithmes classiques, même si les performances sont variables. L'algorithme proposé obtient des valeurs acceptables dans toutes les bases de données. D'après la moyenne des positions de classement, pour le RMSE, il est placé à la sixième place, pour le MAE, l'algorithme obtient la meilleure valeur dans trois des dix bases de données et il est placé globalement à la troisième place.\\
Un aspect important de l'algorithme proposé est la fonction objective, qui peut être évaluée et modifiée dynamiquement en fonction des caractéristiques du problème évalué, étant donné que dans la présente étude les tests ont été effectués avec la fonction intuitive qui fournit une plus grande probabilité de sélection et d'évolution à la solution associée aux voisins les plus proches, mais il est possible de compléter l'évaluation avec d'autres termes pertinents et d'améliorer ainsi les résultats.\\
Outre les résultats, l'algorithme proposé présente plusieurs avantages par rapport aux algorithmes avec lesquels il a été comparé, parmi lesquels : il ne nécessite pas d'entraînement, il peut intégrer des algorithmes et des règles dans chaque pile et, grâce à la conception en deux cycles, il peut travailler avec des problèmes dynamiques en cours d'exécution et la variance est faible dans les résultats produits.
\section{Conclusion}
Ce chapitre propose une technique de régression générique utilisant le raisonnement basé 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.\\