我想要做的是要求pybrain預測新數據,例如 預測(0,1,0,1,1,0),它應該輸出它認爲的答案這將是。Pybrain如何預測新數據
問題是我需要粘貼哪些代碼才能實現此目的。
附加信息: pybrain正在學習的weather.csv文件有6個屬性,答案只能是1或0.沒有其他數字。
我所要做的就是在pyBrain學會預測我給它的數字之後再問一下。像這樣例如預測(0,1,0,1,1,0)並且它應該出答案。我對python和pybrain很陌生。非常感謝您的建議和幫助。謝謝
這是我的代碼到目前爲止。
from pybrain.datasets import SupervisedDataSet
from pybrain.tools.shortcuts import buildNetwork
from pybrain.supervised.trainers import BackpropTrainer
from pybrain.datasets import ClassificationDataSet
from pybrain.utilities import percentError
from pybrain.tools.shortcuts import buildNetwork
from pybrain.supervised.trainers import BackpropTrainer
from pybrain.structure.modules import SoftmaxLayer
from pylab import ion, ioff, figure, draw, contourf, clf, show, hold, plot
from scipy import diag, arange, meshgrid, where
from numpy.random import multivariate_normal
ds = SupervisedDataSet(6,1)
tf = open('weather.csv','r')
for line in tf.readlines():
try:
data = [float(x) for x in line.strip().split(',') if x != '']
indata = tuple(data[:6])
outdata = tuple(data[6:])
ds.addSample(indata,outdata)
except ValueError,e:
print "error",e,"on line"
n = buildNetwork(ds.indim,8,8,ds.outdim,recurrent=True)
t = BackpropTrainer(n,learningrate=0.001,momentum=0.05,verbose=True)
t.trainOnDataset(ds,3000)
t.testOnData(verbose=True)
更新:
我weather.csv文件一共有7只觀測(只是爲了測試目的現在)。看起來像這在csv文件裏面。 的數據是從一週中提取1970年
1 0 1 1 1 1 1
0 0 0 1 1 1 0
1 0 1 1 1 1 1
0 0 0 1 1 1 0
0 0 0 1 1 1 0
0 0 0 1 1 1 0
0 0 0 1 1 1 0
最後一列(右一)爲pybrain需要預測之一。 當我運行代碼並告訴pybrain在這個小數據集上訓練3000次(我想要覆蓋)。該出把我得到的是
Total error: 0.0140074590407
Total error: 0.0139930126505
Total error: 0.0139796724323
Total error: 0.0139656881439
Testing on data:
out: [ 0.732]
correct: [ 1.000]
error: 0.03581333
out: [ 0.101]
correct: [ 0.000]
error: 0.00511758
out: [ 0.732]
correct: [ 1.000]
error: 0.03581333
out: [ 0.101]
correct: [ 0.000]
error: 0.00511758
out: [ 0.101]
correct: [ 0.000]
error: 0.00511758
out: [ 0.101]
correct: [ 0.000]
error: 0.00511758
out: [ 0.101]
correct: [ 0.000]
error: 0.00511758
現在,我只是想告訴pybrain與已經訓練中新數據預測過擬合模型。但我不知道如何。我的目標是看到過擬合模型如何以及是否新的數據
那麼,當你運行這段代碼時會發生什麼?它與你期望的有什麼不同?最後一行是不是給你預測? – rossdavidh 2014-09-28 15:05:01
請參閱更新 – 2014-09-29 00:14:37
最後一行給了我一個預測(如果我把最後一列留空),但它仍然訓練有關數據。這就是我想要避免的。 – 2014-09-29 00:24:14