Я использую scikit-learn для создания случайного леса. Однако я хочу найти индивидуальные глубины каждого дерева. Это похоже на простой атрибут, но в соответствии с документацией (http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html) доступ к нему отсутствует.Как вы получаете доступ к глубине дерева в Python's scikit-learn?
Если это невозможно, есть ли способ доступа к глубине дерева из дерева дерева решений?
Любая помощь будет оценена по достоинству. Спасибо.
спасибо !! Это именно то, что я искал. Аналогичным образом, знаете ли вы, есть ли способ вручную удалить определенное дерево из случайного леса? Я пытаюсь удалить деревья с меньшей глубиной. – iltp38
Это может быть так же просто, как удаление оценок из списка. То есть, чтобы удалить первое дерево, 'del forest.estimators_ [0]'. Или сохранить деревья с глубиной 10 или выше: 'forest.estimators_ = [e для e в forest.estimators_, если e.tree.max_depth> = 10]'. Но это не похоже на то, что «RandomForestClassifier» был создан таким образом, и, изменив «forest.estimators_», вы можете сломать вещи. Вы можете попробовать и посмотреть, если результаты кажутся разумными. Если вы это сделаете, вы можете обновить 'forest.n_estimators = len (forest.estimators_)' для хорошей оценки. – jme
Этот ответ неверен, это говорит о том, что максимальная _allowed_ глубина каждого дерева в лесу, а не фактическая глубина. Например, случайный лес, обученный с помощью 'max_depth = 10', вернется:' '' [10, 10, 10, ...] '' ' –