Cross posted from data science due to lack of response

This is probably a thing I am just not searching for correctly, but essentially my idea is this: given some machine learning classification $C$ based on an input dataset $D$, certain observations in $D$ are more likely to be misclassified than others because they are "less common". So what we would want to do is oversample observations like that, until $C$ is trained such that all observations have the probability of being classified correctly.

Is there a resampling method that does such a thing? My idea would be to

  1. train classifier $C$ on base dataset $D$
  2. take all observations misclassified by $C$ in $D$ and insert into new dataset $D'$
  3. retrain $C$ on $D = D + D'$ (or add a new batch with $D'$ in SGD etc)
  4. iterate that way until some convergence happens

Has someone formalized something along these lines? Intuitively, we want to overweight under-represented types of data.

Update: An additional thought I had that something along these lines might be useful in Q-learning - that instead of just randomly exploring off-policy, explore in areas where the model is less confident.


What you're describing is a classic class imbalance problem. You can find related work here and a scikit-learn specific package here.

If what you want is to focus the power of your model into the misclassified instances, you might want to look into boosting which will do just that.

Boosting is an ensemble approach in which, roughly, each subsequent learner is trained on the mistakes made by the previous one, by maintaining a weight for each example that get increased every time the example is misclassified, and decreased otherwise.

  • $\begingroup$ Thanks. The difference I think is that there is no a priori way to know if an observation is a member of an imbalanced class in my example. So the class is basically those observations which are 'very' incorrectly classified, say. Would an iterative method like I've proposed work with this reclassification? $\endgroup$ – dashnick Oct 24 '18 at 15:50
  • $\begingroup$ Hello @dashnick I updated the answer with a suggestion. $\endgroup$ – Bar Oct 25 '18 at 9:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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