随机森林 - 使用更少的估计器进行预测
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_”属性访问这些。
【讨论】:
谢谢伙计 - 我没有注意到它正在返回树木列表。以上是关于随机森林 - 使用更少的估计器进行预测的主要内容,如果未能解决你的问题,请参考以下文章