4

我正在尝试对我的数据使用交叉验证器,但我的成功率为 0.0,这没有意义。

我的数据由具有 5 个连续属性和两个可能的类的样本组成:“y”和“n”。

我的代码:

net = pybrain.tools.shortcuts.buildNetwork(5, 8, 1)
trainer = BackpropTrainer(net, ds)
evaluation = ModuleValidator.classificationPerformance(trainer.module, ds)
validator = CrossValidator(trainer=trainer, dataset=trainer.ds, n_folds=5, valfunc=evaluation)
print(validator.validate())

当我像这样进行常规训练时

print(trainer.train())

我得到了一个合理的错误率,所以我猜这意味着数据集和网络没问题,问题出在交叉验证器上。

有任何想法吗?

更新:

我查看了交叉验证代码,注意到我的网络输出连续值,而不是所需的 0/1。我猜这些是每个班级的概率。当模型在交叉验证方法中使用时,它并没有考虑到这一点,这意味着所有答案都被视为 flase,我得到 0 个正确答案。如何添加一个查看连续值并根据较大者返回 0 或 1 的层?文档不清楚。

4

0 回答 0