我想要做的是要求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