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

如何解决SAS导入R生成的XGBoost PMML模型时的格式错误?

解决SAS PROC PSCORE导入修改版PMML文件的错误问题

错误原因

问题核心是PMML版本规范不兼容:PMML 4.2的<RegressionModel>标签里,根本没有normalizationMethod="softmax"这个配置——softmax是PMML 4.4才新增的归一化方法。你只手动修改了文件的版本号,却没同步修正这个不符合4.2规范的属性,SAS的PROC PSCORE严格按照PMML 4.2校验,自然报错。

解决步骤

  • 直接生成符合PMML 4.2的文件(推荐)
    别手动改版本号了,在R里用pmml包生成模型时直接指定输出PMML 4.2版本。找到你生成PMML的代码,加上pmml_version = "4.2"参数即可,示例:

    library(pmml)
    # 假设你的XGBoost模型对象名为xgb_model
    pmml(xgb_model, pmml_version = "4.2")
    

    这样生成的文件从根结构到细节都符合4.2规范,无需手动调整。

  • 手动修正现有PMML文件
    如果必须修改已生成的文件,按PMML 4.2的多分类模型规范调整:

    1. 把出错行的<RegressionModel functionName="classification" normalizationMethod="softmax" modelName="CollectingModel">,替换成<MultinomialRegressionModel functionName="classification" modelName="CollectingModel">——PMML 4.2中多分类回归使用这个标签,不需要softmax属性。
    2. 检查后续模型子结构,确保每个分类类别对应一个<RegressionTable>,且结构符合<MultinomialRegressionModel>的要求。
    3. 用PMML合规性验证工具(如开源的PMML Validator)检查修改后的文件,确保没有其他规范错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 15:25:11