# Data Sampling Methods to Deal With the Big Data Multi-Class Imbalance Problem
## 4 Experimental Set-Up
### Parameter Specification for the Algorithms Used in the Experimentation  
The sampling methods used in this work can be found as a part of the library _imblearn_ ([[https://pypi.org/project/imblearn/](https://pypi.org/project/imblearn/)]([https://pypi.org/project/imblearn/](https://pypi.org/project/imblearn/))). It includes the over-sampling techniques SMOTE, ROS and ADASYN, and the under-sampling methods RUS, TL, ENN and OSS. All of them were implemented in Python programming language and could be performed in multi-class datasets. These methods were applied with default set-up (\(k=5\)) and the random state or seed was set to 42. In the case of the hybrid methods, the same library was used following the steps depicted in Figure 1, where over-sampling or under-sampling methods were performed in the original dataset, and the new dataset was processed with the other sampling method; afterwards, it was used for training of the neural network.  
\begin{table}
\begin{tabular}{l c c c c c c c c} \hline \hline
**Data Set** & **Classes** & **Samples** & **Features** & **Major** & **Minor** & **IR** & **Distribution** \\ \hline \multirow{3}{*}{Indian} & 17 & 21,025 & 220 & 10,776 & 20 & \multirow{3}{*}{538.8} & **0:10776; 1:46; 2:1428; 3:830; 4:237;** & **5:483; 6:730; 7:28; 8:478; 9:20;** & **10:972; 11:2455; 12:593; 13:205;** & **14:1265; 15:386; 16:93** \\ \hline \multirow{3}{*}{Salinas} & 17 & 111,104 & 224 & 56,975 & 916 & 62.2 & **0:10776; 1:2009; 2:3726; 3:1976;** & **4:1394; 5:2678; 6:3959; 7:3579;** \\  & & & & & & & 8112717; 9:6203; 10:3278; 11:1068; 12:1927; 13:916; 14:1070; 15:268; 16:1807 & **16:1807** \\ \hline \multirow{3}{*}{PaviaU} & 10 & 207,400 & 103 & 164,624 & 947 & 173.8 & **0:164624; 1:6631; 2:18649; 3:2099;** & **4:3064; 5:1345; 6:5029; 7:1330;** & **8:3682; 9:947** \\ \hline \multirow{3}{*}{Pavia} & 10 & 783,640 & 102 & 635,488 & 2685 & 236.7 & **0:635488; 1:65971; 2:7598; 3:3090;** & **4:2685; 5:6584; 6:9248; 7:7287;** & **8:42826; 9:2683** \\ \hline \multirow{3}{*}{Botswana} & 15 & 377,856 & 145 & 374,608 & 95 & 3943.2 & **0:374608; 1:270**; 2:101; 3:251; 4:215;** & **0:374608; 1:2709; 2:259; 8:203; 9:314;** & **10:248; 11:305; 12:181; 13:268; 14:95** \\  & & & & & & & **0:309157; 17:61**; 2:243; 3:256; 4:252;** & **5:161; 6:229; 7:105; 8:431; 9:520;** & **10:404; 11:419; 12:503; 13:927** \\ \hline \hline \end{tabular}
\end{table}
Table 1: Summary of the main database characteristics, such as dataset name, and the numbers of classes, samples and features. Major and Minor correspond to majority and minority classes, respectively. Imbalance ratio IR = Minor/Major, and Distribution is the number of samples by class.  
Multiple configurations of hidden layers and neurons (or nodes) for each neural network were employed. Both hidden layers and nodes were obtained for a trial and error strategy for every dataset. Table 2 shows the neural networks' free parameters and the specifications employed in the experimentation stage. The learning rate (\(\eta\)) was set to 0.001 and the stopping criterion was established at 500; 250 epochs were used for SMOTE+ENN* (for the proposed method, Algorithm 1) if the MSE value was lower than 0.001. The training of the neural network was performed by means of the Adam method; the latter is a computationally efficient and simple algorithm for optimization of stochastic objective functions by the gradient descent principle [59]. The training process was performed ten times in the experimental stage and the results correspond to the averages of those runs.