Use float as percentage in min_samples_split and min_samples_leaf of DecisionTree

A float number can be used as percentage in these two parameters in case the sample size varies greatly.

I found a new parameter `min_weight_fraction_leaf` is added recently. It works in a similar way. But it is still convenient to use float in `min_samples_split` for those sample without weighting.
> Unfortunately, this will create a regression
Isn't it a classifier?

> Should we raise an error when `min_samples_split < 2`?
I think we should, a `min_samples_split < 2` is meaningless because we make `min_samples_split = max(min_samples_split, 2 * self.min_samples_leaf)` when inferring.