Как вы делаете прогноз (прогноз) из обученной сети для данного входа? - PullRequest
2 голосов
/ 17 января 2012

Ниже приведен мой код для нейронной сети, с 3 входами и 1 скрытым слоем и 1 выходом:

#Data 
ds = SupervisedDataSet(3,1)

myfile = open('my_file.csv','r')

for data in tf.myfile ():
   indata =  tuple(data[:3])
   outdata = tuple(data[3])
   ds.addSample(indata,outdata)

net = FeedForwardNetwork() 
inp = LinearLayer(3) 
h1 = SigmoidLayer(1) 
outp = LinearLayer(1)

# add modules 
net.addOutputModule(outp) 
net.addInputModule(inp) 
net.addModule(h1)

# create connections 
net.addConnection(FullConnection(inp, h1))  
net.addConnection(FullConnection(h1, outp))

# finish up 
net.sortModules()

# initialize the backprop trainer and train 
trainer = BackpropTrainer(net, ds)
trainer.trainOnDataset(ds,1000) trainer.testOnData(verbose=True)

print 'Final weights:',net.params

У меня вопрос: если вы хотите использовать эту обученную нейронную сеть для составления прогноза на основе конкретных входных данных, как вы это сделаете?

Ответы [ 2 ]

4 голосов
/ 17 января 2012

Согласно документации , вы можете протестировать определенные входы с помощью метода activate в вашей сети. Предполагая, что ваш ввод выглядит примерно так (1 2 3), ваш код будет выглядеть как

net.activate((1,2,3))
0 голосов
/ 05 марта 2013

Если я правильно вас понимаю, ваши данные имеют временный порядок.Что я делаю для составления прогноза, так это чтобы сместить таблицу данных, чтобы представить следующий результат в качестве цели для обучения.Например, если у вас есть данные такого типа:

w1 x1 y1 z1

w2 x2 y2 z2

w3 x3 y3 z3

w4 x4 y4 z4

.,.

и вы хотите предсказать z2, вы строите таблицу, например:

w1 x1 y1 z1 |z2

w2 x2 y2 z2 |z3

w3 x3 y3 z3 |z4

.,.

Затем вы представляете последний столбец в качестве цели для обучения.Конечно, вы теряете одну строку в конце таблицы.

Вы также можете улучшить вывод, задав разницу между шагами в качестве дополнительного ввода (дает динамический эффект:

w2 x2 y2 z2 (w2-w1) (z2-z1) | z3

w3 x3 y3 z3 (w3-w2) (z3-z2) | z4

...

...