PMML // 通过修改随机森林模型文件基于树的嵌入

按照这篇论文:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7712003/ 我有一个关于如何申请的问题,例如XSLT,修改一个带有随机森林的 PMML 文件以执行以下操作:-

  • 基于树的嵌入
    • 用 id 标记每个树叶
    • 返回用于预测的叶子 ID
  • “个性化”森林中的树木:例如使用 multipleModelMethod="modelChain" 从每棵树创建单独的输出

因此,如果我有一个随机森林,其中有 2 棵树,每棵树有 5 个终端叶子,我希望得到输出

一个热编码“t.l”,其中 t=tree id 和 l=leaf id 0.0 0.1 0.2 0.3 0.4 1.0 1.1 1.2 1.3 1.4 1 0 0 0 0 0 1 0 0 0

谢谢

CHENZHONGLIANG21 回答:PMML // 通过修改随机森林模型文件基于树的嵌入

如何申请,例如XSLT,修改一个 PMML 文件

为此考虑使用适当的 PMML 库,例如 JPMML-Model。它提供了一个特殊用途的访问者 API,用于遍历和修改 PMML 数据结构。

返回用于预测的叶子id

将以下 OutputField 元素附加到所有 TreeModel/Output 元素:

<OutputField name="id(node)" feature="entityId" dataType="string" optype="categorical"/>

这使用“实体标识符”机制来提取获胜的 Node 元素的标识符。

无需手动标记节点。如果 Node@id 属性缺失,则返回基于 1 的隐式索引。

“个性化”森林中的树木

随机森林模型中的树可以通过 Segment@id 属性进行标识。

例如,下面的 OutputField 元素将返回第七棵决策树的获胜节点的 id:

<OutputField name="id(node,7)" segmentId="7" feature="entityId" dataType="string" optype="categorical"/>
本文链接:https://www.f2er.com/28306.html

大家都在问