Python 查询LSTM模型的损失函数(二进制分类)

Python 查询LSTM模型的损失函数(二进制分类),python,tensorflow,keras,cross-entropy,hinge-loss,Python,Tensorflow,Keras,Cross Entropy,Hinge Loss,我正在建立一个LSTM模型,对价格变动进行二元分类 我的训练数据是我模拟的数据,它是一个2000行*3780列的价格变动数据框。 我有一个单独的标签文件,它将价格变动分类为1或2(由于内存) 从我所读到的内容来看,似乎有两个损失函数最适合于二进制分类: 二元交叉熵 铰链损耗 我在GoogleColab中实现了两个独立的LSTM模型,它们按预期运行 我对两个模型都有相同的代码,只是损失函数从前者的平方铰链损失变为后者的二元交叉熵 我的问题是决定哪个模型更好,因为模型输出会产生冲突的输出 铰链损耗输

我正在建立一个LSTM模型,对价格变动进行二元分类

我的训练数据是我模拟的数据,它是一个2000行*3780列的价格变动数据框。 我有一个单独的标签文件,它将价格变动分类为1或2(由于内存)

从我所读到的内容来看,似乎有两个损失函数最适合于二进制分类:

  • 二元交叉熵
  • 铰链损耗
  • 我在GoogleColab中实现了两个独立的LSTM模型,它们按预期运行

    我对两个模型都有相同的代码,只是损失函数从前者的平方铰链损失变为后者的二元交叉熵

    我的问题是决定哪个模型更好,因为模型输出会产生冲突的输出

    铰链损耗输出:

    培训产出:

  • 损失从0.3开始,然后到0.20,在剩下的98个历次中几乎保持不变
  • 各时期的MSE确实略有下降,从最后的2.8降至1.68。平均MSE=1.72
  • 每个历元的精度为0.00(我不明白)
  • 验证输出:

  • 验证损失从0.0117开始,到最后达到9.8264e-06
  • 验证MSE从2.4开始,到1.54结束。平均验证MSE=1.31
  • 每个历元的验证精度为0.00(我也不明白)
  • 二进制交叉熵损失输出:

    培训产出:

  • 损失从8.3095开始,然后在之后上升到3.83,在剩下的97个纪元中几乎保持不变
  • 各时期的MSE确实略有下降,从最后的2.8降至1.68。平均MSE=1.69
  • 精度从0.00开始,到最后增加到大约0.8
  • 验证输出:

  • 验证损失从-0.82开始,到最后达到-0.89
  • 验证MSE从1.56开始,到1.53结束。平均验证MSE=1.30
  • 验证精度从0.00开始,到年底增加到大约0.997
  • 所以,我现在有一个问题:

    为什么SHL模型的精度为0.00?我的模型有错误吗

    我的代码保存在此处:

    培训数据*和标签数据保存在以下位置:

    *由于Github将文件大小限制为25 mb,此处的培训数据被拆分为两个单独的文件

    任何帮助都将不胜感激


    谢谢。

    我投票结束这个问题。仅供参考,结束问题的一个原因是该问题目前包含多个问题。它应该只关注一个问题。我现在已经编辑了,谢谢你让我知道。