时间序列分类MATLAB

时间:2012-12-18 11:11:45

标签: matlab neural-network time-series classification

我的任务是使用MATLAB和任何神经网络框架对时间序列数据进行分类。

更具体地描述任务: 是计算机视觉领域的问题。是场景边界检测任务。

源数据是来自视频流的4个相邻帧直方图相关阵列。 根据这些数据,我们必须将这个时间序列分为两类:

  • “场景休息”
  • “没有场景休息”

因此,每个源数据条目的网络输入为4个双精度值,输出为一个二进制值。我将在下面展示src数据的示例:

0.997894,0.999413,0.982098,0.992164
0.998964,0.999986,0.999127,0.982068
0.993807,0.998823,0.994008,0.994299
0.225917,0.000000,0.407494,0.400424
0.881150,0.999427,0.949031,0.994918

问题是来自Matlab Neural Toolbox(如patternnet)的模式识别工具威胁源数据,如独立的entrues。但我坚信,只有在根据先前相关性的历史做出决定时,结果才是准确的。

但我也无法从提供时间序列分析的reccurent网络(如delaynet和narxnet)获得有效回应。

narxnet和delaynet返回糟糕的结果,看起来这些类型的网络不应该解决分类任务。我不是在这里插入任何代码,而是使用Matlab Neural Toolbox GUI完全自动生成。

我很感激任何帮助。特别是,一些建议哪种工具更适合完成我的任务。

1 个答案:

答案 0 :(得分:1)

我不确定这个问题的分类有多难。 鉴于您的样本,4输入和1输出前馈神经网络就足够了。

如果您坚持使用历史输入,则只需预处理输入d,以便

您的新输入D(t)(时间为t的向量)由d(t)组成,是时间t的1x4向量; d(t-1)在时间t-1是1x4向量; ... d(t-k)是时间t-k的1x4向量。

如果t-k <0,请将其视为“0”。

所以你有1x(4(k + 1))向量作为输入,1输出。 与Dan提到的类似,你需要找到一个好的k

说到权重,我认为没有必要对输入进行额外的预处理,如窗口化方法,因为神经网络将被训练为每个输入维度分配权重。

听起来有点乱,因为神经网络会独立地考虑每个输入维度。这意味着您将信息丢失为四个相邻的相关性。

一种可能的解决方案是预处理提取邻域特征,例如使用 mean std 作为两个代表原件的功能。