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

时间:2017-07-21 18:48:29

标签: scala apache-spark k-means apache-spark-mllib

我正在学习scala,我正在尝试加载一个我运行/适合数据的模型。运行需要6个小时,如果我找不到保存/加载输出的方法,我恐怕不得不重新运行。

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

在运行模型之后,我能够使用以下方式保存(或者至少我以为我是)

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

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

1 个答案:

答案 0 :(得分:5)

您应该使用KMeansModel.load方法。

  

load(path:String):KMeansModel 从输入路径读取ML实例,快捷方式为Get-ADUser -Filter "Name -like '*users_name*'" | select *

在你的情况下,它如下:

read.load(path)
  

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

使用ML Pipeline,只需将import org.apache.spark.ml.clustering.KMeansModel val model = KMeansModel.load("/analytics_shared/qoe/km_model") 替换为PipelineModel即可。

KMeansModel