繁体   English   中英

Pybrain:用于分类的神经网络无法学习

[英]Pybrain: neural network for classification doesn't learn

我正在尝试使用pybrain将某些输入(由44个变量组成,范围从-1到+1)分类为5类(从0到4),但是即使我将总误差固定为0.072左右更改网络结构,或者减少输入向量中的变量数量。 代码是:

InputT=TrainingINDF.ix[:End,:]
InputT=InputT.as_matrix()
TargetT=TrainingOUTDF.ix[:End,:]
TargetT=TargetT.as_matrix()
ds = ClassificationDataSet(44, 1, nb_classes=5)
for i in range (len(InputT)):
    ds.addSample(InputT[i,:],TargetT[i])
testdata=ClassificationDataSet(44, 1, nb_classes=5)
for i in range (len(TrainingINDF.ix[StartTS:,:])):
    testdata.addSample(TrainingINDF.ix[StartTS+i,:],TrainingOUTDF.ix[StartTS+i])
testdata._convertToOneOfMany()
ds._convertToOneOfMany()
net = buildNetwork(44,15,5,hiddenclass=TanhLayer, outclass=SoftmaxLayer)
trainer = BackpropTrainer(net,dataset=ds,momentum=0.1,verbose=True, weightdecay=0.01) 
trnerr,valerr = trainer.trainUntilConvergence(dataset=ds,maxEpochs=100)
ris = net.activateOnDataset(testdata)
out=ris.argmax(axis=1)
percenterrortest=percentError(out, testdata['class'] )
print 'Percent Error on Test dataset: ' , percentError(trainer.testOnClassData (dataset=testdata ), testdata['class'] )
print 'Percent Error on Train dataset: ' , percentError(trainer.testOnClassData (dataset=ds ), ds['class'] )

测试百分比误差为61.93,而列车百分比误差为60.50。 我究竟做错了什么? 令我惊讶的是,这三个误差(百分比误差和总误差)始终在相同的值附近; 不管我改变什么

谢谢

对PyBrain不太熟悉,但是您确定输出能够小于0吗? 例如,如果将输出限制在0和1之间,则可能永远无法非常接近正确的答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM