scala – Spark加载模型并继续训练
发布时间:2020-12-16 18:29:00 所属栏目:安全 来源:网络整理
导读:我正在使用 Scala和Spark 2.0来训练一个使用LinearRegression的模型. val lr = new LinearRegression() .setMaxIter(num_iter) .setRegParam(reg) .setStandardization(true)val model = lr.fit(data) 这工作正常,我得到了很好的结果. 我保存了模型并将其加
我正在使用
Scala和Spark 2.0来训练一个使用LinearRegression的模型.
val lr = new LinearRegression() .setMaxIter(num_iter) .setRegParam(reg) .setStandardization(true) val model = lr.fit(data) 这工作正常,我得到了很好的结果. val model = LinearRegressionModel.load("models/LRModel") val result = model.transform(data).select("prediction") 现在我想继续用新数据训练模型,所以我保存了模型并加载它以继续训练. 保存: model.save("models/LRModel") lr.save("models/LR") 加载: val lr = LinearRegression.load("models/LR") val model = LinearRegressionModel.load("models/LRModel") 问题是,当我加载模型时,没有适合或训练功能来继续训练. Exception in thread "main" java.lang.NoSuchMethodException: org.apache.spark.ml.regression.LinearRegressionModel.<init>(java.lang.String) 所以问题是,如何让LinearRegression对象使用保存的LinearRegressionModel? 解决方法
您可以使用管道来保存和加载机器学习模型.
import org.apache.spark.ml.regression.LinearRegression import org.apache.spark.ml.PipelineModel val lr = new LinearRegression().setLabelCol("labesl").setFeaturesCol("features").setMaxIter(10).setRegParam(1.0).setElasticNetParam(1.0) val pipeline = new Pipeline().setStages(Array(lr)) pipeline.fit(trainingData) pipeline.write.overwrite().save("hdfs://.../spark/mllib/models/linearRegression"); val sameModel = PipelineModel.load("hdfs://...") sameModel.transform(assembler).select("features","labels","prediction").show( (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |