## 5 Proposed Adaptive Salp Swarm Algorithm for Optimal Feature Selection
### Proposed Adaptive Salp Swarm Algorithm
#### 5.2.2 Proposed Adaptive Salp Swarm Algorithm  
Since we noticed, from a literature review, that the main disadvantage of SSA is their local optima issue. Then, we propose the adaptive technique to solve this weakness of SSA by improving its development ability between exploitation and exploration. The idea of this proposed technique is to enlarge the searching space of the salp while finding the new salp's position, which may possibly be located nearby. The procedure of the PQD classification using the adaptive SSA as the feature selection algorithm is described in following detail, while its pseudo code is illustrated in Figure 3.  
Step 1: Initialize the number of salp population, dimension of the feature extracting data and iteration parameters;  
Step 2: Create the feature vector randomly based on the setting upper and lower boundaries, defined dimension, and salp initialization;  
Step 3: Pass the feature vector through the classifier. Calculate the percentage classification accuracy by a correctly classified signal types divided by the total test signals. Memorize the feature vector having the highest accuracy in the current population;  
Step 4: Update the parameter \(c_{1}\) according to each iteration using Equation (11), and then randomly generate the parameters \(c_{2}\) and \(c_{3}\);  
Step 5: Evaluate the leader's position based on the parameters \(c_{1}\), \(c_{2}\), and \(c_{3}\) obtained from Step 4 using Equation (5). Then, the follower's position based on the existing leader position is determined using Equation (8). Once all dimensions are built, calculate the accuracy;  
Step 6: Perform the proposed adaptive technique, as the following detail. Select the feature vector having the highest accuracy at current iteration to enter the adaptive process. This process aims to further find the new position of salp nearby the current position which might has better accuracy than the existing one. At the each iteration of adaptive process, the adaptive coefficient value of the previous iteration, \(\beta_{i}^{i,old}\), is randomly generated for calculating the adaptive coefficient value of the current iteration, \(\beta_{i}^{i,new}\), with taking into account the initial weight, \(w_{\text{max}}\), and the final weight, \(w_{\text{min}}\), as expressed in Equation (12). The weight parameters developed in this work are used to determine the search space of the feature data in each iteration of adaptive process. \(C\) is the current iteration of the  
Figure 3: Pseudocode of the proposed adaptive SSA.  
adaptive method, \(C_{\max}\) is the maximum iteration number of the adaptive process. \(i\) is the iteration number of SSA process. After that, the feature vector of the adaptive process, \(x_{j}^{new}\), is obtained based on the salp's current position having the highest accuracy, \(x_{j}^{i}\), with taking into account the \(\beta_{i}^{i,new}\) and the \(x_{j}^{random}\), as expressed in Equation (13). Where \(x_{j}^{random}\) is the random feature vector between lower and upper boundaries of feature extracting vector, generated to indicate the data range of adaptive process compared to the \(x_{j}^{i}\);  
\[\beta_{i}^{i,new}=\beta_{i}^{i,old}-\frac{C(w_{\max}-w_{\min})}{C_{\max}} \tag{12}\]  
\[x_{j}^{i,new}=x_{j}^{i}+\beta_{j}^{i,new}\Big{(}x_{j}^{i,random}-x_{j}^{i} \Big{)} \tag{13}\]  
where \(j\) is the feature dimension. The feature vector obtained from the adaptive process is passed through the PNN classifier, and then the classification accuracy is calculated;  
Step 7: Repeat the adaptive process until the its maximum iteration is reached. Collect the feature vector of adaptive process indicating the highest classification accuracy;  
Step 8: Compare the classification accuracy obtained from the adaptive process to that existed in iterations of SSA, then collect the feature vector that has the highest classification accuracy;  
Step 9: Repeat Step 3 to 8 until the maximum number of iterations is reached. Obtain the optimal feature vectors.