Pybrain给出错误的错误百分比

时间:2015-06-03 04:38:49

标签: python pandas machine-learning neural-network pybrain

我在一个由3600个模式组成的庞大数据集上训练了pybrain,并尝试在另一个类似的数据集上进行测试。显示的百分比误差为0.0277,但预测输出只是一个1s的数组,与原始输出完全不同。

df = pandas.read_csv('BOM-DEL.csv').groupby('x').mean().reset_index()[:3600]
dk = pandas.read_csv('BLR-DEL.csv').groupby('x').mean().reset_index()
dx = numpy.array((dk.x-numpy.amin(dk.x))/(numpy.amax(dk.x)-numpy.amin(dk.x))
dy = numpy.array((dk.y-numpy.amin(dk.y))/(numpy.amax(dk.y)-numpy.amin(dk.y))
dx1 = numpy.array((df.x-numpy.amin(df.x))/(numpy.amax(df.x)-numpy.amin(df.x))
dy1 = numpy.array((df.y-numpy.amin(df.y))/(numpy.amax(df.y)-numpy.amin(df.y))
ds = ClassificationDataSet(1, 1 , nb_classes=3600)
dt = ClassificationDataSet(1,1, nb_classes=3600)
for k in xrange(len(dx)):
    ds.addSample(dx[k],dy[k])
    dt.addSample(dx1[k],dy1[k])
trndata = dt
tstdata = ds
fnn = buildNetwork( trndata.indim, 360 , trndata.outdim, outclass=SoftmaxLayer )
trainer = BackpropTrainer( fnn, dataset=trndata, momentum=0.1, learningrate=0.01 , verbose=True, weightdecay=0.01) 
trainer.trainEpochs (50)
print 'Percent Error on Test dataset: ' , percentError(     trainer.testOnClassData (
       dataset=tstdata )
       , tstdata['class'] )

numpy.array([fnn.activate(k) for k,_  in tstdata])

我得到以下结果:

>>> array([[1.0],[1.0]....[1.0])
Percentage error = 0.02

虽然我的输出应介于0.001到1之间

有人可以解释为什么会这样吗?

0 个答案:

没有答案