从随机森林分类器中提取树(预测器)

时间:2013-12-12 14:22:09

标签: scikit-learn

我有一个关于sklearn,随机森林分类器的具体技术问题。

使用“.fit(X,y)”方法拟合数据后, 有没有办法提取实际的树木 从估计器对象,以一些常见的格式,所以“.predict(X)” 方法可以在python外部实现吗?

2 个答案:

答案 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