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

时间:2017-01-29 11:58:09

标签: java apache-spark-mllib pmml

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

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

(我知道MLlib can export to PMML,但我需要从PMML导入)

3 个答案:

答案 0 :(得分:0)

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

  1. 从PMML的RegressionModel/RegressionTable元素中提取截距和特征系数。
  2. 使用这些值实例化Spark ML的LogisticRegressionModel对象。
  3. 这是我第二次发布这个答案。我想知道为什么第一个答案被删除(没有任何讨论/解释)?

答案 1 :(得分:0)

您是否考虑使用jpmml-spark等PMML加载程序?根据您构建模型的位置以及您使用的pmml导出器,您可能会遇到互操作性问题。我相信sklearn2pmml基于jpmml库,因此如果你将它们组合使用,你应该具有良好的互操作性。

答案 2 :(得分:0)

您可以使用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)