Реализация дерева решений проверяет наличие более 2 * min_samples_leaf узлов перед вызовом сплиттера, что все хорошо.
Затем в реализации Сплиттер, после сортировки по выбранному объекту, у нас есть это время, в то время как l oop, который пробегает все возможные сплиты и выбирает лучший в зависимости от примесей:
https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/tree/_splitter.pyx#L401
Мне кажется, что вполне возможно - из-за этого, пока l oop - что мы не найдем подходящих разбиений. Примером может быть:
Xf = [0,0,0,1]
min_samples_leaf = 2
В этом случае мы не найдем подходящих разбиений, и «наилучшая позиция» по умолчанию равна «конечной позиции». Я что-то здесь упускаю?