【问题标题】:Spark : Can i tuning a pipeline with 2 estimator simultaneouslySpark:我可以同时调整带有 2 个估计器的管道吗
【发布时间】:2017-10-01 22:29:31
【问题描述】:

我有这样的流程(Spark 中的管道):

  1. 我有一个 DataFrame A,它有字符串

  2. 创建 Word2Vec 估计器

  3. 创建一个 Word2VecModel 转换器

  4. 将 Word2VecModel 应用于 DataFrame A,以创建具有向量的 DataFrame B

  5. 创建一个 KMean 估计器

  6. 创建一个 KMeanModel 转换器

  7. 将 KMeanModel 应用于 DataFrame B,用于聚类

在这个流程中,我们有 2 个估算器和 2 个转换器模型,因此我们需要 2 个流水线,并分别对每个流水线进行调整。

但是我们可以在一个管道中进行调优吗?我不知道该怎么做,那么哪种方法是调整我的流程的最佳方法?

编辑: 在 Spark-ml lib 中,管道组件的输入只是数据帧,输出是数据帧或转换器。但是,如果我们在 1 个管道上链接 2 个估计器,则估计器 1 的输出将是一个转换器,因此您不能继续在同一管道上链接下一个估计器 2(仅接受数据帧作为输入)。那么我们有什么技巧可以调整 2 estimator 吗?

【问题讨论】:

    标签: apache-spark machine-learning apache-spark-mllib text-mining


    【解决方案1】:

    这里没有冲突。 Spark ML Pipeline 可以包含任意数量的Estimators。您所要做的就是确保输出列名是唯一的。

    val kmeans: KMeans = ???
    kmeans.setPredictionCol("k_means_prediction")
    
    val word2vec: Word2Vec = ???
    word2vec.setOutputCol("word2vec_output")
    
    new Pipeline().setStages(Array(kmeans, word2vec))
    

    但是,不同的模型通常需要不同的特征工程步骤,这在实践中并不是很有用。

    【讨论】:

      猜你喜欢
      • 2015-08-03
      • 1970-01-01
      • 2021-11-10
      • 2020-12-26
      • 1970-01-01
      • 2017-03-25
      • 2020-04-07
      • 2021-01-12
      • 1970-01-01
      相关资源
      最近更新 更多