## 2 Fireworks Algorithm for Feature Selection
For the fireworks \(x_{i}\), the probability calculation formula of being selected is:  
\[p(x_{i})=\frac{R(x_{i})}{\sum\limits_{x_{j}\in K}{x_{j}}} \tag{5}\]  
\[R(x_{i})=\sum\limits_{x_{j}\in K}{d\big{(}x_{i}-x_{j}\big{)}}=\sum\limits_{x_ {j}\in K}{\|x_{i}-x_{j}\|} \tag{6}\]  
In the above formula, \(R(x)\) is the sum of the distances between the individuals in the current candidate set. In the candidate set, if the individual density is relatively high, namely there are other candidates around the individual, the probability of the individual being selected will be reduced. (6) Judge the ending condition. If the ending condition is satisfied, jump out of the program and output the optimal results; if not, return to the step (2) and continue to circulate. The main purpose of feature selection is to find a subset from s specific problem, which can be described to find the combination optimization problem of the fireworks algorithm. It is very necessary to select the appropriate fitness function in the combination optimization problem, therefore, this paper considers the forecasting accuracy and number of selected features as the main factors in the fitness function, which is shown as follows:  
\[fitness(x_{i})=-[a*r(x_{i})+b*\frac{1}{Numfeature(x_{i})}] \tag{7}\]  
where \(r(x_{i})\) represents the forecasting accuracy of particle \(x_{i}\)\(Numfeature(x_{i})\) is the number of selected features; \(a,b\) is the constant between 0 and 1. Here, if a particle obtains a higher accuracy and a lesser number of features, then the fitness value will be better. In the fireworks algorithm, each firework represents a feature subset. Let \(x_{j}=\{0,1\}\), \(j=1,2,\cdots,n\), where \(j\) is the \(jth\) feature, when \(x_{j}=0\), this means the \(jth\) feature is not selected; otherwise, when \(x_{j}=1\), the \(jth\) feature is selected. However, before use FA to select the features, the subset of the algorithm must be determined. In this paper, we obtain the subset by calculating the correlation coefficient which is obtained by the following formula:  
\[Cor_{jk}=\frac{\sum\limits_{i=1}^{N}(x_{i}^{j}-\overline{x}^{j})\left(x_{i}^{ k}-\overline{x}^{k}\right)}{\sqrt{\sum\limits_{i=1}^{N}\left(x_{i}^{j}- \overline{x}^{i}\right)^{2}}\sqrt{\sum\limits_{i=1}^{N}\left(x_{i}^{k}- \overline{x}^{k}\right)^{2}}} \tag{8}\]  
where \(Cor_{jk}\) is the correlation coefficient between vector \(j\) and vector \(k\); \(x_{i}^{j}\) represents the \(i\)th factor of vector \(j\); \(\overline{x}^{i}\) is the average value of vector \(j\); \(x_{i}^{k}\) represents the \(i\)th factor of vector \(k\); \(\overline{x}^{k}\) is the average value of vector \(k\). In the icing prediction, the rule of determining the feature subset is as follows: Calculate the correlation coefficients between each influencing factor and the icing thickness according to the formula (8), and sort them in order of size from big to small. Set the number of all of the feature sets as \(c\), the characteristics of the correlation coefficient \(Cor>\theta\) are set into a subset, the rest of the characteristics are randomly distributed into other \(c-1\) subsets, and all the \(c\) feature sets are put into the set \(S_{i},i=1,2,\cdots,c\). Calculate the fitness function value \(fitness(S_{i}),i=1,2,\cdots,c\) of each feature set according to the above FA algorithm steps. Judge whether any subset is satisfied with the ending condition (an expected forecasting accuracy \(\epsilon\)). If that exists, output the result. If not, select the feature of the highest correlation coefficient from the subset with the maximum fitness and the next subset, and put it into the current set, and then enter a new iteration (Note: the same feature are not allowed in the same subset). The rule is shown in Figure 1.  
Figure 1: The rule of forming a new feature subset.