# Handling huge dataset imbalance (2 class values) and appropriate ML algorithm

I have train and test sets of chronological data consisting of 305000 instances and 70000,appropriately. There are 15 features in each instance and only 2 possible class values ( NEW,OLD). The problem is that there are only 725 OLD instances in the train set and 95 in the test.

The only algorithm which succeeds for me to handle imbalance is NaiveBayes in Weka (0.02 precision for OLD class), others (trees) classify each instance as NEW. What is the best approach to handle the imbalance and the appropriate algorithm in such a case?

• I asked a somewhat related question : datascience.stackexchange.com/q/810/2661
– pnp
Aug 7 '14 at 12:24
• Also, did you try the BayesNet (Bayesian Networks) algorithm in Weka and tried tuning the MaxNrOfParents argument in K2 search algorithm? I found it of good help in class imbalance problems.
– pnp
Aug 7 '14 at 12:28
• cs229.stanford.edu/proj2005/… A good read that involves a similar 'rare-event' problem. The authors use a random forest and optimize based on the ratio of class occurrence in the training set. (I'm not affiliated, but was just reading this a few days ago for a problem I'm working on). Aug 8 '14 at 16:12