我仍在使用Spark 1.6,並且培訓了一個StandardScalar,我希望在將來的數據集上保存和重用它。保存Spark StandardScaler以備將來在Scala中使用
使用the supplied examples我可以成功轉換數據,但我找不到保存訓練過的標準化器的方法。
有沒有什麼方法可以保存訓練有素的術士?
我仍在使用Spark 1.6,並且培訓了一個StandardScalar,我希望在將來的數據集上保存和重用它。保存Spark StandardScaler以備將來在Scala中使用
使用the supplied examples我可以成功轉換數據,但我找不到保存訓練過的標準化器的方法。
有沒有什麼方法可以保存訓練有素的術士?
假設您已經創建了scalerModel
:
import org.apache.spark.ml.feature.StandardScalerModel
scalerModel.write.save("path/folder/")
val scalerModel = StandardScalerModel.load("path/folder/")
StandardScalerModel class has save method。調用配合方法上StandardScaler後,返回的對象是StandardScalerModel:API 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")
這是因爲它不是一個模型。這只是標準化的數據,所以您實際上只需將數據保存即可。 – eliasah
謝謝eliasah。不確定我是否同意,標準化者應該包含一系列能夠實現標準化轉變的手段和標準偏差。所以基本上我正在尋找一種方法來應對這些新的數據集。 ml(而不是mlib)包具有保存功能。 –