股票数据的图像分类

数据挖掘 机器学习 美国有线电视新闻网 图像分类 金融
2022-03-01 15:25:20

我正在尝试将库存图片分为 4 类:

  • 类别 1:未来 3 天利润超过 10% 的图像模式。
  • 类别 2:未来 3 天利润低于 10% 但高于 0% 的图像模式。
  • 第 3 类:接下来 3 天损失超过 -0.01% 但超过 -10% 的图像模式。
  • 第 4 类:接下来 3 天损失超过 -10% 的图像模式

我将这些图像分为 4 类,以下是第 1 类和第 2 类的图像。

图像包含 10 天的股票走势,分类类别是从接下来 3 天的股票数据生成的。

红条是该股票的交易量。

粉线为 RSI(14)(相对强弱指数)

黄线是股价。

蓝线和绿线分别是移动平均线 10、20。

在此处输入图像描述 在此处输入图像描述

我知道通过看到图像很难区分它们,但这是我试图找出的,我可以使用 CNN 对其进行分类。

我的有线电视新闻网:

  (layer1): Sequential(
    (0): Conv2d(3, 64, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))
    (1): ReLU()
    (2): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
  )
  (layer2): Sequential(
    (0): Conv2d(64, 128, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))
    (1): ReLU()
    (2): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
  )
  (layer3): Sequential(
    (0): Conv2d(128, 256, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))
    (1): ReLU()
    (2): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
  )
  (drop_out): Dropout(p=0.5, inplace=False)
  (fc1): Linear(in_features=65536, out_features=1024, bias=True)
  (fc2): Linear(in_features=1024, out_features=512, bias=True)
  (fc3): Linear(in_features=512, out_features=128, bias=True)
  (fc4): Linear(in_features=128, out_features=4, bias=True)

优化器:Adam,损失:CrossEntropyLoss。

但问题是 CNN 最终为每张图像分类同一类以获得 25% 的准确率。

我的工作方向是否错误,我应该改进数据还是尝试其他技术,如 LSTM?

1个回答

我喜欢这个问题!

潜在的陷阱:

1.架构不够复杂,无法捕捉时间序列图像中的所有细微差别。在这里看看他们为地震时间序列作为图像方法做了什么,或者看看这篇论文您可以从那里获得一些指导,但您会立即注意到架构更大。或者这个

2.数据,你说它只预测一个类,但是它关注的是图像的哪一部分。对要检查的图像使用 shap 值我怀疑以下几点:这将是一些仅对一个类一致的​​趋势,因此您可以考虑可以指向其他类图像属性的预处理步骤。甚至添加一些手工制作的数字特征。无论如何,如果您还没有增加您的数据集,您希望有足够的信息来捕捉所有细微差别。