保存训练有素的Spark的Naive Bayes分类模型

时间:2014-10-26 18:30:01

标签: java-8 apache-spark

有人知道 - 是否可以保存经过训练的Sparks Naive Bayes分类模型(例如在文本文件中),并在将来加载它?如果需要的话?

谢谢。

2 个答案:

答案 0 :(得分:5)

我尝试保存并加载模型。我无法使用存储的权重重新创建模型。 (无法找到合适的构造函数)。但整个模型是可序列化的。所以你可以按如下方式存储和加载它:

存储为:

val fos = new FileOutputStream(<storage path>)   
val oos = new ObjectOutputStream(fos)
oos.writeObject(model)     
oos.close

并将其加载到:

val fos = new FileInputStream(<storage path>)
val oos = new ObjectInputStream(fos)
val newModel = oos.readObject().asInstanceOf[org.apache.spark.mllib.classification.LogisticRegressionModel]

它对我有用

在这个帖子中讨论: http://apache-spark-user-list.1001560.n3.nabble.com/How-to-save-mllib-model-to-hdfs-and-reload-it-td11953.html

答案 1 :(得分:0)

您可以使用内置功能(Spark版本2.1.0)。使用NaiveBayesModel#save来存储模型,使用NaiveBayesModel#load来读取以前存储的模型。

方法save来自Saveable,并由多种分类模型实现。在每种分类模型实现中,方法load似乎都是静态的。