Suppose I want to build an interpretable model and the response variable is 0/1. However, there are 99% 1's and 1% 0's. The date looks like this:

week catA catB catC numvisits haspurchased
1 1 4 7 100 1

where catA catB and catC are categorical variables, and haspurchased is the response variable. catC has 1000 levels. So most of my independent variables are categorical. The ratio of 0's to 1's is 10,000 to 1. Here is my methodology:

   dmSmote<-SMOTE(haspurchsed ~ . , data1,k=5,perc.over = 1400,perc.under=140)
   fit <- rpart(haspurchased ~., method="class", data=dmSmote)

Is this a viable approach? How do I know what parameters I choose for under and oversampling, and is there a way I can build an interpretable ensemble of trees instead on one tree?


1 Answer 1


Hardly: "artificially generate new examples of the minority class using the nearest neighbors" for 1% vs. 99% means that overwhelming majority of your data in the '1' category will be fake data. Would you trust that? Unless you use smote for just under-sampling; which could also be done by simple random subsampling. Then the question of whether this is solvable would depend on how many '1' you have.

You could build an ensemble of trees instead of a single tree, which may result in a small improvement, but that would not solve this problem.


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.