适当的时间数据聚类技术?


13

我有活动频率的时间数据。我想识别数据中的群集,这些群集指示具有相似活动级别的不同时间段。理想情况下,我想在先验指定集群数量的情况下识别集群。

什么是合适的聚类技术?如果我的问题没有足够的信息来回答,那么确定适当的聚类技术需要提供哪些信息?

以下是我正在想象的数据/集群类型的说明: 跨时间聚集


对我来说,情节看起来很平滑(内插)。那可能是误导。我将“纵向”与地理数据相关联,但是显然您正在查看时间序列?
已退出–Anony-Mousse 2012年

1
不要过多地关注情节,这只是一个例子。我要实现的是基于随时间变化的变量来识别不同的时间段。我认为纵向与时间数据相同,请参见例如en.wikipedia.org/wiki/Longitudinal_study
histelheim 2012年

因为在群集中,您将在en.wikipedia.org/wiki/Longitude中看到该术语的大部分内容-从您的问题来看,您不清楚要群集的是什么。您可以聚类例如跨“主题”表现相似的时间间隔,或随时间推移显示相同进度的主题。
已退出–Anony-Mousse 2012年

1
为了避免混淆,我将“纵向”更改为“时间”。用你的话说,我想我想对时间间隔进行聚类。但是,对我来说重要的是,这些星团是截然不同的连续时间片段。
histelheim 2012年

使用“时间序列细分”或“体制转换模型”关键字进行搜索可能会有所帮助。
伊夫2012年

Answers:


6

从我自己的研究看来,高斯隐马尔可夫模型似乎是一个很好的选择:http : //scikit-learn.org/stable/auto_examples/plot_hmm_stock_analysis.html#example-plot-hmm-stock-analysis-py

似乎确实发现了不同的活动情节。

高斯隐马尔可夫模型


您是否不必提前知道有多少个隐藏状态?有办法解决这个问题吗?
JCWong

@JCWong我想您可以使用非参数贝叶斯变体(无限隐马尔可夫模型)来避免这种情况。
jtobin 2012年

不久之后:HMM似乎并没有暂时对事件进行聚类/分组(从图中看起来)。但是,人们问的是如何获得时态聚类?我只是在好奇,因为我正在研究时态聚类的东西。
RussellB

3

您的问题听起来与我正在寻找的问题相似,并且这个问题与之相似,但解释得不太好。

他们的答案链接到有关变更检测的良好摘要。对于可能的解决方案,谷歌快速搜索发现谷歌代码上的变更点分析包。R也有一些工具可以做到这一点。该bcp软件包非常强大,并且非常易于使用。如果您想随数据的变化而即时进行,论文“在线变更点检测和参数估计及其在基因组数据中的应用”描述了一种非常复杂的方法,尽管要警告一点它具有挑战性。也有strucchange包装,但是对我来说效果不太好。



1

您是否看到过以下页面:UCR时间序列分类/聚类页面

在那里,您可以找到两者:用于实践的数据集和已发布的结果-比较您自己的实现的性能(在知名机器学习技术的已知性能上也有链接)。此外,此页面引用了大量论文,您可以从中继续进行研究,以找到适合您的问题,数据或需求的最佳方法。

此外,还有另一种方法(可能)通过应用sequitur http:// sequitur.info来执行此操作。如果您能够很好地对数据进行规范化/近似化,它将使您的那些“具有类似活动水平的不同时间段”的语法参见本文并搜索另一篇文章,因为我无法添加更多链接...


3
您能否提供此页面上可用资源的简短摘要?
chl 2012年

我当然可以。从那里开始,我编写了自己的分类器
seninp 2012年

1

我认为您可以使用动态时间包装来寻找不同时间序列之间的相似性。为此,您可能需要将小波离散化为集合,例如数组。但是粒度将是一个问题,如果您有大量的时间序列,则计算每对DTM距离的计算成本将非常大。因此,您可能需要一些预选才能用作标签。

检查这个出来。我也在做像您这样的任务,此页面对我有所帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.