gpt4 book ai didi

python - 使用 pybrain 进行神经网络回归

转载 作者:太空狗 更新时间:2023-10-29 20:14:29 24 4
gpt4 key购买 nike

我需要用前馈网络解决回归问题,我一直在尝试使用 PyBrain 来完成它。由于 pybrain 的引用资料中没有回归示例,因此我尝试将其分类示例改为用于回归,但没有成功(分类示例可在此处找到:http://pybrain.org/docs/tutorial/fnn.html)。以下是我的代码:

第一个函数将我的 numpy 数组形式的数据转换为 pybrain SupervisedDataset。我使用 SupervisedDataset 是因为根据 pybrain 的引用,它是问题回归时要使用的数据集。参数是一个包含特征向量(数据)及其预期输出(值)的数组:

def convertDataNeuralNetwork(data, values):

fulldata = SupervisedDataSet(data.shape[1], 1)

for d, v in zip(data, values):

fulldata.addSample(d, v)

return fulldata

接下来是运行回归的函数。 train_data 和 train_values 是训练特征向量及其预期输出,test_data 和 test_values 是测试特征向量及其预期输出:

regressionTrain = convertDataNeuralNetwork(train_data, train_values)

regressionTest = convertDataNeuralNetwork(test_data, test_values)

fnn = FeedForwardNetwork()

inLayer = LinearLayer(regressionTrain.indim)
hiddenLayer = LinearLayer(5)
outLayer = GaussianLayer(regressionTrain.outdim)

fnn.addInputModule(inLayer)
fnn.addModule(hiddenLayer)
fnn.addOutputModule(outLayer)

in_to_hidden = FullConnection(inLayer, hiddenLayer)
hidden_to_out = FullConnection(hiddenLayer, outLayer)

fnn.addConnection(in_to_hidden)
fnn.addConnection(hidden_to_out)

fnn.sortModules()

trainer = BackpropTrainer(fnn, dataset=regressionTrain, momentum=0.1, verbose=True, weightdecay=0.01)

for i in range(10):

trainer.trainEpochs(5)

res = trainer.testOnClassData(dataset=regressionTest )

print res

当我打印 res 时,它的所有值都是 0。我尝试使用 buildNetwork 函数作为构建网络的快捷方式,但效果不佳。我还在隐藏层中尝试了不同类型的层和不同数量的节点,但没有成功。

有人知道我做错了什么吗?此外,一些 pybrain 回归示例真的很有帮助!我看的时候找不到。

提前致谢

最佳答案

pybrain.tools.neuralnets.NNregression是一个工具

Learns to numerically predict the targets of a set of data, with optional online progress plots.

因此它似乎非常适合为您的回归任务构建神经网络。

关于python - 使用 pybrain 进行神经网络回归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16879928/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com