【问题标题】:Prediction data in PyBrainPyBrain 中的预测数据
【发布时间】:2016-06-27 03:30:24
【问题描述】:

我根据现有数据做出预测。但他们错了。我不知道为什么。 我有代码创建和训练神经网络。

ds = SupervisedDataSet(3, 1)

ds.addSample( (76.7, 13.8, 103.0), (770,))
ds.addSample( (70.9, 13.0, 92.0), (650,))
ds.addSample( (65.6, 15.9, 104.3), (713,))
ds.addSample( (59.3, 14.8, 88.0), (593,))
ds.addSample( (50.0, 13.0, 65.2), (443,))
ds.addSample( (44.9, 17.6, 79.0), (547,))
ds.addSample( (44.3, 18.4, 78.6), (553,))
ds.addSample( (44.4, 18.4, 81.8), (576,))

net = buildNetwork(ds.indim, 5, ds.outdim, bias=True)

trainer = BackpropTrainer(net, dataset=ds, verbose=True,learningrate=0.05)
trainer.setData(ds)
trainer.trainEpochs(100)

但是当我写的时候

net.activate((76.7, 13.8, 103.0))

我得到了错误的结果数组([570.34849909])。当我更改输入值时,结果不会改变。例如 net.activate((76.7, 13.8, 90.0)) - array([ 570.34849909])。

我不明白如何解决它。我尝试了不同的学习方式,隐藏层中不同数量的神经元,以及不同数量的 epoch。

【问题讨论】:

    标签: python neural-network prediction pybrain supervised-learning


    【解决方案1】:

    我找到了解决问题的方法。数据必须在训练前进行归一化。这大大提高了训练的效率。最后代码:

    ds = SupervisedDataSet(3, 1)
    #not normalize data
    ds.addSample( (76.7, 13.8, 103.0), 770)
    ds.addSample( (70.9, 13.0, 92.0), 650)
    ds.addSample( (65.6, 15.9, 104.3), 713)
    ds.addSample( (59.3, 14.8, 88.0), 593)
    ds.addSample( (50.0, 13.0, 65.2), 443)
    ds.addSample( (44.9, 17.6, 79.0), 547)
    ds.addSample( (44.3, 18.4, 78.6), 553)
    ds.addSample( (44.4, 18.4, 81.8), 576)
    
    #code for normalize data in ds
    i = np.array([d[0] for d in ds])
    i /= np.max(np.abs(i),axis=0)
    o = np.array([d[1] for d in ds])
    o /= np.max(np.abs(o),axis=0)
    
    #creating new object for normalized data
    nds = SupervisedDataSet(3, 1)
    for ix in range(len(ds)):
        nds.addSample( i[ix], o[ix])
    
    #creating net
    net = buildNetwork(nds.indim, 3, nds.outdim, bias = True, hiddenclass=TanhLayer)
    
    #training net
    trainer = RPropMinusTrainer(net, verbose=True)
    trainer.trainOnDataset(nds,100)
    trainer.testOnData(verbose=True)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多