Spark-mllib再培训保存模型

时间:2017-01-03 12:55:09

标签: scala apache-spark apache-spark-mllib

我正在尝试使用spark-mllib进行分类,尤其是使用RandomForestModel。

我从spark(RandomForestClassificationExample.scala)看了一下这个例子,但我需要一些扩展的方法。

我需要能够训练模型,保存模型以备将来使用,还能够加载它并进一步训练。比如,扩展数据集并再次训练。

3 个答案:

答案 0 :(得分:2)

我完全理解导出和导入模型以供将来使用的必要性。

不幸的是,培训"进一步" Spark不可能也没有意义。因此,建议重新训练模型,使用数据来训练第一个模型+新数据。

如果您想添加更多数据(例如功能,拦截,系数等),您的第一个训练值/指标就不再有意义了。

我希望这能回答你的问题。

答案 1 :(得分:1)

如果您想使用旧模型并使用新数据重新训练,您可能需要寻找一些强化学习技术而不是随机森林。

我知道,有deeplearning4j在Spark(和Hadoop)之上实现深度强化学习算法。

答案 2 :(得分:0)

如果您只需要保存JavaRDD[Object],则可以(使用Java)

model.saveAsObjectFile()

将使用Java Serialization将值写出。然后,要阅读您的数据:

JavaRDD[Object] model = jsc.objectFile(pathOfYourModel)

小心,Python中没有目标文件。但您可以使用saveAsPickleFile()来编写模型,使用pickleFile()来阅读它。