【问题标题】:Saving a mllib decision tree model to hdfs将 mllib 决策树模型保存到 hdfs
【发布时间】:2023-03-12 13:52:02
【问题描述】:

我有一个基于一组数据训练的 Mllib 决策树模型。我希望能够在必要时保存和加载经过训练的模型。例如假设我在百万行数据集上进行训练并将其保存以备将来使用。我发现使用 FileInputStream,FileOutputStream,ObjectInputStream,ObjectOutputStream 我可以保存和加载线性模型,因为它们将这些构造函数公开如下。

您可以将模型保存到磁盘,如下所示:

import java.io.FileOutputStream 
import java.io.ObjectOutputStream 
val fos = new FileOutputStream("e:/model.obj") 
val oos = new ObjectOutputStream(fos)   
oos.writeObject(model)   
oos.close

并加载它:

import java.io.FileInputStream 
import java.io.ObjectInputStream 
val fos = new FileInputStream("e:/model.obj") 
val oos = new ObjectInputStream(fos) 
val newModel = oos.readObject().asInstanceOf[org.apache.spark.mllib.classification.LogisticRegressionModel]

上面的语句在语法上也适用于决策树,但我不能调用 newModel.predict(),因为决策树构造函数显然没有公开。

现在有没有人可以保存和加载决策树、随机森林、SVM 等模型?

【问题讨论】:

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


    【解决方案1】:

    您可以在模型上使用.save 方法将其存储为镶木地板文件,并通过伴随对象上的.load 加载它。将其保存为 parquet 文件,这应该比使用普通的 java 序列化更快,后者通常很慢。

    https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.mllib.util.Saveable

    【讨论】:

      猜你喜欢
      • 2016-11-15
      • 2014-11-26
      • 2015-12-11
      • 2019-04-03
      • 1970-01-01
      • 2016-10-07
      • 2013-05-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多