大脑皮层预测E

2024-10-02 02:43:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图预测一套商品的销售价格。我正在pybrain中使用RecurrentNetwork和BackpropTrainer。这是我的密码

def nnet(train, target, valid):

    ds = Superviseddataset(52-len(NU)+5, 1)

    for i in range(len(train)):
        ds.appendLinked(train[i], target[i])

    n = RecurrentNetwork()

    n.addInputModule(LinearLayer(52-len(NU)+5, name='in'))
    n.addModule(SigmoidLayer(3, name='hidden'))
    n.addOutputModule(LinearLayer(1, name='out'))

    n.addConnection(FullConnection(n['in'], n['hidden'], name='c1'))
    n.addConnection(FullConnection(n['hidden'], n['out'], name='c2'))
    n.addRecurrentConnection(FullConnection(n['hidden'], n['hidden'], name='c3'))

    n.sortModules()

    t = BackpropTrainer(n,learningrate=0.001,verbose=True)
    t.trainOnDataset(ds, 20)

    prediction = np.zeros((11573, 1), dtype = int)
    for i in range(11573):
        prediction[i] = n.activate(valid[i])

    return prediction

在这里,train和target是numpy数组,用来训练模型,52 len(NU)+5是属性(特征)的个数,对于每一个有效的商品我们都要预测销售价格。问题是,每一件有效的商品,除了第一件以外,我都能得到相同的销售价格。我做错了什么?提前谢谢。在

阵列尺寸如下所示

列车-401125,52 len(NU)+5

目标-401125,1

有效-11573,52 len(NU)+5


Tags: nameintargetlendstrainhiddennu
1条回答
网友
1楼 · 发布于 2024-10-02 02:43:28

我不确定PyBrain的具体实现细节,但我看到了两种可能性。在

1)反向传播不适用于线性激活函数。根据PyBrain的实现细节,将“LinearLayer”的两个实例更改为“SigmoidLayer”可以解决此问题。在

2)对于递归神经网络,您必须使用通过时间的反向传播(一种特别适用于RNN的算法)而不是常规的反向传播。根据PyBrain的实现细节,这个变体可能有一个单独的类。值得一看。在

相关问题 更多 >

    热门问题