【问题标题】:Downgrading PMML 4.4 to 4.3 version将 PMML 4.4 降级到 4.3 版本
【发布时间】:2021-12-12 06:21:36
【问题描述】:

我正在尝试使用 sklearn2pmml 将我的 sckit-learn 模型转换为 PMML 4.3。我为 4.4 版成功完成了它,但是我需要 PMML 4.3,因此我决定使用以下命令为 sklearn2pmml 安装 0.56 版:

pip install sklearn2pmml=0.56

但是现在当我尝试创建管道时,我收到以下错误:

Pipe_PMML = PMMLPipeline([('scaler', StandardScaler()),('classifier', LogisticRegression())])
 AttributeError: 'PMMLPipeline' object has no attribute 'apply_transformer'

sklearn2pmml 的最新版本是 0.76,解决了这个问题,但生成了 PMML 版本 4.4。我想知道以前的版本如何将 Python 中的 ML 模型转换为 PMML。有什么办法可以将 4.4 版本降级到旧版本?

【问题讨论】:

    标签: python java scikit-learn pipeline pmml


    【解决方案1】:

    将 sklearn 降级到 0.23.2 为我解决了这个问题。

    【讨论】:

      【解决方案2】:

      首先,使用 Sklearn2PMML 0.76 导出您的管道。其次,使用 SkLearn2PMML 0.56 导出您的管道。

      现在,对这两个文件进行“比较” - 有什么变化? XML 命名空间声明和PMML@version 属性的值应该不同,但还有什么不同吗?

      一旦您了解/理解了 4.4 和 4.3 标记在您的管道案例中的区别,请编写您自己的“降级”工具(或者手动执行,如果是一次性分配的话)。

      【讨论】:

      • 如上所述,我收到了 0.56 版本的错误。
      • 显然,0.56版本不支持PMMLPipeline.apply_transformer属性。在没有这个新功能的情况下运行 diff,看看你是否能找出 4.3 和 4.4 之间的主要区别。然后添加额外内容。
      • 知道如何在没有 apply_transformer 的情况下运行它吗?就像我应该降级 sklearn 或类似的东西。
      猜你喜欢
      • 2018-03-07
      • 1970-01-01
      • 2020-03-29
      • 2014-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多