我试图在我的数据上使用交叉验证程序,但是我得到了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,si I得到0个正确答案如何添加查看连续值并根据较大值返回0或1的层?文件不清楚。
最佳答案
我也在研究神经网络,我建议你用python绑定检查FANN library,它比pybrain更好更容易使用。