Как min_samples_leaf гарантируется в реализации дерева решений scikit-learn? - PullRequest
0 голосов
/ 17 января 2020

Реализация дерева решений проверяет наличие более 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

В этом случае мы не найдем подходящих разбиений, и «наилучшая позиция» по умолчанию равна «конечной позиции». Я что-то здесь упускаю?

1 Ответ

0 голосов
/ 20 января 2020

Нашел свой ответ ha-

Если мы не найдем подходящих разбивок, «лучшая позиция» по умолчанию равна «конечной позиции», но «конечная позиция» не является допустимой позицией, и вызывающий сплиттер проверит это и отметит себя как лист, если это произойдет.

...