如何加载保存的 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|随机森林|从 RandomForestClassificationModel 的 .txt 加载训练模型。 toDebugString
如何在新数据到来时重新训练 pyspark 中保存的线性回归 ML 模型