Apache spark 在Spark中加载经过训练的交叉验证模型
我是Apache Spark的新手。我使用交叉验证训练了一个逻辑回归模型。例如: val cv=新的交叉验证程序() .setEstimator(管道) .setEvaluator(新的BinaryClassificationEvaluator) .SetParamMaps(paramGrid) .setNumFolds(5) val cvModel=cv.拟合(数据) 我能够毫无差错地训练和测试我的模型。然后,我使用以下方法保存了模型和管道: cvModel.save(“/path to my model/spark log reg transfer model”) 保存(“/path to my pipeline/spark log reg transfer pipeline”) 在这一阶段之前,操作都很完美。随后,我尝试重新加载模型,以便对新数据点进行预测,然后出现以下错误: val sameModel=PipelineModel.load(“/path to my model/spark log reg transfer model”) java.lang.IllegalArgumentException:需求失败:加载元数据时出错:应为类名org.apache.spark.ml.PipelineModel,但找到类名org.apache.spark.ml.tuning.CrossValidatorModelApache spark 在Spark中加载经过训练的交叉验证模型,apache-spark,logistic-regression,cross-validation,bigdata,Apache Spark,Logistic Regression,Cross Validation,Bigdata,我是Apache Spark的新手。我使用交叉验证训练了一个逻辑回归模型。例如: val cv=新的交叉验证程序() .setEstimator(管道) .setEvaluator(新的BinaryClassificationEvaluator) .SetParamMaps(paramGrid) .setNumFolds(5) val cvModel=cv.拟合(数据) 我能够毫无差错地训练和测试我的模型。然后,我使用以下方法保存了模型和管道: cvModel.save(“/path to my
知道我做错了什么吗?谢谢。您正在尝试使用PipelineModel对象加载CrossValidator。 你应该使用正确的装载机
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")
要加载交叉验证程序,它应该
val crossValidator = CrossValidator.load("/path-to-my-model/spark-log-reg-transfer-model")
要加载交叉验证程序模型,请使用
(注意:在CrossValidator上调用fit()时,交叉验证器将成为交叉验证器模型)
因为您正在尝试加载模型,所以CrossValidatorModel.load将是正确的
val crossValidatorModel = CrossValidatorModel.load("/path-to-my-model/spark-log-reg-transfer-model")