繁体   English   中英

scikit-learn 中的随机森林解释

[英]Random Forest interpretation in scikit-learn

我正在使用scikit-learn 的随机森林回归器在数据集上拟合随机森林回归器。 是否可以在不使用 scikit-learn 甚至 ZA7F5F35426B928721711 的情况下实现 model 拟合的格式解释 output

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

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

目前还不清楚你对这部分的意思:

现在,我有结果,是否有可能以某种格式解释这个,然后我可以实现拟合而不使用sklearn甚至python?

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

至于'实现......不使用sklearn或python' ,你的意思是'移植字节码或二进制'或'清理代码一个全新的实现'?

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

您可以尝试从树集合 model 中提取规则并在硬件中实现这些规则。

您可以使用TE2Rules (Tree Ensembles to Rules)提取人类可理解的规则来解释 scikit 树集成(如 GradientBoostingClassifier)。 它提供了控制可解释性、保真度和运行时间预算的杠杆,以提取有用的解释。 由 TE2Rules 提取的规则通过考虑集成中多棵树的联合交互作用,可以保证非常接近树集成。

参考:

TE2Rules:您可以在此处找到代码: https://github.com/groshanlal/TE2Rules和文档: https://te2rules.readthedocs.io/en/latest/

披露:我是 TE2Rules 的核心开发人员之一。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM