RNN LSTM Keras自定义丢失功能

时间:2018-01-29 09:23:09

标签: tensorflow deep-learning keras lstm rnn

我从Keras和TensorFlow开始。

我有一个关于股票价格数据集的LSTM模型。 我不希望我的模型学会预测像今天这样的后续步骤。我希望我的模型在每一步都学习,如果它必须购买,出售或什么也不做,多少。

我认为我需要制作一个自定义损失函数,但我真的不知道如何编写我的概念:买入,卖出,没有,以及在开始时基于100个单位的资本有多少。目标是最终获得最高资本。

  • 我必须使用一个existant功能并像MSE一样定制它吗?如果是,怎么样?
  • 我必须让我的模型学习时间序列并在添加买/卖层后?如果是,怎么样?
  • 其他?

我很失落。

非常感谢你的帮助。

萨姆

2 个答案:

答案 0 :(得分:1)

我会尝试categorical cross-entropy,

我的意思是你有三个选择:买(0),卖(1),什么都不做(2)。你可以这样编码:

[1,0,0] < - means 'buy'
[0,1,0] < - means 'sell'
[0,0,1] < - means 'do nothing'

并且不要忘记在你NN的末尾添加softmax功能。

答案 1 :(得分:0)

据我所知,我们有股票价格数据集,在每一点上,我们都需要预测决定买入/卖出/没有。

对于每个点,我们应该决定一个窗口大小,我们认为这会影响当前点。 使用此窗口作为LSTM图层的时间序列输入。使用移动窗口,我们可以创建多个输入。相应的输出将是决定,可以采取3位编码。

  1. 对于时间点t,使用时间序列(0..t-1)作为输入。并决定[0,0,1]或[0,1,0]或[1,0,0]作为输出。该模型将学习预测每个决策的概率。
  2. 如计算损失,categorical cross entropy将非常有用,如Paddy所述。
  3. 此外,如果您还没有查看预处理数据,那么在这种情况下,取消数据的处理非常有用。这个link可能很有用。