我正在尝试使用spark-mllib进行分类,尤其是使用RandomForestModel。
我从spark(RandomForestClassificationExample.scala)看了一下这个例子,但我需要一些扩展的方法。
我需要能够训练模型,保存模型以备将来使用,还能够加载它并进一步训练。比如,扩展数据集并再次训练。
答案 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()
来阅读它。