## 2 Methods
### Autonomous Data Partitioning Based on Local Data Density  
Within the EDA framework, a completely data-driven, unsupervised, and non-parametric clustering method was developed, named autonomous data partitioning (ADP) [22]. The nonparametric measure involved in the algorithm is the local density, whose static and recursive mathematical formulations are expressed in Equations (10) and (11), respectively. The local density identifies the main local mode of the data distribution and is derived empirically from all observed data samples. Different types of distance metrics can be used, e.g., Euclidean distance, Mahalanobis distance, and cosine similarity. Here, formulations that consider Euclidean distance are presented. \[D_{K}(x_{k})=\frac{\sum_{j=1}^{K}\sum_{l=1}^{K}d^{2}\big{(}x_{j},x_{l}\big{)}} {2K\sum_{l=1}^{K}d^{2}\big{(}x_{j},x_{l}\big{)}} \tag{10}\]  
\[D_{K}(x_{k})=\frac{1}{1+\frac{\|x_{K}-\mu_{k}\|^{2}}{X_{K}-\|\mu_{k}\|^{2}}} \tag{11}\]  
where \(\mu_{k}\) and \(X_{K}\) can be recursively updated by Equations (3) and (4). The ADP algorithm, in its evolving form, is able to start \"from scratch\", i.e., with a single sample. The first step is the initialization of the global meta-parameters as the first data sample, \(\text{K}\gets 1\), is available:  
\[\text{NC}\gets 1;\quad\mu_{\text{K}}\gets x_{1};\quad X_{\text{K}} \leftarrow\|\text{x}_{1}\|^{2}\]  
where NC is the number of data clouds. The meta-parameters of the first data cloud are initialized, as follows:  
\[\text{C}_{1}\leftarrow\{x_{1}\};\quad c_{\text{K},1}\gets x_{1};\quad S_{ \text{K},1}\gets 1\]  
where \(c_{\text{K},1}\) is the prototype (center) of the data cloud 1 at time stamp K and \(S_{\text{K},1}\) is the number of data samples that belong to the cloud 1 at the time stamp K.  
For each newly arriving data sample \((\text{K}\leftarrow\text{K}+1)\), the global meta-parameters \(\mu_{\text{K}}\) and \(X_{\text{K}}\) are updated through Equations (3) and (4). Subsequently, the data densities at the current point \(x_{\text{K}}\) and at the cloud centers \(c_{\text{K},i}\)\((i=1,2,\ldots,\text{NC})\) are computed using Equation (11). The following condition is checked to decide whether \(x_{\text{K}}\) is able to become a new prototype and form a data cloud around itself:  
\[ \begin{split}\text{IF}\;\text{D}_{\text{K}}(x_{\text{K}})>\max_{ (i=1,2,\ldots,\text{NC})}(\text{D}_{\text{K}}(c_{\text{K}-1,i}))\;\text{OR}\\ \text{D}_{\text{K}}(x_{\text{K}})<\min_{(i=1,2,\ldots,\text{NC})}( \text{D}_{\text{K}}(c_{\text{K}-1,i}))\;\text{THEN}\;(x_{\text{K}}\text{ is a new prototype})\end{split}  \tag{12}\]  
If the density at the current point is greater/lower than the density at any of the existing data clouds, that is, if the condition of Equation (12) is satisfied, then a new data cloud is added and \(x_{\text{K}}\) becomes the prototype of the new cloud:  
\[\text{NC}\leftarrow\text{NC}+1;\;C_{\text{NC}}\leftarrow[x_{\text{K}}];\;c_{ \text{K},\text{NC}}\leftarrow x_{\text{K}};\;S_{\text{K},\text{NC}}\gets 1\]  
Otherwise, the center of the nearest data cloud \(C_{\text{n}^{*}}\) to \(x_{\text{K}}\) is found, being denoted \(c_{\text{K}-1,n^{*}}\), and the following condition is checked to see whether \(x_{\text{K}}\) is associated with the nearest data cloud \(C_{\text{n}^{*}}\)  
\[\text{IF}\left(d(x_{\text{K}},\;c_{\text{K}-1,n^{*}})<\frac{\gamma_{\text{K}} }{2}\right)\text{THEN}\;(x_{\text{K}}\text{ is assigned to }C_{\text{n}^{*}}) \tag{13}\]  
where \(\gamma_{\text{K}}\) is approximately equal to the average distance between all the data samples \(\sqrt{d_{\text{K}}}\), and it can be computed, as follows: \(\gamma_{\text{K}}\approx\sqrt{d_{\text{K}}}=\sqrt{2\big{(}X_{\text{K}}-\|\mu_{ \text{K}}\|^{2}\big{)}}\).