Suppose I have an experiment where I have 70 features and 48 samples. The target variable is binary (0,1) and the 48 samples are divided such that 24 of them correspond to outcome 1 and the other 24 correspond to outcome 0.

Note that the data I have is an averaged data. In other words, each of the 48 samples is a result of "n" averaged trials.

I am interested in using SVM and obtaining the weight vector (70x1). In a way, I have less number of samples vs features. However, the data which I have is an outcome of averaged trials.

In case I don't have access to the raw data, what is the best way to deal with the data? And does having the mean of trials as my data give a privilege over having 48 raw-trails instead?


1 Answer 1


About dealing with the mean of trials, I should say you can not recover the original trials and therefore you have to trust the results of classifucation model trained on averaged trials.

About dealing with a dataset with higher number of features than number of samples, I would suggest the following steps:

1- reduce the dimension of your data from 70 to 2 using PCA or t-SNE and

2- visualize it using a scatter plot to see if your labels are linearly separable in 2D space

3- If the result of PCA linearly separates labels, it means that your labels are kind of linearly separable in the original 70D space. So, you would apply the results of PCA (or even your original features) to linear-SVM.

4- If the result of t-SNE linearly separates labels, it means that your labels are not linearly separable in the original 70D space because unlike PCA, t-SNE is not a linear transformer. In this case, you would apply kernel SVM to your data.

5- If because of lack of data none of aforementioned methods worked, you would try low-variance classifiers such as Random Forest.

6- If Random Forest didn’t work, you would try using Bayesian methods such as Bayesian logistic regression because these methods assume a prior for parameters’ distributions and update it to posterior distributions using training data which compensates the lack of enough training data.

  • $\begingroup$ Do I use PCA on the whole 48 trials given that they contain data for two different conditions (0,1)? Or do I apply it twice once per condition? $\endgroup$
    – HaneenSu
    Apr 12, 2019 at 17:20
  • $\begingroup$ You should absolutely apply PCA to the whole 48 trials simultaneously. $\endgroup$
    – pythinker
    Apr 12, 2019 at 17:29
  • $\begingroup$ It's kinda funny that trying PCA or tSNE for feature reduction results in a non-linearly separable labels for both methods. I applied this on (48x16250) matrix; huge number of features I know. But I think I have to work on my data, as it is EEG data. 48x70 is a portion of it. Thanks I learnt many things from your answer. $\endgroup$
    – HaneenSu
    Apr 12, 2019 at 19:58
  • $\begingroup$ You’re welcome. Yes, I think it will work on your daraset. $\endgroup$
    – pythinker
    Apr 12, 2019 at 20:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.