0

私はApache Sparkの新しい初心者です。 crossValidationを使ってLogisticRegressionモデルを訓練しました。例えば:Sparkでの訓練されたcrossValidationモデルの読み込み

ヴァルのCV =新しいCrossValidator() .setEstimator(パイプライン) .setEvaluator(新しいBinaryClassificationEvaluator) .setEstimatorParamMaps(paramGrid) .setNumFolds(5) ヴァルcvModel = cv.fit(データ)

モデルを訓練しても何のエラーもなくテストできました。そして、私が使用してモデルとパイプラインを保存:

cvModel.save( "/パスツー私のモデル/火花ログREG-転送モデル") pipeline.save( "/ path-パイプライン/スパークログ転送転送パイプライン」)

このステージまで、操作は完璧に機能しました。その後、後に、私は新しいデータポイント上の予測のために戻って私のモデルをロードしようとした場合、次のエラーが発生しました:

ヴァルsameModel = PipelineModel.load( "/パスツー私のモデル/火花ログ-reg-転送モデル」)

java.lang.IllegalArgumentExceptionが:読み込みエラーのメタデータ:予想されるクラス名をorg.apache.spark.ml.PipelineModelが、クラス名org.apache.spark.mlを発見した要件に失敗しました.tuning.CrossValidatorModel

何が間違っているのでしょうか?ありがとう。

答えて

2

PipelineModelオブジェクトでCrossValidatorを読み込もうとしています。 あなたはそれが を使用するクロスバリデータモデルをロードするために

val crossValidator = CrossValidator.load("/path-to-my-model/spark-log-reg-transfer-model") 

あるべきクロスバリデータをロードするには、正しいローダー...

val crossValidator = CrossValidator.load("/path-to-my-model/spark-log-reg-transfer-model") 

val sameModel = PipelineModel.load("/path-to-my-pipeline/spark-log-reg-transfer-pipeline") 
0

を使用する必要があります(注意:クロスValidatorはクロスバリデータモデルとなりあなたはモデルをロードしようとしているので、あなたが

val crossValidatorModel = CrossValidatorModel.load("/path-to-my-model/spark-log-reg-transfer-model") 

)CrossValidatorに()を呼び出すときにフィット、CrossValidatorModel.loadは正しいものであろう。

関連する問題