A comparative study for using PCA, LDA, GDA, and Lasso for dimensionality reduction before classification algorithms