Java 串行化Weka过滤器

Java 串行化Weka过滤器,java,weka,Java,Weka,我一直在使用Weka GUI(特别是3.7.11中的浏览器)来训练一些模型。然后右键单击结果窗格中的模型,保存经过训练的模型。我编写了一些简单的Java代码,可以加载保存的模型并使用它对新实例进行分类。这一切都很好 当然,我想在训练模型之前对数据进行一些预处理。一些预处理步骤学习值。例如,缺失值过滤器从训练数据中学习每个特征的平均值或模式。因此,我希望保存学习的过滤器,就像保存学习的模型一样,这样我就可以应用过滤器,然后将模型应用到训练模型时不可用的新实例 我似乎找不到任何方法来序列化过滤器。这

我一直在使用Weka GUI(特别是3.7.11中的浏览器)来训练一些模型。然后右键单击结果窗格中的模型,保存经过训练的模型。我编写了一些简单的Java代码,可以加载保存的模型并使用它对新实例进行分类。这一切都很好

当然,我想在训练模型之前对数据进行一些预处理。一些预处理步骤学习值。例如,缺失值过滤器从训练数据中学习每个特征的平均值或模式。因此,我希望保存学习的过滤器,就像保存学习的模型一样,这样我就可以应用过滤器,然后将模型应用到训练模型时不可用的新实例


我似乎找不到任何方法来序列化过滤器。这能做到吗?如果没有,请提供一些简单解决方法的建议?

来自Weka邮件列表上的Mark Hall:

基本上,您选择“元分类器”类别中的“过滤分类器”作为分类器。然后选择您想要的分类器作为它使用的分类器。然后选择“多过滤器”元过滤器,并在分类器之前应用任何一系列过滤器。结果看起来是一个可以保存的单一分类器,但实际上是一系列过滤器,后面跟着分类器。

您可以使用Java提供的

检查此链接,解释如何序列化和反序列化weka对象。