2011-11-16 5 views
7

Я следую учебнику PyBrain Classification with Feed-Forward Neural Networks и хочу создать собственный классификатор._convertToOneOfMany in PyBrain

Я не понимаю, как _convertToOneOfMany изменяет выходы.

Почему начальная операция alldata.addSample(input, [klass]) создает более одного выходного нейрона в классе?

+1

Привет, вы забыли пометить свой вопрос как ответ. – Framester

+0

Я ответил сам, поэтому, возможно, я пропущу это – user425720

+0

@ user425720 Даже если вы ответили сами, вы должны пометить его как ответ. Тогда люди знают, что это решило проблему для вас. –

ответ

6

фигу, вот документ объясняя этот материал http://pybrain.org/docs/tutorial/datasets.html

+1

спасибо за этот ответ, но я не совсем согласен с документом «многие алгоритмы работают лучше, если классы закодированы в один блок вывода для каждого класса». могу ли я спросить, что такое «один вывод для каждого класса»? – hihell

+0

Вау, это было много лет назад, я не могу вспомнить - разве это не связано с структурой нейронной сети? Итак, нейрон может испускать выход одного или нескольких нейронов в другом слое? – user425720

+0

Да, это связано с структурой NT. на самом деле я понял себя: «один вывод для каждого класса» означает, что если у вас есть 3 класса, было бы лучше, если бы у вас также было 3 единицы вывода. и _convertToOneOfMany делает это для вас путем расширения/сокращения единиц вывода на количество целевых классов – hihell

1

Соответствующая часть в Документах страницу Using Datasets: classification – Datasets for Supervised Classification Training:

При выполнении классификации, многие алгоритмы работают лучше, если классы кодируются в один выходной блок для класса, который принимает определенное значение, если класс присутствует. В качестве расширенной функции, ClassificationDataSet делает это преобразование автоматически:

Однако это не удовлетворительный ответ, как я не понимаю, либо почему не должно быть больше, чем один выходной нейрон на класс в первой руке.

Обновление: Я рекомендую использовать keras

2

целевой номер является [0,1,2], эта функция перевода их (001,010,100). Это связано с тем, что многие алгоритмы работают лучше, если классы кодируются в один выходной блок для каждого класса.

Смежные вопросы