我有一个带开/关数据的二进制时间序列数据集。通常是短暂的,因此看起来像一个高峰。这就是它的外观。
我已检测到峰值并提取峰值之间的时间间隔,并且也有数据(底部的小红色2路箭头)。问题在于,可以看出,峰值是聚类的,我希望对突发大小(簇中峰的数量),突发间隔(第一簇的最后一个峰值和第一个峰值之间的距离)进行量化。最后一个集群),没有。爆发等等。
一旦识别出集群,这一切都很容易。这可以通过将峰值间隔阈值化为大于某个值来容易地完成。但是我的所有数据都没有这种定义明确的集群,而且爆发间隔变化很大。有些数据集甚至没有集群。所以我的主要问题是基于一些自动和相对(非固定)阈值来识别集群。
有人可以帮我解决相同的算法。
答案 0 :(得分:0)
您的问题的答案是:否。没有人可以(还)帮助您获得所需的算法。
问题在于你没有很好的量化。当您无法识别群集时,您需要一种可以识别群集的可靠算法。
我之前的回答是建议您查看从一个峰值到下一个峰值的比率。如果该比率高于某个阈值,则它是簇间间隙,否则它是簇内间隙。这可行,但它确实有一个门槛。
问题是 - 你需要一个。你不能只关注每个图表,然后说“噢,那是一个集群。”#34;如果您没有定义群集,则无法识别群集。有一些方法可以使您的阈值更通用;该比率是让您避免扩展问题的简单方法之一,并且通常是有效的。你可以看看滚动平均值。有各种各样的方法可以使用您的数据,但在那里的某个地方,您必须定义您想要的内容。即使你训练了一些人工智能,理想情况下你应该按照固定的标准来做这个问题,关于什么是集群,什么不是。一旦你有了固定的标准,你就不需要人工智能。
因此,定义一个集群。一旦您可以量化集群对您的意义,您就可以为它制定算法。
首先回答这些问题:
如果有帮助,请查看这些简化图,以帮助您提出答案。你能为每一个定义一个集群吗?
..||.|.|.|.||
|.|.|.|.|.|.|
||..||..||..|
||....||....|
|...||||.....