apache-spark - 在 Spark 中加载经过训练的交叉验证模型

标签 apache-spark logistic-regression cross-validation bigdata

我是 Apache Spark 的新手。我使用交叉验证训练了一个 LogisticRegression 模型。例如:

val cv = new CrossValidator() .setEstimator(pipeline) .setEvaluator(new BinaryClassificationEvaluator) .setEstimatorParamMaps(paramGrid) .setNumFolds(5) val cvModel = cv.fit(data)

我能够毫无错误地训练和测试我的模型。然后我使用以下方法保存了模型和管道:

cvModel.save("/path-to-my-model/spark-log-reg-transfer-model") pipeline.save("/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.CrossValidatorModel

知道我做错了什么吗?谢谢。

最佳答案

您正在尝试使用 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")

关于apache-spark - 在 Spark 中加载经过训练的交叉验证模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36446629/

相关文章:

python - 使用Apache Spark实现python功能

python - Pyspark count() 和 collect() 不起作用

python - 在cross_val_score中,参数cv的使用有何不同?

r - 在 R 中运行 glm 时出现错误/警告 - 系数 : (1 not defined because of singularities)

r - 在 R 中使用 bife 获取截距以进行固定效应逻辑回归

machine-learning - scikit-learn 分类指标中的classification_report 与 f1_score

r - Caret 包 - 使用平滑和线性预测器交叉验证 GAM

scala - 控制结构化 Spark Streaming 的微批处理

apache-spark - 从 Pandas udf 记录

python - Tensorflow 2.0 - 这些模型预测代表概率吗?