我正在使用weka多层感知器来构建我的分类器。问题是,我有这么多的数据集,所以我想一遍又一遍地进行增量训练。用数据集1调用buildClassifier之后。完成培训后,如果我使用dataset2调用buildClassifier,该怎么办?会发生什么?我已经训练过的数据库1网络丢失了吗?或者下次调用builderClassifier(dataset2)时的起点是带有dataset1的训练网络?如果是第一种情况,有没有办法像我说的那样使用weka MLP?
另外,如果我没有将种子传递给MLP,我猜测网络将始终返回相同的初始权重,因为默认种子为0。
谢谢!
答案 0 :(得分:0)
您无法逐步学习MultilayerPerceptron,每次在同一分类器实例上调用buildClassifier方法时,您都会用新的模型覆盖当前模型。
如果您希望学习过程使用更多样本,只需将它们添加到训练集(dataset1)并启动一个新的学习过程,在新数据集上调用buildClassifier,以便反向传播算法可以使用所有可用数据来训练模特!
另一方面,如果您已经训练了一个模型,例如10个时期,并且您希望在同一个数据集上训练另一个模型,但是有20个时期,而不会丢失第一个,那么您只需使用该方法复制它makeCopy()。
有关更多信息,请参阅doc:http://weka.sourceforge.net/doc.stable-3-8/weka/classifiers/functions/MultilayerPerceptron.html