0

我有一个以一定速率到达的 int 值流。每 5 分钟,我想根据这些值计算一些百分位数,然后重新开始。

问题:我不想浪费太多内存,所以我只想保留几个 KB 的值。如果我的缓冲区在 5 分钟内没有填满,我可以完美地计算百分位数。但是,如果缓冲区确实填满,我想开始删除一些值(可能使用此处建议的水库采样和随机驱逐 - Percentiles of Live Data Capture)。不幸的是,我找不到在这两种情况下都适用的解决方案 - 如果缓冲区未满,我不想驱逐或忽略值,一旦它满了并且我开始驱逐,我总是会引入偏见。

4

1 回答 1

0

好的,我想我想通了——我可以使用算法 R来统一选择传入元素的固定大小的子集。然后我可以从这个子集中计算百分位数。

于 2013-10-26T19:08:37.393 回答