【问题标题】:Random Forest - Predict using less estimators随机森林 - 使用更少的估计器进行预测
【发布时间】:2013-03-29 23:49:55
【问题描述】:

我已经使用 scikit learn (python) 训练了一个随机森林(在本例中为回归器)模型,并且我想根据使用的估计器的数量在验证集上绘制错误率。换句话说,有一种方法可以仅使用 RandomForestRegressor 中的一部分估算器进行预测?

使用 predict(X) 将根据每棵树结果的平均值为您提供预测。有没有办法限制树木的使用?或者最终,获取森林中每棵树的每一个输出?

【问题讨论】:

    标签: python limit scikit-learn prediction random-forest


    【解决方案1】:

    多亏了 cohoz,我才知道该怎么做。 我写了几个 def,结果证明在测试集上绘制随机森林回归器的学习曲线时很方便。

    ## Error metric
    import numpy as np
    def rmse(train,test):
        return np.sqrt(np.mean(pow(test - train+,2)))
    
    ## Print test set error
    ## Input the RandomForestRegressor, test set feature and test set known values
    def rfErrCurve(rf_model,test_X,test_y):
        p = []
        for i,tree in enumerate(rf_model.estimators_):
                    p.insert(i,tree.predict(test_X))
                    print rmse(np.mean(p,axis=0),test_y)
    

    【讨论】:

      【解决方案2】:

      训练后,您可以通过随机森林对象的“estimators_”属性访问这些。

      【讨论】:

      • 谢谢伙计 - 我没有注意到它正在返回树木列表。
      猜你喜欢
      • 2014-08-07
      • 2021-03-21
      • 2019-05-04
      • 2017-12-12
      • 2019-07-10
      • 2021-06-23
      • 2019-02-19
      • 2016-04-09
      相关资源
      最近更新 更多