适用于时态数据的聚类技术?

机器算法验证 机器学习 聚类
2022-03-18 07:31:26

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

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

下面是我想象的数据/集群类型的图示:跨时间聚类

4个回答

从我自己的研究看来,高斯隐马尔可夫模型可能很合适: http ://scikit-learn.org/stable/auto_examples/plot_hmm_stock_analysis.html#example-plot-hmm-stock-analysis-py

它似乎确实找到了不同的活动片段。

高斯隐马尔可夫模型

您的问题听起来与我正在查看的问题和这个问题类似,但解释得不太清楚。

他们的答案链接到关于变更检测的一个很好的总结。对于可能的解决方案,快速谷歌搜索发现谷歌代码上的变更点分析包。R 也有一些工具可以做到这一点。bcp软件包非常强大且非常易于使用。如果您想在数据进入时即时执行此操作,论文“在线变化点检测和参数估计与基因组数据的应用”描述了一种非常复杂的方法,但请注意它有点挑战性。还有这个strucchange包,但这对我来说效果不太好。

小波可以帮助您识别具有不同属性的周期。但是,我不确定是否有方法可以将您的时间序列划分为离散的时间段。似乎有很多理论需要探讨,而我才刚刚开始。我期待着阅读其他建议..

关于小波的免费介绍性书籍章节。

用于小波显着性测试的 R 包。

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

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

此外,还有另一种方法(可能)通过应用 sequitur http://sequitur.info 来做到这一点。如果您能够很好地规范化/近似您的数据,它将为您提供那些“具有相似活动水平的不同时间段”的语法,请参阅本文并搜索另一篇论文,因为我无法添加更多链接......