【问题标题】:How do I deploy Complex Machine Learning Predictors?如何部署复杂的机器学习预测器?
【发布时间】:2016-09-14 17:07:11
【问题描述】:

所以在我花了几天时间清理我的数据、预处理和试验几个不同的模型(例如在 R Studio 中)之后,我该如何实际部署解决方案。 如果模型是一个简单的模型,例如决策树、逻辑回归,这很简单,因为模型很明显,并且 R 预测器模型部署到具有 http 端点等的商业 R 服务器中。

我的问题是,复杂的预处理(例如 PCA 变换、RBF 内核或 100 棵树的随机森林)怎么样。就像在验证阶段一样,我假设我必须部署 R 脚本来进行预处理,而 PCA或将 RBF 预处理脚本等应用到我的部署服务器?

这是否意味着对于 RBF,我必须将所有原始训练数据集与我的 SVM 预测器一起托管? RBF 变换是训练集或至少支持向量的函数。

对于随机森林,我假设我必须上传所有大约 500 棵树,作为一个非常大的模型的一部分。

【问题讨论】:

    标签: deployment machine-learning kernel


    【解决方案1】:

    首先,使用pmmlpmmlTransformations 包的组合或r2pmml 包将您的R 解决方案(数据预处理步骤和模型)导出到PMML data format。其次,使用Openscoring REST Web 服务、JPMML-Spark 或任何其他适合您部署需求的 PMML 集成来部署 PMML 解决方案。

    PMML 表示 PCA、带 RBF 内核的 SVM、树集成等没有问题。

    【讨论】:

    • 谢谢,有用。我可以看到 PMML 可以表示模型和预处理功能。这将扩展到支持 100 或随机森林中的树。我想我对 RBF 有点天真(需要研究更多),但我认为 RBK 内核转换是并且仍然是训练集数据的函数。因此,部署 RBF 内核转换意味着将我的训练集分发到我的预测器部署中。
    • 使用 RBF 内核训练 SVM:rbfSvm = e1071::svm(.., kernel = "radial", ..);然后导出到 PMML:pmml(rbfSvm)。或者,您能否展示一些您的 R 代码,我们可以分析什么是 PMML 化它的最简单方法。
    【解决方案2】:

    针对这个问题的纯 R vanilla 解决方案。大多数集成方法都提供了转储/保存学习模型的实用程序。学习是非常耗时和迭代的过程,应该完成一次。学习后保存/转储您的 R 对象。在部署中只有评分代码。评分代码将完成所有数据转换,然后进行评分。

    对于正常的预处理,您可以重用在训练中使用的 R 代码。对于像 PCA 这样的复杂处理,再次保存最终模型,并在保存的 PCA R 对象上评分/运行数据。最后在学习模型上发布预处理分数/运行数据并获得最终结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-04
      • 1970-01-01
      • 1970-01-01
      • 2018-10-17
      • 2018-08-23
      • 1970-01-01
      相关资源
      最近更新 更多