# EvoSplit: An Evolutionary Approach to Split a Multi-Label Data Set into Disjoint Subsets
## 4 Second Approach: Multi-Objective Evolutionary Algorithm  
Then, it seems appropriate to consider both statistical measures, the Label Distribution and the Label Pair Distribution, in the optimization algorithm to split a data set into disjoint subsets. Multi-objective optimization problems are those problems where the goal is to optimize simultaneously several objective functions. These different functions have conflicting objectives, i.e., optimizing one affects the others. Therefore, there is not a unique solution but a set of solutions. The set of solutions in which the different objective components cannot be simultaneously improved constitute a Pareto front. Each solution in the Pareto front represents a trade-off between the different objectives. Similarly to evolutionary algorithms for single objective problems, multi-objective evolutionary algorithms (MOEA) [36] are heuristic algorithms to solve problems with multiple objective functions. The three goals of an MOEA are [37]: (1) to find a set of solutions as close as possible to the Pareto front (known as convergence); (2) to maintain a diverse population that contains dissimilar individuals to promote exploration and to avoid poor performance due to premature convergence (known as diversity); and (3) to obtain a set of solutions that spreads in a more uniform way over the Pareto front (known as coverage). Several MOEAs have been proposed in the literature. This work employs the Non-dominated Sorting Genetic Algorithm II (NSGA-II) [38].  
NSGA-II has the three following features: (1) it uses an elitist principle, i.e., the elites of a population are given the opportunity to be carried to the next generation; (2) it uses an  
\begin{table}
\begin{tabular}{l c c c c c c} \hline \hline  & \multirow{2}{*}{**Random**} & \multirow{2}{*}{**Stratification**} & \multicolumn{6}{c}{**Evolutionary Algorithm**} \\ \cline{3-6}  & & & \multicolumn{2}{c}{**Label Distribution**} & \multicolumn{2}{c}{**Label Pair Distribution**} \\ \cline{3-6}  & & & **Unconstrained** & **Constrained** & **Unconstrained** & **Constrained** \\ \hline
**emotions** & 0 & 0 & 0 & 0 & 0 & 0 \\ \hline
**scene** & 0 & 0 & 0 & 0 & 0 & 0 \\ \hline
**genbase** & 85 & 76 & **74** & **75** & **74** & **73** \\ \hline
**medical** & 202 & 174 & (176) & (175) & (200) & (180) \\ \hline
**yeast** & 0 & 0 & 0 & 0 & 0 & 0 \\ \hline
**enron** & 87 & 77 & **59** & **53** & **62** & **55** \\ \hline
**rcvlsubset4** & 106 & 68 & (78) & **63** & **66** & **62** \\ \hline
**rcvlsubset3** & 77 & 57 & **54** & **40** & **44** & **39** \\ \hline
**rcvlsubset5** & 83 & 50 & **49** & **44** & **48** & **47** \\ \hline
**rcvlsubset2** & 69 & 35 & (36) & **30** & **34** & **33** \\ \hline
**rcvlsubset1** & 74 & 59 & **56** & **43** & **50** & **44** \\ \hline
**tmc2007\_500** & 0 & 0 & 0 & 0 & 0 & 0 \\ \hline
**bibtex** & 2 & 0 & 0 & 0 & 0 & 0 \\ \hline
**Corel5k** & 1157 & 1019 & **925** & **843** & **948** & **866** \\ \hline \hline \end{tabular}
\end{table}
Table 7: Number of fold-label pairs with zero positive examples (\(FLZ\)) of different splitting algorithms. In bold the results that are better than the stratification method. Between brackets those results that are worse.  
explicit diversity preserving mechanism (Crowding distance); and (3) it emphasizes the non-dominated solutions.  
Therefore, this work employs NSGA-II to distribute the data set into subsets optimizing simultaneously both the Label Distribution and the Label Pair Distribution. The algorithm will obtain a set of solutions, some of them optimizing one over the other objective and vice versa. From these set of solutions, EvoSplit selects the solution closer (using Euclidean distance) to the coordinates origin (Figure 2).  
This work has employed the implementation of NSGA-II offered by pymoo [39], a multi-objective optimization framework in Python, using the same parameters in terms of individuals, size of offspring and ending condition presented in Section 3.3.