## 4 Experimental Design
### Datasets and Evaluation Metrics  
The experimental datasets used synthetic and real data streams. Synthetic data streams are generated by an MOA data stream generator, where parameters, such as the number of samples, number of attributes, class distribution, class ratio, and concept drift type, could be set. Attributes refer to the number of attributes for each sample, class refers to the number of classes, class distribution refers to the proportion of samples in each class, and class ratio refers to the proportion of samples in each class. In the synthetic data stream, two types of data streams are set based on whether the class ratio varies or not, which are stationary data streams and variable data streams. Additionally, different degrees of class ratio and different types of concept drift are set for each type of data stream. Among them, we consider that the data stream is extremely imbalanced when samples of multiple minority classes whose ratio are all below 10%. The concept drift types contain sudden drift (S), gradual drift (G), and incremental drift (I). The sample size, attribute count, and class count of the 10 synthetic data streams were uniformly set to 200,000, 20, and 5, respectively, while the class distribution, class ratio, and drift were different. The real data streams used are PokerHand, Kddcup 99_10% and Statlog(shuttle); all of them are multi-class imbalanced data. The features of the synthetic and real data streams are shown in Table 2.  
In multi-class environments, the traditional evaluation metrics for two-class classification algorithms cannot reflect the performance of multi-class classification algorithms anymore. Therefore, researchers have improved the evaluation metrics of the two-class problem and extended them to the evaluation metrics of the multi-class problem. In the field of imbalanced classification, Recall and Precision are able to reflect the performance of learning models on individual class. Recall is more concerned with the algorithm's ability to classify minority class samples, while Precision is more focused on majority class samples. To evaluate the average performance of the algorithm in a multi-class imbalanced environment, it is necessary to average the Recall and Precision values for each class to obtain macro-Recall and macro-Precision, as shown in Equations (11)-(14). \[\text{Recall}=\frac{TP_{i}}{TP_{i}+FP_{i}} \tag{11}\]  
\[\text{Precision}=\frac{TP_{i}}{TP_{i}+FN_{i}} \tag{12}\] \begin{table}
\begin{tabular}{l l l l l l l} \hline \hline
**Data Stream** & **Instance** & **Attribute** & **Class** & **Class Distribution** & **Class Ratio** & **Drift** \\ \hline ImbSta\_Stream & 200,000 & 20 & 5 & 5/4/3/2/1 & (0.33; 0.26; 0.2; 0.13; 0.08) & - \\ ImbSta\_Extreme\_Stream & 200,000 & 20 & 5 & 20/4/3/2/1 & (0.67; 0.14; 0.1; 0.06; 0.03) & - \\ ImbSta\_SG & 200,000 & 20 & 5 & 5/4/3/2/1 & (0.33; 0.26; 0.2; 0.13; 0.08) & 2 \\ ImbSta\_Extreme\_SG & 200,000 & 20 & 5 & 15/4/3/2/1 & (0.6; 0.16; 0.12; 0.08; 0.04) & 2 \\ ImbSta\_Extreme\_SIG & 200,000 & 20 & 5 & 15/5/2/2/1 & (0.6; 0.2; 0.08; 0.08; 0.04) & 3 \\ \hline ImbVar\_Stream & 200,000 & 20 & 5 & 5/4/3/2/1 \(\rightarrow\) 1/3/2/5/4 & (0.33; 0.26; 0.2; 0.13; 0.08) & - \\  & & & & & (0.08; 0.2; 0.13; 0.33; 0.26) & - \\ ImbVar\_Extreme\_Stream & 200,000 & 20 & 5 & 20/4/3/2/1 \(\rightarrow\) 1/1/2/6/20 & (0.67; 0.14; 0.1; 0.06; 0.03) & - \\  & & & & & (0.03; 0.03; 0.06; 0.21; 0.67) & - \\ ImbVar\_SG & 200,000 & 20 & 5 & 5/4/3/2/1 \(\rightarrow\) 1/2/3/4/5 & (0.33; 0.26; 0.2; 0.13; 0.08) & 2 \\  & & & & & (0.08; 0.13; 0.2; 0.26; 0.33) & 2 \\ ImbVar\_Extreme\_SG & 200,000 & 20 & 5 & 15/4/3/2/1 \(\rightarrow\) 2/1/15/4/3 & (0.6; 0.16; 0.12; 0.08; 0.04) & 2 \\  & & & & & (0.08; 0.04; 0.12; 0.16; 0.6) & 2 \\ ImbVar\_Extreme\_SIG & 200,000 & 20 & 5 & 15/5/2/2/1 \(\rightarrow\) 1/2/2/5/20 & (0.6; 0.2; 0.08; 0.08; 0.04) & 3 \\ \hline PokerHand & 830,000 & 10 & 10 & - & - & - \\ Kddcup 99\_10\% & 494,000 & 42 & 23 & - & - & - \\ Statlog(shuttle) & 58,000 & 9 & 7 & - & - & - \\ \hline \hline \end{tabular}
\end{table}