如何加载保存的 KMeans 模型(在 ML Pipeline 中)?

Posted

技术标签:

【中文标题】如何加载保存的 KMeans 模型(在 ML Pipeline 中)?【英文标题】:How to load saved KMeans model (in ML Pipeline)? 【发布时间】:2017-12-27 22:12:30 【问题描述】:

我正在学习 scala,并尝试加载我已经运行/适合数据的模型,但没有成功。运行了 6 个小时,如果我想不出保存/加载输出的方法,恐怕我将不得不重新运行它。

我将 KMeans 作为管道的一部分运行。我将在训练数据集上运行的管道的输出保存为“模型”,这就是我尝试加载的内容。

运行模型后,我可以使用以下方法保存(或者至少我认为是):

model.write.overwrite().save("/analytics_shared/qoe/km_model")

我的问题是如何将其加载回来,这样我就可以使用它对新数据进行聚类/评分,而无需重新运行需要 6 小时的训练。

【问题讨论】:

【参考方案1】:

你应该使用KMeansModel.load方法。

load(path: String): KMeansModel 从输入路径读取一个ML实例,快捷方式read.load(path)

你的情况如下:

import org.apache.spark.ml.clustering.KMeansModel
val model = KMeansModel.load("/analytics_shared/qoe/km_model")

我将 KMeans 作为管道的一部分运行。我将在训练数据集上运行的管道的输出保存为“模型”,这就是我尝试加载的内容。

使用 ML Pipeline,您只需将 KMeansModel 替换为 PipelineModel,就更容易了。

import org.apache.spark.ml.PipelineModel
val model = PipelineModel.load("/analytics_shared/qoe/km_model")

【讨论】:

成功了!我一直在加载 ml.Pipeline 而不是 ml.PipelineModel 所以它一直作为错误返回。你摇滚!非常感谢! 很好的答案!他们应该将您的回复添加到他们的文档中!我浪费了很多时间在 Spark 文档上搜索这个......

以上是关于如何加载保存的 KMeans 模型(在 ML Pipeline 中)?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spark ML 中实现 Kmeans 评估器

PySpark ML:获取 KMeans 集群统计信息

Spark|ML|随机森林|从 RandomForestClassificationModel 的 .txt 加载训练模型。 toDebugString

如何在新数据到来时重新训练 pyspark 中保存的线性回归 ML 模型

[ML] Tensorflow2 保存完整模型以及使用 HDF5

如何将逻辑回归和kmeans pmml文件导入r