## 6 Feature Selection Using Genetic Algorithm  
There can be numerous features that identify the personality of the author: preferred words, local speech features, length of sentences, use of turns of speech, vocabulary. However, a change in these parameters leads to a change in the frequency characteristics of the text. Due to this, the question of determining the set of the most informative features, as well as the exclusion of redundant features appears. Genetic algorithms for feature selection are used to select an optimal subset from the general set of used features. In addition to the increase of the accuracy due to the removal of redundant and uninformative vector elements, this solution reduces the dimensionality of the feature space and accelerates the training of the model. In total, there are three operators in GA: selection, crossing, and mutation. The rate of each operator belongs to a value from 0 to 1. Where 0 is the complete exclusion of the operator from an algorithm, 1 is the maximum possible work of the operator. Selection is a must-used operator for selecting subsets of features for further work of the algorithm. Selection can be either random or conditional. Individuals (features) that have the maximum value of the \"fitness\" function are defined on the selected subset. The selected individuals \"reproduce\" the next generation using mutation and crossing operations. The number of generations is determined based on the choice of crossing and mutation rates. As the number of generations increases, the probability of finding a global optimum--the population where genes are the most adapted--increases too. The stopping criterion can be the threshold value of the classification accuracy, finding a suboptimal or global optimum, exhaustion of the algorithm's running time, or a given number of calls to the target function. \begin{table}
\begin{tabular}{c c c c c c c} \hline \hline  & & & & & \\ \hline
**SVM** & **LR** & **NB** & **DT** & **RF** & **KNN** \\ \hline
589 & **397** & **308** & **236** & 804 & 604 \\ \hline \multicolumn{6}{c}{**Training Time on TF-IDF, Sec.**} \\ \hline
**SVM** & **LR** & **NB** & **DT** & **RF** & **KNN** \\ \hline
717 & 584 & **372** & 416 & 1393 & 955 \\ \hline \multicolumn{6}{c}{**Training Time of Neural Networks, Sec.**} \\ \hline
**LSTM** & **BiLSTM** & **CNN** & **CNN + LSTM** & **LSTM + CNN** & **CNN + CNN** & **fastText** & **RuBERT** & **MultiBERT** \\ \hline
30,190 & 32,980 & 25,380 & 28,397 & 26,467 & 25,874 & 15,926 & 26,547 & 27,117 \\ \hline \hline \end{tabular}
\end{table} 
Table 10: Training time on the dataset of 50 authors. The feature vector is binary: 1 corresponds to the inclusion of a feature into the set, and 0 means the exclusion. Since 1168 features were previously used, a complete enumeration requires considering 21168 subsets. GA's goal is not to consider all variants but to select several subsets for a given number of features. Feature selection is implemented by embedding GA into the classifier, where the maximum accuracy or the minimum loss is used as the \"suitability\" of features. In this study, GA was used in tandem with SVM. The reason lies in the fact that in the majority of cases SVM demonstrated the best accuracy among the classical ML methods. There is no need to use GA together with deep NNs, due to the ability of such architectures to select informative features automatically. In addition, the SVM training time is ten times smaller in comparison with deep NNs. As such, it is hypothesized to improve the accuracy of SVM classification. GA is defined by the following parameters:  
* population size: 200;
* crossover ratio: 0.5;
* mutation rate: 0.2;
* number of populations: 20. Experiments were provided to obtain 50, 100, 200, 300, 400, 500 informative features from the original set of 1168 elements.