时间序列分类 MATLAB
Posted
技术标签:
【中文标题】时间序列分类 MATLAB【英文标题】:Time series classification MATLAB 【发布时间】:2012-12-05 13:59:05 【问题描述】:我的任务是使用 MATLAB 和任何神经网络框架对时间序列数据进行分类。
更具体地描述任务: 是计算机视觉领域的一个问题。 Is 是一个场景边界检测任务。
源数据是来自视频流的 4 个相邻帧直方图相关性数组。 根据这些数据,我们必须将此时间序列分为 2 类:
“场景中断” “没有场景中断”因此,每个源数据条目的网络输入是 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 神经工具箱的模式识别工具(如 patternnet)威胁源数据,如独立实体。但我坚信只有在 net 根据之前相关性的历史做出决定时,结果才会准确。
但我也未能从提供时间序列分析的递归网络(如延迟网络和 narxnet)获得有效响应。
narxnet 和 delaynet 返回糟糕的结果,看起来这些类型的网络不应该解决分类任务。我没有在这里插入任何代码,而它几乎完全是使用 Matlab Neural Toolbox GUI 自动生成的。
我会很感激任何帮助。特别是一些建议,哪种工具更适合完成我的任务。
【问题讨论】:
添加以前的步骤数据作为附加输入... @Dan,感谢您的回复。但我不确定是否可以为其他输入设置权重。因此,如果我们处理 n 个条目,来自 n-1 的值应该比来自 n-10 的值具有更大的影响,并且比来自 n 的值的影响更小。我认为有一些特殊类型的网络可以完成这样的任务。 您可能不需要 n-10 数据,这当然取决于您要建模的系统。首先提供所有 t = n 和 t = n - 1 数据作为输入。然后尝试添加 t = n - 2。如果这不会导致明显的改进,那么您只需回到 t - n。但是您可以将其建模为一阶系统,因此您只需要 n 和 n-1 个数据作为输入。 @Dan,这个神经网络正在开发用于这个分类任务,而不是adaptiveThreshold(以前的解决方案)。测试表明,我在滑动窗口大小 = 30 时获得的最大精度。所以,我确信我的任务需要 n-10 个数据,甚至可能更多。 我正在研究“时间序列降雨数据的模式识别”......以及matlab中的新手......请您提供您程序的matlab代码......我很确定它会帮助我很多 【参考方案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 作为代表原件的两个特征。
【讨论】:
谢谢。虽然你和丹对可能的方法有相同的看法,但我会同意你的看法,并根据你的建议实施网络。以上是关于时间序列分类 MATLAB的主要内容,如果未能解决你的问题,请参考以下文章