I am facing a two-class classification problem where:
There is way more training data in class 1 than in class 0.
Classifying a class 0 event as class 1 has a higher loss than classifying a class 1 event as class 0.
The prior probability of an event belong to class 0 is about 50 times smaller than the probability of belonging to class 1.
The way I see it I have (at least) 4 mechanisms to address these issues:
a. Collecting more data for class 0 than class 1 makes the classifier biased towards class 0.
b. Weighting the samples in class 0 higher than the ones in class 1.
c. Introducing an asymmetric loss function (which I understand as being identical to a 0-1 loss function in the weighted class case)
d. Given that the classifier gives returns a probability with which it assumes that a sample belongs to class 0, use a threshold smaller than 0.5 to assign a sample to class 0.
To me it seems like all four mechanisms are capable of addressing issues 1) and 3) (but not 2)) so I am wondering what is the cleanest way of addressing this?