I am trying to create a decision-tree out of a number of attributes, where there are only two final classes and the classes are highly unbalanced (Class 1: 95.5%; Class 2: 4.5%).
The idea is to profile the members of Class 2. For example, Class 2 members have attribute 1 >= 8, attribute 2 < 6, attribute 3 between 1/1/2013 and 12/31/2013.
A profile would be successful if:
- it is easily understandable by the business
- it shows an improvement in predicting Class 2 over the trivial classifier; i.e.: those classified using the profile should have a > 4.5% probability of actually being in Class 2.
Using WEKA's J48 algorithm along with its CostSensitiveClassifier on one attribute alone (treading carefully here) gives me the following tree:
Accuracy is 36.615%, which I can live with. 75% of Class 2 records were correctly classified, which is great. Most importantly, those classified as Class 2 had a 5.4% chance of actually being in Class 2, which meets goal (2) above.
Here's the problem: that tree is awfully complicated for just one attribute.
I am ideally looking for a single rule of the type: attr >= x: Y; attr < x: N.
I have tried many different weights in the cost matrix.
My questions are:
- What techniques (different algorithms; different options in J48) can I try to obtain a simpler tree?
- Perhaps the data just doesn't admit a simpler tree. Can people speak of their experiences interpreting complex trees for non-technical audiences?
I am really new to data mining, so if I've missed relevant information or asked the wrong question, please do let me know and I will correct.
Thanks in advance!