我想做的是让Pybrain预测新数据,例如predict(0,1,0,1,1,0),并输出其所认为的答案。问题是,我需要粘贴什么代码才能实现这一点?
额外的信息:Pybrain正在学习的weather.csv文件有6个属性,而答案只能是1或0。没有其他数字。
再次强调,我想做的就是在Pybrain学会后询问它对我给出的数字进行预测。例如:predict(0,1,0,1,1,0) ,然后输出一个答案。我对Python和Pybrain非常陌生。
这是我的代码:
更新:
我的weather.csv文件只有7个观测值(目前仅用于测试)。它在csv文件中的样子如下所示(数据是从1970年的一周提取的):
额外的信息:Pybrain正在学习的weather.csv文件有6个属性,而答案只能是1或0。没有其他数字。
再次强调,我想做的就是在Pybrain学会后询问它对我给出的数字进行预测。例如:predict(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,用过拟合的模型预测2014年的新数据。但是我不知道怎么做。我的目标是看看过度拟合的模型在2014年的新数据上表现如何。