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_graphviz
在sklearn.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 中控制随机森林中的特征子集?