我有一个关于sklearn和随机森林分类器的具体技术问题。
在使用“.fit(X,y)”方法拟合数据后,是否有一种常见的格式可以从估计器对象中提取实际的决策树,以便在python之外实现“.predict(X)”方法?
我有一个关于sklearn和随机森林分类器的具体技术问题。
在使用“.fit(X,y)”方法拟合数据后,是否有一种常见的格式可以从估计器对象中提取实际的决策树,以便在python之外实现“.predict(X)”方法?
是的,一个森林的树都存储在森林对象的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
有这样一个答案,@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)
我在这里更详细地解释了:从随机森林中提取树