I am using a decision tree classifier to split the feature space according to two classes ( A and B). Events of class A are important and I want to classify all of them correct, i.e. no false negatives. The dataset is highly unbalanced, i.e. class A occurs only one in a thousand.
At the moment I am using a decision tree classifier from sklearn with class weights for class A: 10000 and B:1.
The tree growth now and cuts of feature space areas where the uninteresting events B are the only one that occurs. And generalizes for the validation set and the final test set with no false negatives.
However, there is one thing. There are decision nodes with thresholds that are upper bounds, i.e. feature_X < 20. I know that feature_X is finite and can only take integer values from 0 to 100. But I only have significant data in the area 0 to 40. Above 40 there is no data point or only a few of class B.
Is there a way to penalize the decision tree for assigning areas of the feature space to class B? I would like to classify areas that have only a few data points to class A to be conservative with the classification.
Is a decision tree even the best technique? I use it cause I want to learn something from the feature space assigned to A.