Метод перекрестной проверки Pybrain - PullRequest
4 голосов
/ 22 апреля 2011

Я пытаюсь использовать перекрестный валидатор для моих данных, но я получаю 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())

IЯ получаю разумную частоту появления ошибок, поэтому я предполагаю, что это означает, что с набором данных и сетью все в порядке, и проблема в перекрестном валидаторе.

Есть идеи?

Обновление:

Я посмотрел код перекрестной проверки и заметил, что моя сеть выводит непрерывные значения, а не 0/1, как требуется.Я предполагаю, что это вероятности для каждого класса.Когда модель используется в методах перекрестной проверки, это не учитывается, и это означает, что все ответы считаются некорректными, так как я получаю 0 правильных ответов.Как добавить слой, который просматривает непрерывные значения и возвращает 0 или 1 в зависимости от того, что больше?Документация неясна.

1 Ответ

0 голосов
/ 19 августа 2011

Я тоже работаю с нейронными сетями, рекомендую проверить библиотеку FANN с привязками Python, это лучше и проще в использовании, чем pybrain

...