# Feature Selection for High-Dimensional Datasets through a Novel Artificial Bee Colony Framework
## 3 Introduction and Analysis of ABC Algorithm  
The ABC algorithm is a kind of swarm intelligence (SI) algorithm that simulates the honey-gathering behavior of a bee swarm. This algorithm includes three types of bees: employed bees, onlooker bees and scout bees. Each food source corresponds to a solution to the given task, and the fitness of the solution indicates the quality of the food source. The overall process of the ABC algorithm is as follows [34]. First of all, it initializes a population of size SN randomly. This is calculated by Equation (1):  
\[x_{id}=x_{d}^{min}+r*\left(x_{d}^{max}-x_{d}^{min}\right) \tag{1}\]  
where \(i=1,2,\ldots,\)\(SN,d=1,2,\ldots,\)\(D.\)\(SN\) is the number of food sources. \(D\) is the dimensionality of the search space. Additionally, the number of employed bees or onlooker bees is equal to the number of food sources. \(r\) is a random number in [0, 1], distributed uniformly. \(x_{d}^{min}\) and \(x_{d}^{max}\) represent the maximum and minimum values of the \(d\)th dimension feature, respectively. After initialization, the bees begin to search. 1. Employed bee phase: According to Equation (2), a new food source is produced around the current food source, as follows: \[x_{id}^{\prime}=x_{id}+\varphi_{id}*\left(x_{id}-x_{kd}\right)\] (2) where \(\varphi_{id}\) is a random number within [\(-1\),1]. \(x_{id}\) and \(x_{kd}\) represent the \(d\)th dimension feature of \(x_{i}\) and \(x_{k}\), respectively. \(x_{id}^{\prime}\) is compared with \(x_{id}\), and if the fitness of \(x_{id}^{\prime}\) is superior to \(x_{id}\), \(x_{id}\) is replaced by \(x_{id}\) for entry into the next step, and its counter is reset to 0. Otherwise, \(x_{id}\) is retained for entry into the next step, and its counter increases by 1. 2. Onlooker bee phase: Every onlooker bee selects a food source depending on the probability value \(p_{i}\) via the roulette-wheel scheme. \(p_{i}\) is associated with the food resource information given by the employed bee. The value of \(p_{i}\) is generated by Equation (3). \[p_{i}=\frac{fit_{i}}{\sum_{i=1}^{SN}fit_{i}}\] (3)where \(fit_{i}\) is the fitness value of solution \(x_{i}\). Each selected food source is updated using Equation (2). 3. Scout bee phase: If the counter of a food source is greater than or equal to the preset number of trials, then this food source is discarded. The value of the preset number of trials is usually called the limit for abandonment. If a food source is abandoned, then the scout bee translated from the employed bee will regenerate a food source via Equation (1) to replace the food source that is abandoned. In the ABC algorithm, the employed bees are in charge of finding viable solutions throughout the search area, and providing the onlooker bees with food information. Based on the food information, the onlooker bees search new food sources near to the existing found food sources. In the updating process of the onlooker bee phase, the same updating formula (Equation (2)) is used to update the population as in the employed bee phase. As we can see from the above, the ABC algorithm does not take advantage of the elitism principle. Both the employed bees and onlooker bees use Equation (2) to obtain new food resources, as it has a powerful global search ability, but its search efficiency is low and its exploitation ability is not optimal. The roulette-wheel scheme can make food sources with higher fitness values easier to select, and the use of the roulette-wheel scheme in the onlooker bee phase can strengthen the exploitation ability, but this exploitation ability is far less strong than its powerful exploration ability. Therefore, as [PERSON] and [PERSON] [35] have pointed out, the exploitation level of the onlooker bee phase should increase. In addition, the scout bee phase not only reduces the probability of falling into the local optimum, but it also reduces the rate of convergence. Under the action of the scout bees, the optimal solution may also be discarded [34].