我试图使用WEKA的多层感知器进行以下操作:
- 使用训练实例的一个小子集进行部分轮次的训练,
- 使用全部实例进行剩余轮次的训练。
然而,当我在代码中这样做时,网络似乎在第二次训练时会重置自己,从头开始。
mlp.setTrainingTime(smallTrainingSetEpochs);
mlp.buildClassifier(smallTrainingSet);
mlp.setTrainingTime(wholeTrainingSetEpochs);
mlp.buildClassifier(wholeTrainingSet);
我做错了什么,还是这是WEKA中算法的预期工作方式?
如果您需要更多信息来回答这个问题,请告诉我。我对使用WEKA进行编程还比较新,对哪些信息会有所帮助不太确定。
回答:
这个讨论串在WEKA邮件列表中提出了一个与您非常相似的问题。
看起来这是WEKA的多层感知器的预期工作方式。它被设计为“批量”学习器,您试图以增量方式使用它。只有实现了weka.classifiers.UpdateableClassifier的分类器可以进行增量训练。