我有一个关于sklearn,随机森林分类器的具体技术问题。
使用“.fit(X,y)”方法拟合数据后, 有没有办法提取实际的树木 从估计器对象,以一些常见的格式,所以“.predict(X)” 方法可以在python外部实现吗?
答案 0 :(得分:15)
是的,森林中的树存储在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
答案 1 :(得分:0)
是的,@ogrisel 的回答使我能够实现以下代码段,它可以使用(部分训练的)随机森林来预测值。如果你想在树的数量上交叉验证随机森林模型,它可以节省大量时间:
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