如何为这个预测示例标注Matlab

时间:2018-08-22 06:33:51

标签: matlab machine-learning deep-learning time-series conv-neural-network

受博客文章http://blog.avenuecode.com/using-deep-convolutional-neural-networks-dcnns-for-time-series-forecasting-using-tensorflow-part-1的启发 在这里,一个耗时的时间序列被转换成图像表示以进行预测,我想知道一个简单的例子,即使用相同的概念来预测该时间序列的下一个值来构建一个益智游戏。但是,时间序列表示为图像。我不明白的是标​​签/预测变量的输出是什么?例如,在以下代码中,图像A后跟B,因为B是在A之后的下一个瞬间生成的。目的是模型应该能够按顺序排列图像以构建拼图。

问题1)在培训期间,标签应该是什么?我将有几个这样的图像。然后,在测试期间,我将弄乱序列,并且模型应该给我正确的顺序,也就是对下一幅图像的预测。那有可能吗?

问题2)我已将图像表示为灰度。是否有更好的可视化丰富多彩的方式,而不仅仅是盐和胡椒的可视化,在视觉上更有意义地进行区分?

非常感谢您的建议

clear all

data=100*rand(3000,1);
x1= data(1:1024);
img1=reshape(x1,32,32);
img11=double(repmat(img1,[1 1 3]));
imwrite(uint8(img11), 'A.jpg');

x2=  data(1025:2048);
img2=reshape(x2,32,32);
img22=double(repmat(img2,[1 1 3]));
imwrite(uint8(img22), 'B.jpg');

1 个答案:

答案 0 :(得分:1)

您要使用时间序列执行预测吗?

好吧,使用图像表示时间序列数据并没有多大意义。您真正想要的只是数据点本身,而不是数据点的某些可视化。有一些神经网络旨在执行时间序列分析的预测,据我所知,没有一个神经网络将图像作为输入。您真正想要的是称为递归神经网络(RNN)的东西。您可能会发现Long Short-Term Memory (LSTM) networks在您的用例中特别有价值。

如果您诚实地忠实于图像,那么我没有足够的经验告诉您什么是最好的方法。但是有research out there that appears to have done thisHere是另一个示例。

  
      
  1. 培训期间,标签应该是什么?
  2.   

好吧,您需要某种编码,您对字母数字序列的建议就足够了;但是使用整数可能会更容易。

  

然后,在测试期间,我将弄乱序列,并且模型应该给我正确的顺序,也就是对下一幅图像的预测。那有可能吗?

当然,为什么这不可能呢?但是以这种方式进行测试存在一个问题,称为信息泄漏。您确实想为分类器提供从原始时间序列中看不到的新图像,然后查看它是否可以预测它在已看到(经过训练)的图像序列中的位置。

  

我已将图像表示为灰度。有没有更好的   可视化的彩色方式,在区分时更有意义   视觉上,而不只是盐和胡椒的可视化?

看看您提供的教程,最终结果是一个二进制值矩阵(0或1)。黑白图像是代表零和一矩阵的自然选择。通过设置灰度,您又向前迈进了一步,现在您正在使用0 - 255数据类型可以实现的所有uint8个可能的像素强度值。您还能做什么明智的可视化?很好,但是不能仅代表数据矩阵。如果希望获得RGB图像,则该过程与灰度图像的过程相同,仅重复3个通道(红色,绿色和蓝色)。但是,在您的问题域中,我真的不知道如何轻松地做到这一点。例如,红色通道是什么构成的?绿色或蓝色呢?这告诉我,您当前的可视化技术可能是一个不错的选择。