Pybrain método de validación cruzada

Estoy tratando de usar el validador cruzado en mis datos, pero obtengo una tasa de éxito de 0.0, lo que no tiene sentido.

Mis datos están compuestos por muestras con 5 atributos continuos y dos clases posibles: "y" y "n".

Mi código

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())

Cuando estoy haciendo un entrenamiento regular como así

print(trainer.train())

Estoy obteniendo una tasa de error razonable, así que supongo que esto significa que el conjunto de datos y la red están bien, y el problema está en el validador cruzado.

¿Algunas ideas

Actualizar

Busqué en el código de validación cruzada y noté que mi red genera valores continuos y no 0/1 como se requiere. Supongo que estas son las probabilidades para cada clase. Cuando el modelo se usa dentro de los métodos de validación cruzada, no tiene en cuenta eso, y esto significa que todas las respuestas se consideran falsas, si obtengo 0 respuestas correctas. ¿Cómo puedo agregar una capa que observe los valores continuos y devuelva 0 o 1 según el que sea más grande? La documentación no está clara.

Respuestas a la pregunta(1)

Su respuesta a la pregunta