私はscikit-学ぶランダムフォレストを作成することを使用しています。しかし、私はそれぞれのツリーの個々の深さを探したい。文書によれば、(http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html)それにアクセスする方法はないという単純な属性のようです。Pythonのscikit-learnでツリーの深さにどのようにアクセスしますか?
これが不可能な場合は、ディシジョン・ツリー・モデルから木の深さにアクセスする方法はありますか?
ご協力いただければ幸いです。ありがとうございました。
ありがとう!!これはまさに私が探していたものです。同様に、ランダムフォレストから特定のツリーを手動で削除する方法があるかどうかを知っていますか?私は一定の深さ未満の木を削除しようとしています。 – iltp38
リストから見積もりを削除するのは簡単かもしれません。つまり、最初のツリー、 'del forest.estimators_ [0]'を削除します。のみ上記深さ10又は有する木を維持する: 'forest.estimators_ = [ならe.tree.max_depth> = 10 forest.estimators_におけるEのE]。しかし、 'RandomForestClassifier'がこのように動作するように構築されているのではなく、' forest.estimators_'を変更することで、事態が壊れる可能性があります。あなたはそれを試して、結果が合理的かどうかを見ることができます。もしそうであれば、 'forest.n_estimators = len(forest.estimators_)'を適切に更新することができます。 – jme
この回答は間違っています。これは、実際の深度ではなく、フォレスト内の各ツリーの最大_allowed_深度を示しています。たとえば、 'max_depth = 10'で訓練されたランダムなフォレストは' '' [10、10、10、...] '' –