You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PMML文件中添加非模型相关附加信息?

PMML自定义附加信息嵌入方案

PMML原生支持在单文件内嵌入模型流水线之外的自定义关联信息,无需拆分独立配套文件,常规PMML解析引擎不会因为这类自定义内容出现模型加载错误。

核心实现依据

PMML规范全局预留了通用扩展能力,你提到的列平均值、特征P值、特征与目标变量相关系数这类内容都可以通过规范支持的方式写入:

  • 通用扩展标签<Extension>是PMML标准定义的合法元素,可以嵌入到PMML文档几乎所有层级的节点下,解析引擎遇到不识别的扩展内容会默认跳过,完全不影响原有模型的正常加载、推理逻辑。
  • PMML自带的<ModelStats>节点原生用于存放模型相关的统计指标,结构化程度更高,适合直接存放P值、相关系数这类统计类信息,读取解析比完全自定义内容更方便。

各类信息的存放建议

  • 数据集各列平均值:可以直接绑定到对应字段的<DataField>节点下的<Extension>中,和字段定义强关联,读取时按字段名匹配取值即可;全局统计类指标也可以统一放在根<PMML>节点下的扩展区块集中管理。
  • 特征P值、特征与目标变量相关系数:可以绑定到对应特征的<MiningField>节点下的扩展区,也可以写入<ModelStats>节点作为自定义统计项存储。

示例代码片段

<PMML version="4.4" xmlns="http://www.dmg.org/PMML-4_4">
  <Header copyright="custom_model"/>
  <DataDictionary numberOfFields="3">
    <DataField name="feature1" optype="continuous" dataType="double">
      <!-- 存储字段平均值 -->
      <Extension name="column_average" value="26.72"/>
    </DataField>
    <DataField name="feature2" optype="continuous" dataType="double"/>
    <DataField name="target" optype="continuous" dataType="double"/>
  </DataDictionary>
  <RegressionModel modelName="demo_reg" functionName="regression">
    <MiningSchema>
      <MiningField name="feature1">
        <!-- 存储特征P值、与目标变量的相关系数 -->
        <Extension name="p_value" value="0.013"/>
        <Extension name="pearson_corr_with_target" value="0.69"/>
      </MiningField>
      <MiningField name="feature2"/>
      <MiningField name="target" usageType="predicted"/>
    </MiningSchema>
    <!-- 原有模型流水线的其他节点正常编写即可 -->
  </RegressionModel>
</PMML>

写入扩展内容时建议统一name属性的命名规则,避免重名冲突。如果需要存储更复杂的结构化内容,也可以在<Extension>标签下嵌套自定义XML子节点,不受PMML基础语法限制。

内容的提问来源于stack exchange,提问作者Aayush Shah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 12:18:20