Drowsiness is the leading cause of many fatal accidents and a substantial financial burden for the economy. Efforts have been made to develop techniques to prevent major accidents while remaining practical for everyday use. The most successful approach discovered thus far involves utilizing physiological techniques that rely on EEG signals. Despite their promising performance, the signal collection process has made them unsuitable for practical implementations. However, the emergence of low-cost commercial EEG headsets has enabled tackling this issue. Our study aimed to assess the effectiveness of machine learning models in identifying drowsiness stages using minimal EEG channels. The study was conducted with fifty sleep-deprived participants driving in a simulator. Based on the Observer Rated Drowsiness method, we divided the stages of drowsiness into three categories: alert, drowsy, and sleepy. Various features were extracted from the EEG signals in time, frequency, and time-frequency domains. Three models were trained in each domain using k-nearest neighbors and ensemble bagged tree classifiers. A majority vote among the three models determined data labels, trained using different combinations of channel data features. Three training strategies were utilized: 1) single channel, 2) temporal channels, frontal channels, left-side channels, and right-side channels separately, and 3) all channels. The results of 10-fold cross-validation showed that the frequency features of temporal channels had the highest accuracy. The best results for nearest neighbors were 97.1% (alert-sleepy), 96.6% (drowsy-sleepy), and 96.7% (alert-drowsy). The highest accuracy of ensemble bagged trees was 100% for all three models.