Spark-mllib 重新训练保存的模型
Spark-mllib retraining saved models
我正在尝试使用 spark-mllib 进行分类,尤其是使用 RandomForestModel。
我已经从 spark (RandomForestClassificationExample.scala) 中查看了这个示例,但我需要一种稍微扩展的方法。
我需要能够训练模型,保存模型以供将来使用,还需要能够加载它并进一步训练。比如,扩展数据集并再次训练。
如果只需要保存JavaRDD[Object]
,可以做到(在Java)
model.saveAsObjectFile()
值将使用 Java 序列化写入。然后,要读取您的数据,您需要执行以下操作:
JavaRDD[Object] model = jsc.objectFile(pathOfYourModel)
请注意,目标文件在 Python 中不可用。但是您可以使用 saveAsPickleFile()
来编写您的模型并使用 pickleFile()
来阅读它。
我完全理解导出和导入模型以供将来使用的必要性。
不幸的是,"further" 无法使用 Spark 进行训练,也没有任何意义。因此,建议 重新训练 模型,并使用用于训练第一个模型的数据 + 新数据。
如果您想添加更多数据(例如特征、截距、系数等),您的第一次训练 values/metrics 就没有多大意义了
我希望这能回答您的问题。
如果您想使用旧模型并用新数据重新训练它,您可能需要寻找一些强化学习技术而不是随机森林。
据我所知,有 deeplearning4j 在 Spark(和 Hadoop)之上实施深度强化学习算法。
我正在尝试使用 spark-mllib 进行分类,尤其是使用 RandomForestModel。
我已经从 spark (RandomForestClassificationExample.scala) 中查看了这个示例,但我需要一种稍微扩展的方法。
我需要能够训练模型,保存模型以供将来使用,还需要能够加载它并进一步训练。比如,扩展数据集并再次训练。
如果只需要保存JavaRDD[Object]
,可以做到(在Java)
model.saveAsObjectFile()
值将使用 Java 序列化写入。然后,要读取您的数据,您需要执行以下操作:
JavaRDD[Object] model = jsc.objectFile(pathOfYourModel)
请注意,目标文件在 Python 中不可用。但是您可以使用 saveAsPickleFile()
来编写您的模型并使用 pickleFile()
来阅读它。
我完全理解导出和导入模型以供将来使用的必要性。
不幸的是,"further" 无法使用 Spark 进行训练,也没有任何意义。因此,建议 重新训练 模型,并使用用于训练第一个模型的数据 + 新数据。
如果您想添加更多数据(例如特征、截距、系数等),您的第一次训练 values/metrics 就没有多大意义了
我希望这能回答您的问题。
如果您想使用旧模型并用新数据重新训练它,您可能需要寻找一些强化学习技术而不是随机森林。
据我所知,有 deeplearning4j 在 Spark(和 Hadoop)之上实施深度强化学习算法。