【发布时间】:2017-06-14 17:00:16
【问题描述】:
我有一个 PMML 文件,该文件对未从 MLlib 导出的逻辑回归模型进行编码。
如何使用 Java 中的 MLlib 从 PMML 导入模型以进行评估/预测?
(我知道MLlib can export to PMML,但我需要从PMML导入)
【问题讨论】:
标签: java apache-spark-mllib pmml
我有一个 PMML 文件,该文件对未从 MLlib 导出的逻辑回归模型进行编码。
如何使用 Java 中的 MLlib 从 PMML 导入模型以进行评估/预测?
(我知道MLlib can export to PMML,但我需要从PMML导入)
【问题讨论】:
标签: java apache-spark-mllib 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导出操作:
RegressionModel/RegressionTable 元素中提取截距和特征系数。LogisticRegressionModel 对象。这是我第二次发布这个答案。我想知道为什么第一个答案被删除(没有任何讨论/解释)?
【讨论】:
PMMLExportable 实现,获取代码块并反转其行。无需引入 3rd 方依赖项或发明新的应用程序逻辑,一切就绪。
您是否考虑过使用 PMML 加载程序,例如 jpmml-spark?根据您构建模型的位置和使用的 pmml 导出器,您可能会遇到互操作性问题。我相信 sklearn2pmml 是基于 jpmml 库的,所以如果你结合使用它们应该有很好的互操作性。
【讨论】: