# Ensemble Voting-Based Multichannel EEG Classification in a Subject-Independent P300 Speller
## 4 Simulation Results
### Eight-Channel Data Simulations  
The classification models were trained on the eight-channel data of eight healthy subjects and tested on four healthy subjects. The channels used are represented in Figure 4a. Two baseline classifiers were also trained and tested on the same data. The first classifier was a classical gradient boosting. Gradient boosting has shown high performance for EEG classification in different applications, such as rehabilitation systems [39] and the P300 speller [40]. In this work, the gradient boosting classifier was modeled by using the sklearn python library [41]. The second classifier was extreme gradient boosting or XGBoost [42]. Due to its high performance and time efficiency over recent years, XGBoost has become a popular option for different applications, and the P300 speller is not an exception [43]. Both XGBoost and gradient boosting classifiers are designed with the maximum number of trees limited to 100, where each tree can have a maximum depth of three nodes. A default learning rate of 0.1 was used for the experiments [41]. There were no pruning and no parallel threads used for the baseline classifiers. XGBoost uses tree booster, which is preferable to the linear booster, as the linear booster may fail to fit when using complex time-series EEG data. While training for eight-channel data, the weights of the W-LDA-SVM-\(k\)NN model were found using RS. RS performed nested 5-fold cross-validation on the data of eight healthy subjects to find the optimal weights. There were 800 data samples used for training and 200 data samples used for the test to find the optimal weights. Searching for the weights took 41.58 s for the data from eight subjects. The obtained weights were as follows:  
* LDA weight: \(w_{1}=0.19\)
* SVM weight: \(w_{2}=0.71\)
* \(k\)NN weight: \(w_{3}=0.25\)  
The obtained weights can be used for further experiments, without renewal. The average time for elapsed for testing was 3.91 s as seen from the results, presented in Table 2. The last column of Table 2 represents the computational time spent for various models while testing the same amount of data. The proposed classifiers provided good results, except for the model that used CNN. The LDA-SVM-\(k\)NN-CNN ensemble voting model turned out to be computationally ineffective due to the complex structure of the neural  
Figure 4: EEG electrodes placement on a scalp: (**a**) 8-channel data experiments; (**b**) 4-channel data experiments; (**c**) single-channel data experiments. network. Moreover, the model suffered from overfitting, as the value of the F-score was more than 7% lower than the accuracy value. The fastest model proposed was the LDA-kNN fusion, which took only 0.72 s to train for eight subjects. This can be explained by the fact that LDA is an efficient choice for EEG classification with low computational complexity, and \(k\)NN is an instance-based algorithm that computes the distance for only \(k=3\) neighbors. For the same experiment, standalone LDA required 0.61 s for training, while it took only 0.16 s for \(k\)NN to train the same amount of data. The weighted ensemble model did not show any performance improvement compared to the simple averaged LDA-SVM-\(k\)NN model. However, both models provided the best F-score, achieving more than 99.12%. Obviously, the proposed ensemble classifiers require more time to process the data than the classical standalone models. However, it is seen from Table 2 that the difference between the elapsed time is not very meaningful. Thus, it can be said that ensemble learning does not require many more computational resources when trained on eight subjects. Moreover, the proposed classifiers provided better results than the gradient boosting in terms of computational complexity. This is explained by the fact that the gradient boosting nests decision trees one after another to achieve the necessary performance.