【问题标题】:Extracting the trees (predictor) from random forest classifier从随机森林分类器中提取树(预测器)
【发布时间】:2013-12-31 00:19:36
【问题描述】:

我有一个关于随机森林分类器 sklearn 的具体技术问题。

用“.fit(X,y)”方法拟合数据后, 有没有办法提取实际的树木 来自估计器对象,采用某种通用格式,因此“.predict(X)” 方法可以在python之外实现吗?

【问题讨论】:

    标签: scikit-learn


    【解决方案1】:

    是的,@ogrisel 的回答使我能够实现以下 sn-p,它可以使用(部分训练的)随机森林来预测值。如果您想在树的数量上交叉验证随机森林模型,它可以节省大量时间:

    rf_model = RandomForestRegressor()
    rf_model.fit(x, y)
    
    estimators = rf_model.estimators_
    
    def predict(w, i):
        rf_model.estimators_ = estimators[0:i]
        return rf_model.predict(x)
    

    我在这里更详细地解释了这一点:extract trees from a Random Forest

    【讨论】:

      【解决方案2】:

      是的,森林的树存储在 estimators_ 属性中 森林对象。

      你可以看看export_graphviz的实现 学习编写自定义导出器的功能:

      https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/tree/export.py

      这里是这个函数的使用文档:

      http://scikit-learn.org/stable/modules/tree.html#classification

      【讨论】:

      • 感谢奥利维尔!这真的很有帮助
      • 还没有(截至 0.14.1)。这里有一个拉取请求:github.com/scikit-learn/scikit-learn/pull/2530
      • 有没有尝试过解决方案的示例,当我在 Google Colab 中尝试时,我得到了错误,---------- -------------------------------------------------- --- ValueError Traceback(最近一次调用最后一次) in () 19 import numpy as np 20 ---> 21 from ..utils.validation import check_is_fitted 22 23 from . import _criterion ValueError: 尝试相对导入超出顶级包
      猜你喜欢
      • 2018-02-18
      • 2020-07-06
      • 2014-10-11
      • 2020-10-15
      • 2018-05-20
      • 2014-03-01
      • 2014-08-07
      • 2018-10-04
      相关资源
      最近更新 更多