我咨询了几个参考资料,以了解如何将经过训练的 Weka 模型输出到 Java 源代码中,以便我可以将我在实际代码中训练的分类器用于我一直在开发的研究应用程序。
当我在玩 Weka 3.7 时,我注意到虽然它在使用 J48 决策树等更简单的分类(这次在我的情况下监督)方法时确实将 Java 代码输出到其主文本缓冲区,但它删除了该选项(相反,它无效它通过删除复选标记和淡化文本的能力)来输出 RandomTree 和 RandomForest 的 Java 代码(它们在我的情况下给我最好的性能)。注意:我单击“更多选项”按钮并检查“输出源代码:”。
Weka 是否不允许您将 RandomTree 或 RandomForest 输出为 Java 代码?如果是这样,为什么?或者如果它确实并且只是不将它放在输出缓冲区中(因为 RF 是多个决策树,我想它不想浪费缓冲区空间),那么如何去挖掘文件系统中 Weka 输出 java 的位置默认代码?
有什么技巧可以让 Weka 将我训练有素的 RandomForest 作为 Java 代码提供给我吗?或者当涉及到 RF 和 RandomTree 时,输出 *.model 文件的序列化是我唯一的希望吗?
提前感谢那些提供帮助的人。
注意:(作为下面提供的答案的附录)如果您遇到类似的情况(要求您在代码中使用经过训练的分类器/ML 模型),我建议您按照响应中提供的答案中发布的链接进行操作我的问题。例如,如果您并不特别需要 RandomForest 的 Java 代码,那么反序列化模型的效果非常好,并且适合 Java 应用程序代码,可以作为经过训练的模型/强化算法来完成其任务,以预测未来未标记的实例。