次のプロパティを持つ測定値のリストがあります。
- 測定は高価です。測定が少ない -> より良い
- それらはすべてポジティブです。実際、正の下限があり、それ以下の値を取得することはできません。この下限は、自信を持って知る必要があるものです。
- それらは、1 つ以上の中央値の周りに分布します
median - 2*variance
「最良の」中央値と下限の間の距離が常に正規分布の幅の 2 倍よりも小さいため、外れ値を見つけると、別の「より良い」中央値があることがわかります。
目標: 反復回数が最小で、信頼度が 90% の最適な中央値を見つけます。
私は最小値を好みますが、最小の中央値で十分です。
私が探しているのは、測定値をフィードし、中央値と、この中央値が私が求めているものであるという自信の程度を教えてくれるコードです。
背景: Java メソッドの時間を測定したい。異常値を平均化するために数分間テストを実行することもできますが、データを見ると、値が中央値の周りに急速に蓄積されることが人間には明らかです。
JITが作動して中央値が突然ジャンプしない限り。最終的には、最小の中央値の左側が非常に急な曲線 (つまり、中央値の左側の分散が小さい) になり、右側は長くて緩やかな勾配になり、pre-JIT が中央値でした。
testConnect-count.csv
は値のヒストグラム、testConnect-history.csv
は一連の測定値です。115000
目標は、から最小数の値を読み取ることによって、より小さな中央値を返すアルゴリズムを見つけることです。testConnect-history.csv