I am working on a ML problem where one class label is very less than even 1 percent. i.e 0.0002%

I have tried undersampling, oversampling, SMOTE but the results are not satisfactory on the model.

I think a better sampling technique can improve the results. How should I go about this problem.

  • 1
    $\begingroup$ Welcome to DataScienceSE. How many instances do you have? Imho this is more like anomaly detection than regular classification, maybe one-class classification could work. In general I wouldn't expect good performance, it will probably be very hard. $\endgroup$
    – Erwan
    Sep 22 at 8:44
  • $\begingroup$ Should be a comment but I don't have enough karma to post. My apologies. But yes, this would be an anomaly detection in my mind. What are the rare class like? Are they particularly strange in any given way; eg, X_2 is large or the ratio of X_3 to X_4 is less then one. You could also do some kind of manual examination here of the odd balls. $\endgroup$
    – user70889
    Sep 22 at 20:49
  • $\begingroup$ It is fraud detection for payment processing where we have to see if the transaction is fraudulent or not. It is not a case of anomaly detection but can we consider this as a case of anomaly? P.S it is not a strange pattern. $\endgroup$
    – MUK
    Sep 23 at 5:28
  • 1
    $\begingroup$ You didn't say the number of instances, you must have a representative sample of the minority class otherwise it won't work. If you're going to do anything with resampling (not sure that this is the right direction), it should be only downsampling the majority class at different levels until the system can detect a few minority instances, probably with a lot of FP. And as I suggested, you could try one-class classification. $\endgroup$
    – Erwan
    Sep 23 at 9:33


Your Answer

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