I'm been experimenting with tree based classifiers for multi-label document classification. All the trees I've created, however, tend to predict only one or two labels per document. Whereas the training set has about 4 labels per document on average. Furthermore, in my particular application, false positives are much less costly to the business than false negatives. So, if anything, I'd like the tree to be making about 6 or 7 predictions per document.
I'm not entirely sure which parameters control this. I've tried experimenting with tree size but without effect. I'd ideally like to just set a threshold for when a prediction is included, and lower this.
I'm using sklearn (and playing with skmultilearn). Here's an example of a forest configuration:
from sklearn.ensemble import RandomForestClassifier
clf = RandomForestClassifier(
n_estimators=20,
criterion='gini',
max_features=0.5,
max_depth=68,
min_samples_split=4,
min_samples_leaf = 2,
n_jobs=3
)