Tôi đang dùng scikit-learn để tạo một Random Forest. Tuy nhiên, tôi muốn tìm độ sâu của từng cây. Nó có vẻ như một thuộc tính đơn giản để có nhưng theo tài liệu, (http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html) không có cách nào để truy cập nó.Làm cách nào để bạn truy cập vào chiều sâu của cây bằng cách tìm hiểu về Python?
Nếu điều này là không thể, có cách nào để truy cập chiều sâu cây từ mô hình Tree Quyết định không?
Mọi trợ giúp sẽ được đánh giá cao. Cảm ơn bạn.
Cảm ơn bạn !! Đây chính xác là những gì tôi đang tìm kiếm. Tương tự, bạn có biết liệu có cách nào để xóa một cây cụ thể khỏi rừng ngẫu nhiên không? Tôi đang cố xóa cây với độ sâu ít nhất định. – iltp38
Nó * có thể * đơn giản như xóa các bộ ước tính khỏi danh sách. Nghĩa là, để xóa cây đầu tiên, 'del forest.estimators_ [0]'. Hoặc chỉ giữ cây có độ sâu 10 hoặc cao hơn: 'forest.estimators_ = [e for e trong forest.estimators_ if e.tree.max_depth> = 10]'. Nhưng nó không giống như 'RandomForestClassifier' được xây dựng để làm việc theo cách này, và bằng cách sửa đổi' forest.estimators_' bạn có thể phá vỡ mọi thứ. Bạn có thể thử nó và xem kết quả có vẻ hợp lý hay không. Nếu bạn làm như vậy, bạn có thể muốn cập nhật 'forest.n_estimators = len (forest.estimators_)' để đo lường tốt. – jme
Câu trả lời này không chính xác, điều này cho bạn biết độ sâu _allowed_ tối đa của mỗi cây trong rừng, chứ không phải độ sâu thực tế. Vì vậy, ví dụ một khu rừng ngẫu nhiên được huấn luyện với 'max_depth = 10' sẽ trả về:' '' [10, 10, 10, ...] '' ' –