我正在使用Flot Charts编程线图来显示时间序列。
为了减少要显示的点数,我通过在同一小时内对每个数据点应用平均函数来进行下采样。
最近,我发现了最大三角三桶算法:http://flot.base.is/
1:就我的目的而言,平均值的问题在于它们核对了样本之间的巨大差异 - 我的峰值和谷值比它们之间发生的更重要。 3buckets算法的目的是试图保留那些拐点(峰值/谷值),同时不必担心数据相似或相同的所有时间。
因此,在我的情况下,数据通常都是相同的(或足够接近 - 温度数据),直到样本X,在图中显示一个小的%变化很重要,因此桶算法是完美的。
此外 - 由于存储桶算法已参数化,您可以更改值(要保留的数据量)并查看哪些值可以查看最多的数据,同时在视觉上几乎相同,并确定在图表之前可以省去多少数据删除了大量数据。
天真的方法是抽取(从N个样本中删除X)但是如果它是你关心的异常值并且算法核算异常值会发生什么?那么你就改变你的抽取,这样如果差异很大,那么它就不会对那个样本进行核实。这是该概念的更复杂版本。
2:取决于您可以多快地计算所有数据,如果数据发生变化,还有其他各种因素。随你(由你决定。从我的角度来看,一旦我的数据在过去并且“选择”样本来表示桶的值,它将不会被更改,我可以保存它并且不会再次重新计算。
既然你的问题有点老了,你最终会做什么?