【问题标题】:can a trained classification model be stored in Apache Spark?可以将经过训练的分类模型存储在 Apache Spark 中吗?
【发布时间】:2015-09-28 12:01:15
【问题描述】:

我将使用 Apache Spark(或 Hahoop 中的 Mahout)在一堆训练文档上训练一个朴素贝叶斯分类器。当我收到要分类的新文档时,我想使用这个模型。我想知道是否有可能在训练时存储模型,然后稍后将其加载到另一个 Spark 作业中?

【问题讨论】:

    标签: apache-spark mahout apache-spark-mllib


    【解决方案1】:

    在 Mahout 的 MapReduce 支持的 NaiveBayes 中,如果通过 CLI 进行训练,模型将保存到 -o 参数指定的目录中:

    mahout trainnb
      -i ${PATH_TO_TFIDF_VECTORS} 
      -o ${"path/to/model}/model 
      -li ${PATH_TO_MODEL}/labelindex 
      -ow 
      -c
    

    见:http://mahout.apache.org/users/classification/bayesian.html

    并通过以下方式检索:

    NaiveBayesModel model = NaiveBayesModel.materialize(("/path/to/model"), getConf());
    

    或者,使用 Mahout-Samsara 的 Spark 支持的朴素贝叶斯,可以从命令行训练模型,并将类似地输出到 -o 参数指定的路径:

    mahout spark-trainnb
      -i ${PATH_TO_TFIDF_VECTORS} 
      -o ${/path/to/model}
      -ow 
      -c
    

    或者可以通过以下方式在应用程序中训练模型:

    val model = SparkNaiveBayes.train(aggregatedObservations, labelIndex, false)
    

    通过以下方式输出到 (HD)FS:

    model.dfsWrite("/path/to/model")
    

    并通过以下方式检索:

    val retrievedModel =  NBModel.dfsRead("/path/to/model")
    

    见:http://mahout.apache.org/users/environment/classify-a-doc-from-the-shell.html

    【讨论】:

      【解决方案2】:

      是的,see the Spark mllib naives bayes documentation

      model.save(sc, "myModelPath")
      val sameModel = NaiveBayesModel.load(sc, "myModelPath")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多