4
我試圖預測給定的一組商品的銷售價格。我在pybrain中使用了RecurrentNetwork和BackpropTrainer。這是我的代碼,PyBrain預測錯誤
def nnet(train, target, valid):
ds = SupervisedDataSet(52-len(NU)+5, 1)
for i in range(len(train)):
ds.appendLinked(train[i], target[i])
n = RecurrentNetwork()
n.addInputModule(LinearLayer(52-len(NU)+5, name='in'))
n.addModule(SigmoidLayer(3, name='hidden'))
n.addOutputModule(LinearLayer(1, name='out'))
n.addConnection(FullConnection(n['in'], n['hidden'], name='c1'))
n.addConnection(FullConnection(n['hidden'], n['out'], name='c2'))
n.addRecurrentConnection(FullConnection(n['hidden'], n['hidden'], name='c3'))
n.sortModules()
t = BackpropTrainer(n,learningrate=0.001,verbose=True)
t.trainOnDataset(ds, 20)
prediction = np.zeros((11573, 1), dtype = int)
for i in range(11573):
prediction[i] = n.activate(valid[i])
return prediction
這裏火車和目標,這是numpy的陣列,被用來訓練模式和52-LEN(NU)5是屬性數(特徵)。對於中的每個項目有效的,我們必須預測銷售價格。問題是,對於每個有效的商品,除第一個商品之外,我的銷售價格相同。我做錯了什麼?提前致謝。
陣列尺寸如下,
列車 - 401125,52-LEN(NU)5
目標 - 401125,1
有效 - 11573,52-LEN(NU)+ 5
考慮到還沒有人回答,我建議在這裏問:https://github.com/pybrain/pybrain/issues – pablofiumara 2014-03-27 03:54:16
我不知道PyBrain,但對於這類任務,我建議你看看在http://scikit-learn.org/stable/。 – blueSurfer 2014-04-04 15:57:48
也許這是不相關的,但你有沒有嘗試過20多個時代訓練(你的學習率似乎有點低)?也許使用'trainUntilConvergence'方法? – agmangas 2014-04-09 16:10:25