2011-11-16 5 views
7

Sigo el tutorial PyBrain Classification with Feed-Forward Neural Networks y quiero construir mi propio clasificador._convertToOneOfMany en PyBrain

No entiendo cómo _convertToOneOfMany modifica las salidas.

¿Por qué la operación inicial alldata.addSample(input, [klass]) crearía más de una neurona de salida por clase?

+1

Hola, olvidó marcar su pregunta como respondida. – Framester

+0

lo contesté yo mismo, así que tal vez omita ese – user425720

+0

@ user425720 Aunque se haya contestado a sí mismo, debe marcarlo como respondido. Entonces la gente sabe que esto solucionó el problema para usted. –

Respuesta

6

No importa, aquí es doc explicando estas cosas http://pybrain.org/docs/tutorial/datasets.html

+1

gracias por esta respuesta, pero no sigo completamente el documento "muchos algoritmos funcionan mejor si las clases están codificadas en una unidad de salida por clase". ¿Puedo preguntar qué es "una unidad de salida por clase"? – hihell

+0

wow, fue hace años, apenas puedo recordar - ¿No está conectado a la estructura de la red neuronal? Entonces, ¿una neurona puede emitir salida a una o muchas neuronas en otra capa? – user425720

+0

sí, está relacionado con la estructura NT. de hecho, me di cuenta de que "una unidad de salida por clase" significa que si tienes 3 clasificadas, sería mejor si también tienes 3 unidades de salida. y _convertToOneOfMany hace esto por ti expandiendo/reduciendo las unidades de salida al número de tus clases objetivo – hihell

1

La parte pertinente de la documentación es la página de Using Datasets: classification – Datasets for Supervised Classification Training:

Al hacer la clasificación, muchos algoritmos funcionan mejor si las clases se codifican en una unidad de salida por clase, eso toma un cierto valor si la clase está presente. Como una característica avanzada, ClassificationDataSet hace esta conversión automática:

Sin embargo, esto no es una respuesta satisfactoria, ya que no entiendo bien por qué debería haber más de una neurona de salida por clase en la primera parte.

Actualización: recomiendo el uso de keras

2

número objetivo es [0,1,2], esta función se traducen en ellas (001010100). Esto se debe a que muchos algoritmos funcionan mejor si las clases están codificadas en una unidad de salida por clase

Cuestiones relacionadas