【发布时间】:2013-12-31 00:19:36
【问题描述】:
我有一个关于随机森林分类器 sklearn 的具体技术问题。
用“.fit(X,y)”方法拟合数据后, 有没有办法提取实际的树木 来自估计器对象,采用某种通用格式,因此“.predict(X)” 方法可以在python之外实现吗?
【问题讨论】:
标签: scikit-learn
我有一个关于随机森林分类器 sklearn 的具体技术问题。
用“.fit(X,y)”方法拟合数据后, 有没有办法提取实际的树木 来自估计器对象,采用某种通用格式,因此“.predict(X)” 方法可以在python之外实现吗?
【问题讨论】:
标签: scikit-learn
是的,@ogrisel 的回答使我能够实现以下 sn-p,它可以使用(部分训练的)随机森林来预测值。如果您想在树的数量上交叉验证随机森林模型,它可以节省大量时间:
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
【讨论】:
是的,森林的树存储在 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
【讨论】: