从时间序列数据进行基于相位的事件检测
Posted
技术标签:
【中文标题】从时间序列数据进行基于相位的事件检测【英文标题】:Phase based event detection from time-series data 【发布时间】:2014-10-19 02:05:43 【问题描述】:我有一个代表各种事件的大型时间序列数据(一维浮点数组)。类似的事件有类似的阶段。但是,我不知道那段时间发生了多少事件。是否可以编写一个程序(最好在 python 中)来识别代表相同事件的相似阶段(可能是通过着色它们)。
最后,我想绘制与时间戳相关的时间序列数据,每个阶段的颜色不同(基于它们的事件)。
非常感谢任何帮助。
谢谢
【问题讨论】:
如果您可以通过查看数据轻松识别阶段,则可能可以编写一个程序来做到这一点。你能想出什么规则来识别不同的阶段?您能否通过一些示例数据缩小问题范围并确定哪些步骤给您带来了麻烦? 这个问题和你的另一个问题***.com/questions/25344895/…有密切关系吗? @Justin,无法通过查看数据来识别数据,并且存在一些突然的快速变化,这些变化是异常值,需要消除。对于实例数据=[.04 .05 .06 4.3 3.2 .01 .03 1.2 1.5 1.6]。在这里我们可以看到 4.3、3.2 是异常值,应该被剔除。是的,我用收集的数据集尝试了 k-means,但它无法提取相位。信号幅度可以衡量相位变化。在示例数据中应该有两个阶段。如果您想了解更多详细信息,请告诉我。谢谢! 对我来说,这听起来更像是一个一维信号处理问题,而不是聚类/数据挖掘问题,尽管如此,您包含的关于信号性质的信息非常有限让你很难说 - 或帮助你。 【参考方案1】:听起来您可能需要使用聚类算法来确定一个组的结束位置和另一组的开始位置。 K-means 非常简单,而且,如果你有使用 Python 的经验,你可能可以在几个小时内自己编写一个实现。
幸运的是,scikit
背后的人已经提供了一些fantastic implementations。其中之一可能会满足您的需求。同样,k-means 是最简单的,您可能希望从它开始,直到您对它有所了解。
【讨论】:
scikit-learn
。有很多scikit
s:scikits.appspot.com/scikits以上是关于从时间序列数据进行基于相位的事件检测的主要内容,如果未能解决你的问题,请参考以下文章