我最近发现了 PyBrain,所以我决定试一试。经过一段时间的测试后,我决定解决以下问题,以了解 PyBrain 在内部做了什么。
给定一个包含 6 个元素的列表(每个元素从 1 到 10),确定列表中是否有更多偶数、更多奇数或相等部分。
我给 PyBrain 50 个已解决的样本和 50 个未解决的样本,输出始终是正确答案的 1/3,实际上等于随机回答这个问题......所以我想我做错了什么。
我在一个论坛上读到我必须标准化我的数据。我这样做了,我得到了同样的结果。我将附上我的代码片段以及到目前为止我尝试过的内容。
ds = SupervisedDataSet(6, 1)
....... Generating list of 6 elements, getting the mean and standard deviation to normalize data
for i in range(len(values)):
for j in range(6):
values[i][0][j] = (values[i][0][j]-mean[j]) / standard[j]
ds.appendLinked(values[i][0],values[i][1]) #values[i][0] contains a list of 6 elements, values[i][1] contains the answer for that list (0=EVEN, 1=SAME_PART, 2=ODD)
bias_network = buildNetwork(6,30,1, bias=True) # I've tried all the different networks on pybrain i think, but i don't really know the difference between anyone
trainer = BackpropTrainer(bias_network,ds,verbose=True)
trainer.trainEpochs(20) #I've tried 2, 20, 200 and until convergence, having same results...
for i in range (generate_rand):
......Generating new list l of elements
output = bias_network.activate(l)
我刚刚开始学习人工智能及其用途,如果我在这里做错了什么,请原谅。