随机森林 - 使用更少的估计器进行预测

Posted

技术标签:

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

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

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

【问题讨论】:

【参考方案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_”属性访问这些。

【讨论】:

谢谢伙计 - 我没有注意到它正在返回树木列表。

以上是关于随机森林 - 使用更少的估计器进行预测的主要内容,如果未能解决你的问题,请参考以下文章

偏移随机森林分类器 scikit 学习

随机森林模型(RF)

MATLAB-随机森林实现数据回归分析预测

基于随机森林算法完成鸢尾花卉品种预测任务 代码+数据

张量流随机森林回归

如何使用 pandas 创建交叉表来显示随机森林预测器的预测结果?