2011-11-16 7 views
7

Seguo il tutorial PyBrain Classification with Feed-Forward Neural Networks e voglio creare il mio proprio classificatore._convertToOneOfMany in PyBrain

Non capisco come _convertToOneOfMany modifica le uscite.

Perché l'operazione iniziale alldata.addSample(input, [klass]) crea più di un neurone di uscita per classe?

+1

Ciao, hai dimenticato di contrassegnare la tua domanda come risposta. – Framester

+0

ho risposto da solo, quindi forse salterò quello – user425720

+0

@ user425720 Anche se hai risposto da solo, dovresti contrassegnarlo come risposta. Allora la gente sa che questo ha risolto il problema per te. –

risposta

6

non importa, qui è doc spiegando questa roba http://pybrain.org/docs/tutorial/datasets.html

+1

grazie per questa risposta, ma non seguo abbastanza il documento "molti algoritmi funzionano meglio se le classi sono codificate in una unità di output per classe". posso chiedere cosa è "una unità di output per classe"? – hihell

+0

wow, è stato anni fa, non riesco a ricordare - non è collegato alla struttura della rete neurale? Quindi, un neurone può emettere output su uno o più neuroni in un altro strato? – user425720

+0

sì è correlato alla struttura NT. in realtà ho capito da solo, "un'unità di output per classe" significa che se hai 3 classi, sarebbe meglio se tu avessi anche 3 unità di output. e _convertToOneOfMany fa questo per te espandendo/restringendo le unità di output al numero delle tue classi target – hihell

1

La parte rilevante nella documentazione è la pagina Using Datasets: classification – Datasets for Supervised Classification Training:

Quando si effettua la classificazione, molti algoritmi funzionano meglio se le classi sono codificati in una sola unità di uscita per classe, che assume un determinato valore se la classe è presente. Come una funzionalità avanzata, ClassificationDataSet fa questa conversione automaticamente:

Tuttavia, questa non è una risposta soddisfacente come non capisco neanche il motivo per cui non ci dovrebbero essere più di un neurone di uscita per classe nella prima mano.

Aggiornamento: mi consiglia di utilizzare keras

2

numero di destinazione è [0,1,2], questa funzione li traducono in (001.010.100). Questo perché molti algoritmi funzionano meglio se le classi sono codificate in un'unità di output per classe

Problemi correlati