The feature selection process in machine learning is quite important to reduce the overhead and improve accuracy. Various methods have been so far suggested but heuristic optimization methods are leading in those. We hereby proposed a novel hybrid optimization algorithm which combines the Grasshopper optimization (GoA) and Simulated annealing (SA). To make the hybrid optimization algorithm, two different approaches  are used: a low level and high level. We tested the proposed solution for both approaches and found low-level performance better than high-level hybridization. The datasets used for this are available here.
The feature selection process is based on binarizing the optimization algorithms. The indexes of features are either 1 or 0 if selected or not respectively. The matrix with an arrangement of 1 & 0's is input to the optimization algorithm. Since the GoA is not developed to accept the binary input, so we rounded off the initial positions of wolves in GoA as
This will make the positions of GoA as 1 and 0. This now represents the index of selected features as the dimension of the wolf's position is equal to the number of attributes in the database. Further, the updated position of GoA is also converted to binary by signum function . In MATLAB it is represented as
deltaX= c * S_i_total'+ (TargetPosition); % Eq. (2.7) in the paper for tt=1:size(deltaX,2) T_deltaX(tt)=1/(1+exp(-deltaX(tt))); if rand<T_deltaX(tt) X_new(tt) =1; else X_new(tt)=0; end end GrassHopperPositions_temp(i,:)=X_new';
The final selected binary position of GoA is the selected feature's index, which is further classified by using the k-nearest neighbor classifier.
In this work, we have shown the comparison with all features and SA. For the proposed hybrid optimization approach, please write us email@example.com.