0

Apache Spark'de yeni bir başlangıç ​​yapıyorum. CrossValidation kullanarak bir LogisticRegression modeli eğitmiştim.Spark'de eğitimli bir crossValidation modeli yükleniyor

val cv = yeni CrossValidator() .setEstimator (boru) .setEvaluator (yeni BinaryClassificationEvaluator) .setEstimatorParamMaps (paramGrid) .setNumFolds (5) val cvModel = cv.fit (veriler: Örneğin) Modelimi herhangi bir hata olmadan test edip test edebildim.

Sonra kullanarak model ve boru hattı kurtardı:

cvModel.save ("/ yol-to-my-model/kıvılcım-reg-transfer-modeli log") pipeline.save ("/ izlenen yola benim boru hattım/kıvılcım-log-reg-transfer-boru hattı ")

Bu aşamaya kadar, işlemler mükemmel çalıştı. Sonra daha sonra, ben yeni veri noktaları üzerinde tahmin için geri Modelimin yüklemeye çalıştı, sonra aşağıdaki hata oluştu:

val sameModel = PipelineModel.load ("/ yol-my-model/kıvılcım-log -reg transfer modeli ")

java.lang.IllegalArgumentException: gereksinimi başarısız oldu: yükleme hatası meta: Beklenen sınıf adı org.apache.spark.ml.PipelineModel ama sınıf adı org.apache.spark.ml bulundu .tuning.CrossValidatorModel

Neyi yanlış yaptığım hakkında bir fikriniz var mı? Teşekkürler.

cevap

2

CrossValidator'ı PipelineModel nesnesiyle yüklemeye çalışıyorsunuz. Bir Çapraz Doğrulayıcı Modeli yüklemek için bu

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

olmalıdır Çapraz Doğrulayıcı yüklemek için ...

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

doğru yükleyiciler kullanmalıdır kullanmak (Not: Bir Çapraz Validator bir Çapraz Doğrulayıcı modeli olur bir modeli yüklemeye çalışıyorsanız beri

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

) CrossValidator üzerinde() uyum çağırdığınızda, CrossValidatorModel.load doğru olacaktı.