【问题标题】:Unstable behavior of RNNRNN 的不稳定行为
【发布时间】:2019-08-02 14:12:57
【问题描述】:

我正在用一些财务数据训练 LSTM 模型。不能透露数据细节,因为它是真实的贸易数据。我面临的问题是,在训练 Keras 时,会打印出日志,其中包含与训练和测试损失、准确性相关的信息。在这些日志中,我的测试准确度是 56%,有时甚至在它附近。但是对于评估,我创建了一个简单的函数,它对测试数据进行预测,然后使用 sklearn 准确度分数打印出预测的准确度。现在,这个准确率是 24%,有时甚至更差。可能是什么原因?我 100% 确定测试数据是相同的,并且我的代码中没有错误。我能做些什么来获得好的结果?我已经尝试过调整学习率、模型架构、层、优化器、梯度裁剪等,但我仍然得到相同的行为。

我正在添加日志和混淆矩阵的图像。

【问题讨论】:

  • 混淆矩阵从何而来? sklearn? keras 一样的结果怎么样?
  • 是的,混淆矩阵来自sklearn。
  • 有点想看看 Keras 的混淆矩阵
  • 准确性(以及因此的混淆矩阵)未定义回归问题,例如您的问题;请参阅What function defines accuracy in Keras when the loss is mean squared error (MSE)?中的答案
  • 准确度广告混淆矩阵也不适用于我的代码中的回归问题。我试图做的是预测交易者的交易量和下一步行动是买入还是卖出。问题主要在于日志和混淆矩阵中的动作输出准确性。

标签: python tensorflow machine-learning keras recurrent-neural-network


【解决方案1】:

我 100% 确定测试数据是相同的,并且我的代码中没有错误。

如果我错了,请纠正我:如果我理解正确,您已将数据分为两部分:训练和测试。您正在使用 Keras 指标对测试数据执行验证,然后还使用返回不同结果的 sklearn 进行验证。您似乎对自定义损失/度量函数有回归问题。

您是否考虑过手头可能有不同的精度计算公式? 例如,一个公式可以是min(prediction, target)/max(prediction, target),而另一个公式是1-(abs(prediction - target)/target)

【讨论】:

  • 不,我不这么认为。但是,即使精度公式不同,它们不应该返回相同的数字或至少是彼此接近的数字吗?以前我也对其他一些数据集做同样的事情,在那个数据中,我使用 sklearn 在日志和函数中获得了相同的准确性。
  • 尝试将您的输出线性缩放 10 倍,看看这如何影响您的指标。对于回归问题,以百分比计算准确率并不容易,而且指标通常代表不同的值。
  • 以上准确率是针对分类问题的。它不适用于回归问题。
猜你喜欢
  • 2011-01-27
  • 1970-01-01
  • 2012-04-24
  • 2011-04-24
  • 2015-08-19
  • 2020-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多