我已经使用scikit learn (python)训练了一个随机森林(在本例中是回归器)模型,并且我想根据所使用的估计器的数量绘制验证集上的错误率。换句话说,是否有一种方法可以仅使用随机森林回归器中的部分估计器进行预测?
使用predict(X)将根据每个树结果的平均值给出预测。有办法限制树木的使用吗?或者最终得到森林中每棵树的每一个输出?
多亏了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)
训练后,您可以通过随机森林对象的estimators_
属性访问这些。