Apache Spark MLlib:如何从PMML导入模型



我有一个PMML文件,它编码了一个不是从MLlib导出的逻辑回归模型。

如何使用 Java 中的 MLlib 从 PMML 导入模型以进行评估/预测?

(我知道 MLlib 可以导出到 PMML,但我需要从 PMML 导入)

您可以使用 PMML4S-Spark 将 PMML 作为 SparkML 转换器导入,然后在 Scala 中进行预测/评估,例如:

import org.pmml4s.spark.ScoreModel
val model = ScoreModel.fromFile("the/pmml/model/path")
val scoreDf = model.transform(df)

如果你使用PySpark,你可以使用PyPMML-Spark,例如:

from pypmml_spark import ScoreModel
model = ScoreModel.fromFile('the/pmml/model/path')
score_df = model.transform(df)

要导入,您需要按相反的顺序执行 PMML 导出操作:

  1. 从 PMML 的RegressionModel/RegressionTable元素中提取截距系数和特征系数。
  2. 使用这些值实例化 Spark ML 的 LogisticRegressionModel 对象。

这是我第二次发布这个答案。我想知道为什么删除第一个答案(没有任何讨论/解释)?

您是否考虑过使用 PMML 加载器,例如 jpmml-spark?您可能会遇到互操作性问题,具体取决于您构建模型的位置以及您使用的 pmml 导出器。我相信sklearn2pmml是基于jpmml库的,所以如果你组合使用它们,你应该有很好的互操作性。

最新更新