0

データポイントの追加/削除を使用して、大量のデータサンプルセットの分位数を再計算するのではなく更新できる Java ライブラリはありますか? 私の推測では、効率的なアルゴリズムでは、更新に一定の時間がかかるはずです (既存のポイント数の関数ではありません)。

既知のアルゴリズムがリストされていますが、サンプル セットからポイントを削除する方法はありません。

  • Colt Stream Quantiles : これには、一度追加されたデータを削除する方法がありません
  • Apache Math Percentile : これは単に配列の分位数を計算するだけで、配列からデータを削除する方法はありません。

ここに問題の例があります: たとえば、一連の風車の任意ではあるが一定のパーセンタイル ファン速度を (風速の推定として) 計算したいとします。ファンの速度は、数ミリ秒ごとに非同期で更新されます。このライブラリを使用すると、中央値を再計算することなく、一度に 1 つの風車の風速を更新できます。

4

2 に答える 2

2

データの更新可能な並べ替えられた表現を維持する場合、配列の長さを使用するだけで分位数を簡単かつ効率的に取得できます。たとえば、N 個の要素がある場合、中央値は N/2 の位置になります。データ構造に新しい要素を挿入しても、これは保持されます。効率は、新しい要素の挿入にのみ依存します。

于 2012-10-17T17:03:58.597 に答える
1

複数のデータのバッチを持つことができます。これらのバッチのパーセンタイル/四分位数を組み合わせて、集計を推定できます。利点は、他のバッチを再計算することなく、多数のバッチを効率的に破棄できることです。

于 2012-10-17T16:46:00.457 に答える