scikit-learn 中的随机森林解释

Posted

技术标签:

【中文标题】scikit-learn 中的随机森林解释【英文标题】:Random Forest interpretation in scikit-learn 【发布时间】:2013-04-26 02:44:26 【问题描述】:

我正在使用scikit-learn's Random Forest Regressor 在数据集上拟合随机森林回归量。是否可以以一种格式解释输出,然后我可以在不使用 scikit-learn 甚至 Python 的情况下实现模型拟合?

该解决方案需要在微控制器甚至FPGA 中实现。我正在用 Python 进行分析和学习,但想在 uC 或 FPGA 上实现。

【问题讨论】:

【参考方案1】:

您可以查看 graphviz,它使用“点语言”来存储模型(如果您想构建一些自定义解释器,这对人类来说是非常可读的,应该不难)。 scikit-learn 中有一个export_graphviz 函数。您可以通过 boost 库 read_graphviz 方法或其他一些可用的自定义解释器在 C++ 中加载和处理模型。

【讨论】:

它看起来像export_graphvizsklearn.tree 中,并将决策树作为参数。如何将其应用于诸如sklearn.ensemble.RandomForestRegressor 之类的集成方法? @Los 随机森林只是一组树,因此可以在 graphviz 中导出。 酷。我刚刚注意到用于获取单个回归量的 estimators_ 字段:scikit-learn.org/stable/modules/generated/…。谢谢!【参考方案2】:

不清楚这部分是什么意思:

现在,我有了结果,是否可以以某种格式解释它,然后我可以在不使用 sklearn 甚至 python 的情况下实现拟合?

对给定数据集实施拟合过程?树形拓扑?参数选择?

至于'实现...不使用 sklearn 或 python',您的意思是“移植字节码或二进制文件”还是“干净编码一个全新的实现”?

假设你的意思是后者,我建议GPU 而不是 FPGA 或 uC。

【讨论】:

以上是关于scikit-learn 中的随机森林解释的主要内容,如果未能解决你的问题,请参考以下文章

随机森林中的引导数(scikit-learn)

如何在 scikit-learn 中控制随机森林中的特征子集?

使用 scikit-learn 并行生成随机森林

scikit-learn随机森林调参小结

Scikit-learn 随机森林 out of bag 样本

在 scikit-learn 中平均多个随机森林模型