This is a follow-up question to a question I had previously posted on this forum We conducted an experiment on 100 subjects and obtained a dataset that was used to train a machine learning model that works almost perfectly (we get a 99.99% accuracy) using cross-validation but fails miserably when test to new unseen data (we get only 39.8% accuracy). In detail, here is how we are testing our model:

  1. Conduct an experiment (100 subjects) and recording physiological data (skin conductance and heart rate)
  2. For each subject, compute the feature from the raw data (thus, we obtain 100 datasets with 25 features)
  3. Reserve the whole data of one subject for model validation
  4. Combine the remaining 99 datasets into one large dataset (thus, we obtain a dataset with up to 1 million rows and 25 columns)
  5. The obtained large dataset is used to train a model and evaluate it using a 10-folds cross-validation.
  6. Use the reserved dataset (see step 3) to validate the model obtained in step 5 above The model performs very well (99.9% accuracy) when we used cross-validation (step 5) but fails to generalize (only 40% accuracy) when tested on new data from the unseen subject (step 3).

After reading the comments I received in my previous question, I decided to revise how I validate the model. Thus, instead of removing all the sample of one subject (as I did in step 3), I only remove all but a few samples (just 0.1% of the sample, i.e around 100 samples in my case). Surprising the model performs significantly better and achieves a 90% accuracy. This is puzzling and I would like to ask a few questions:

(1)How can one explain that a few samples (just 100 samples) are responsible for such an increase in performance (from 40% to 90% accuracy)(I will need to publish my result in a reputable conference)?

(2) Is there any published work that discusses this type of phenomena?

  • $\begingroup$ Could you try retraining on a different set of 99 - randomly selecting - and looking for similarities in participants the model doesn't predict well for? It could be that the model does well predicting for participants who had their data collected on a particular day, particular room etc etc. I don't know what those differences are but sometimes it helps to start with considering external factors you haven't yet taken into account. $\endgroup$ Feb 1, 2019 at 13:56
  • $\begingroup$ @LioElbammalf I have indeed tried with different users. The results is the same $\endgroup$
    – user217442
    Feb 1, 2019 at 15:01

1 Answer 1


Given that you left one subject out and did 10-fold CV on the combined data from the other 99 subjects:

My guess is that if CV was done completely randomly across the combined dataset then each fold in the CV saw data from all 99 subjects.

I would try doing CV at the subject level and seeing if the CV error matches the validation error.

The subtext here is a suspicion that the model generalises badly to unseen subjects and in your CV all the subjects are seen in each fold.

  • $\begingroup$ Thanks for your answer. I do also suspect the model does not generalize to unseen subjects $\endgroup$
    – user217442
    Feb 1, 2019 at 15:04

Your Answer

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