title: How to purposely overfit Weka tree classifiers?
body: <p>I have a binary class dataset (0 / 1) with a large skew towards the "0" class (about 30000 vs 1500). There are 7 features for each instance, no missing values.</p>
  
  <p>When I use the J48 or any other tree classifier, I get almost all of the "1" instances misclassified as "0".</p>
  
  <p>Setting the classifier to "unpruned", setting minimum number of instances per leaf to 1, setting confidence factor to 1, adding a dummy attribute with instance ID number - all of this didn't help.</p>
  
  <p>I just can't create a model that overfits my data!</p>
  
  <p>I've also tried almost all of the other classifiers Weka provides, but got similar results.</p>
  
  <p>Using IB1 gets 100% accuracy (trainset on trainset) so it's not a problem of multiple instances with the same feature values and different classes.</p>
  
  <p>How can I create a completely unpruned tree?
  Or otherwise force Weka to overfit my data?</p>
  
  <p>Thanks.</p>
  
  <p><strong>Update:</strong> Okay, this is absurd. I've used only about 3100 negative and 1200 positive examples, and this is the tree I got (unpruned!): </p>
  
  <pre><code>J48 unpruned tree
  ------------------
  
  F &lt;= 0.90747: 1 (201.0/54.0)
  F &gt; 0.90747: 0 (4153.0/1062.0)
  </code></pre>
  
  <p>Needless to say, IB1 still gives 100% precision.</p>
  
  <p><strong>Update 2:</strong> Don't know how I missed it - unpruned SimpleCart works and gives 100% accuracy train on train; pruned SimpleCart is not as biased as J48 and has a decent false positive and negative ratio.</p>