【问题标题】:How should trained ML models be incorporated into a package that USES those trained models应如何将经过训练的 ML 模型合并到使用这些经过训练的模型的包中
【发布时间】:2021-06-03 17:38:08
【问题描述】:

我一直致力于一个 ML 项目,该工作(在 R 项目中完成)产生了一些 ML 模型(使用插入符号构建)以及使用这些模型进行额外分析的代码。

在下一阶段,我将通过创建一个 R 包来“部署”这些模型,我的合作者可以使用它来分析新数据,其中分析包括使用经过训练的 ML 模型。该软件包包含生成报告的功能,其中嵌入在该报告中的是针对新数据集应用经过训练的 ML 模型。

我正在尝试确定将那些经过训练的模型包含在包中的“正确”方式。 (注意,目前每个模型都保存在自己的 .rds 文件中)。

我希望能够在包函数中使用这些模型。

我还想考虑以后将模型“更新”到新版本的可能性。

那么……我应该:

  1. 在 inst/exdata 中包含 .rda 文件
  2. 作为 sysdata.rda 的一部分包含
  3. 将它们放在一个外部数据包中(这似乎是合理的,除了教程中的几乎所有示例都期望数据包 包括 data.frame-ish 对象。)

关于第三个选项...我注意到这些模型可能暗示有一些额外的“命名空间”问题在起作用,因为这些模型需要一大堆与插入符号相关的东西才能使用。 NAMESPACE 修改是否需要在“数据”包或我正在构建的将“使用”模型的包中?

【问题讨论】:

    标签: r package


    【解决方案1】:

    我的第一个意图是选择 1。没有必要选择 PMML 等其他格式,因为您只想在 R 中运行它。所以我认为 Rda 本身是最好的。只要您的模型不是很大,与合作者共享应该没问题(但可能不适用于 CRAN 包)。我明白了,这 3. 听起来很方便,但为什么要分开模型和功能呢?然后,新训练的模型将附带一个新的包版本,因为您无论如何都需要使用数据包。我没有看到这种方式有太多收获,但我对数据包没有太多经验。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-28
      • 1970-01-01
      • 2023-03-19
      • 2018-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多