我想找出正确的方法在pybrain中进行5倍交叉验证。我看了他们的文件,但没用。我在网上找到了以下两个版本的代码:
在一个问题here中找到了这个。在
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())
Error:
evaluation = ModuleValidator.classificationPerformance(trainer.module, ds)File ".../pybrain/tools/validation.py", line 168, in classificationPerformancedataset)
File ".../pybrain/tools/validation.py", line 204, in validate return valfunc(output, target)
File ".../pybrain/tools/validation.py", line 33, in classificationPerformance return float(n_correct) / float(len(output))
TypeError: only length-1 arrays can be converted to Python scalars
第二个是here。在
^{pr2}$Error - trainer.train()
File ".../rprop.py", line 43, in train for seq in self.ds._provideSequences():
AttributeError: 'NoneType' object has no attribute '_provideSequences'
我去了源代码,试图跟踪错误的原因,但不知道我需要更改什么。感谢任何帮助。在
当我通过简单地将数据集分成3个部分(培训、验证和测试)运行代码时,它运行得很好。我只有在尝试实现k-fold交叉验证时才会遇到这些错误。在
这似乎对我有用:
它应该输出每个折叠的误差。在
相关问题 更多 >
编程相关推荐