【问题标题】:Save Spark StandardScaler for later use in Scala保存 Spark StandardScaler 以供以后在 Scala 中使用
【发布时间】:2016-08-12 09:20:57
【问题描述】:

我仍在使用 Spark 1.6 并训练了一个 StandardScalar,我希望将其保存并在未来的数据集上重复使用。

使用the supplied examples 我可以成功转换数据,但我找不到保存训练有素的归一化器的方法。

有什么方法可以保存经过训练的归一化器吗?

【问题讨论】:

  • 那是因为它不是模型。它只是标准化的数据,因此您实际上只需按原样保存数据即可。
  • 谢谢以利亚。我不确定我是否同意,规范化器应该包含一系列能够实现标准化转换的方法和标准偏差。所以基本上我正在寻找一种方法来解决这些问题并应用于新的数据集。 ml(而不是 mlib)包具有保存功能。

标签: scala apache-spark


【解决方案1】:

假设你已经创建了scalerModel:

import org.apache.spark.ml.feature.StandardScalerModel

scalerModel.write.save("path/folder/")

val scalerModel = StandardScalerModel.load("path/folder/")

【讨论】:

    【解决方案2】:

    StandardScalerModel 类有一个 save 方法。在StandardScaler上调用fit方法后,返回的对象为StandardScalerModelAPI Docs

    例如类似于提供的示例:

    import org.apache.spark.ml.feature.StandardScaler
    import org.apache.spark.ml.PipelineModel
    
    val dataFrame = spark.read.format("libsvm").load("data/mllib/sample_libsvm_data.txt")
    
    val scaler = new StandardScaler()
      .setInputCol("features")
      .setOutputCol("scaledFeatures")
      .setWithStd(true)
      .setWithMean(false)
    
    // Compute summary statistics by fitting the StandardScaler.
    val scalerModel = scaler.fit(dataFrame)
    scalerModel.write.overwrite().save("/path/to/the/file")
    
    val sameModel = PipelineModel.load("/path/to/the/file")
    

    【讨论】:

      猜你喜欢
      • 2011-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多