[scikit-learn] random forests and multil-class probability

Nicolas Hug niourf at gmail.com
Tue Jul 27 05:33:02 EDT 2021

To add to Guillaume's answer: the native multiclass support for 
forests/trees is described here: 

It's not a one-vs-rest strategy and can be summed up as:

>      *
>         Store n output values in leaves, instead of 1;
>      *
>         Use splitting criteria that compute the average reduction
>         across all n outputs.


On 27/07/2021 10:22, Guillaume Lemaître wrote:
>> On 27 Jul 2021, at 11:08, Sole Galli via scikit-learn <scikit-learn at python.org> wrote:
>> Hello community,
>> Do I understand correctly that Random Forests are trained as a 1 vs rest when the target has more than 2 classes? Say the target takes values 0, 1 and 2, then the model would train 3 estimators 1 per class under the hood?.
> Each decision tree of the forest is natively supporting multi class.
>> The predict_proba output is an array with 3 columns, containing the probability of each class. If it is 1 vs rest. am I correct to assume that the sum of the probabilities for the 3 classes should not necessarily add up to 1? are they normalized? how is it done so that they do add up to 1?
> According to the above answer, the sum for each row of the array given by `predict_proba` will sum to 1.
> According to the documentation, the probabilities are computed as:
> The predicted class probabilities of an input sample are computed as the mean predicted class probabilities of the trees in the forest. The class probability of a single tree is the fraction of samples of the same class in a leaf.
>> Thank you
>> Sole
>> _______________________________________________
>> scikit-learn mailing list
>> scikit-learn at python.org
>> https://mail.python.org/mailman/listinfo/scikit-learn
> _______________________________________________
> scikit-learn mailing list
> scikit-learn at python.org
> https://mail.python.org/mailman/listinfo/scikit-learn
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.python.org/pipermail/scikit-learn/attachments/20210727/dd8f2e7c/attachment.html>

More information about the scikit-learn mailing list