我已经使用 Weka Java 使用机器学习实现了分类算法。我想在 RasberryPi 上部署经过训练的模型进行测试。我希望经过训练的模型每次收到新数据并进行预测时都会更新?有没有办法用 weka Java 做到这一点?你能分享你的想法如何进行吗?
提前致谢
我已经使用 Weka Java 使用机器学习实现了分类算法。我想在 RasberryPi 上部署经过训练的模型进行测试。我希望经过训练的模型每次收到新数据并进行预测时都会更新?有没有办法用 weka Java 做到这一点?你能分享你的想法如何进行吗?
提前致谢
好吧,我很无聊,所以我会尽力提供帮助,因为这是一个棘手且常见的问题,因为越来越多的人将机器学习集成到他们的正常开发流程中......尽管这对于 SO 来说有点宽泛。
我会问自己几个问题:
通常,在将每行新数据写入您从中获取训练数据的地方时重新训练分类模型将是疯狂的。所以我会考虑一下。
构建模型需要多长时间,随着越来越多的训练数据堆积,构建模型需要多长时间?
您将训练数据保存在哪里,如何快速标记它,以便每次获得新数据时都能够重新训练模型?或者它不是典型的监督分类模型?
我问这个是因为,根据我所做的,你训练的数据将进入某种数据库、文件系统或其他任何东西,如果你用来构建模型的 Java 代码从磁盘上的标准位置读取,或者一个数据库,重建模型并不是那么难......它可以是 CRON 作业或 jenkins 作业或重建模型的任何东西(读取数据,构建模型,将模型写入磁盘,部署模型)。您希望使用模型的进程能够从配置中读取它,并且您希望构建模型的代码能够配置训练数据语料库的位置。一个简单的 Java 属性文件可能就足够了。
我对 Raspberry pi 一无所知,但这部分似乎无关紧要,因为这确实是一个软件架构问题。我完成自动部署部分的一种方法是使用 Jenkins 和 PUPPET 之类的东西来推动/拉动模型以将其用于机器上。在我过去,我将 NLP 模型放在带有 puppet 的 Hadoop 和 Storm 集群上,Java 代码从所有节点上的静态 NFS 挂载中获取它们。ETC.....
高温高压
查看 Weka 开发人员提供的MOA(大规模在线分析)包。它基本上可以满足您的需求-增量更新训练模型(=“在线”)。
据我所知,MOA (免费)作为独立产品或 Weka 的扩展提供。