2017-07-21 18 views
1

私はスカラを学んでいて、成功していないと、私が実行した/データにフィットするモデルをロードしようとしています。実行には6時間かかりましたが、出力を保存/ロードする方法がわからない場合は、これを再実行する必要があります。保存されたKMeansモデルを読み込むには(MLパイプラインで)?

パイプラインの一部としてKMeansを実行しました。トレーニングデータセットで実行したパイプラインの出力を「モデル」として保存しました。これがロードしようとしたものでした。それは使用して

は、モデルを実行した後、私は保存することができた(あるいは、少なくとも私は思った):

model.write.overwrite().save("/analytics_shared/qoe/km_model") 

私の質問は、私は戻ってそれをロードしないので、私は、クラスタするためにそれを使用することができる方法です/ 6時間かかるトレーニングを再実行することなく新しいデータにスコアを付けることができます。

答えて

3

KMeansModel.loadメソッドを使用する必要があります。

負荷(パス:文字列):KMeansModel入力経路、read.load(path)のショートカットからMLインスタンスを読み込み。あなたのケースでは

次のように、それはなるだろう:

import org.apache.spark.ml.clustering.KMeansModel 
val model = KMeansModel.load("/analytics_shared/qoe/km_model") 

私は、パイプラインの一部として、関数kmeansを実行しました。トレーニングデータセットで実行したパイプラインの出力を「モデル」として保存しました。これがロードしようとしたものでした。 MLパイプラインで

あなたは、単にPipelineModelKMeansModelを交換するとして、それはさらに簡単です。

import org.apache.spark.ml.PipelineModel 
val model = PipelineModel.load("/analytics_shared/qoe/km_model") 
+1

これは機能しました。私はml.PipelineModelではなくml.Pipelineをロードしていたので、エラーとして戻ってきました。あなたはロック!どうもありがとうございます! – jswtraveler

関連する問題