gpt4 book ai didi

python - 如何使用神经网络预测峰值(最好在 python 中使用 neurolab 或 pybrain)

转载 作者:行者123 更新时间:2023-11-28 17:50:43 24 4
gpt4 key购买 nike

我想使用神经网络根据系列 A(我有系列 A 的完整历史记录)和 future 30 天的事件列表 E(E是二进制单位的列表)。知道 B 与 A 成线性比例,并且当第 i 天的事件发生时 (E[i] = 1),它会触发 B 的峰值(比例未知)。我有包含 (A, E, B) 元组的训练数据。我已经用前馈网络进行了测试,但它的表现不是很好(不能预测正确的尖峰)。我应该使用循环网络吗?我该怎么做 neurolab 或 pybrain ?谢谢。

你可以看一个例子here .

编辑:代码有点复杂,所以我不能贴在这里。然而,我的想法是我将 A + E 作为输入并预测 B,所以有 30 + 30 个输入单元,30 个输出单元,没有隐藏层(我测试了 1 个隐藏层,包括 30 个单元和 90 个单元,但它们没有表现更好)。时间序列数据显示在上面的链接中。 (红线是B,A是没有尖刺的类似形状)。

A_list, B_list, E_list = input()
X, Y = [A + E for A, E in zip(A_list, E_list)], B_list
indim, outdim = len(X[0]), len(Y[0])
network = nl.net.newp([[-1, 1]]*indim, outdim, transf=nl.trans.LogSig())

errors = network.train(norm_X(X),
norm_Y(Y),
epochs=4000, show=1000,
lr=0.01)

其中 norm_X(X) 将 X 缩放到 [-1,1],norm_Y 将 Y 缩放到 [0, 1]。

最佳答案

尝试将 neurolab.net.newfftrain_bfgs 一起使用:

network = nl.net.newff([[-1, 1]]*indim, [10,outdim], transf=nl.trans.LogSig()) 
network.trainf = nl.train.train_bfgs
network.train(...)

使用递归网络你可能会看到:http://packages.python.org/neurolab/ex_newelm.html

关于python - 如何使用神经网络预测峰值(最好在 python 中使用 neurolab 或 pybrain),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10656025/

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