申し訳ありませんが、この投稿はコーディングには関係ありませんが、データ構造とアルゴリズムに関連しています。それぞれ異なる周波数を持つ大量のデータがあります。おおよその図のプロットは、ベル曲線のようです。ここで、範囲の頻度を最も正確に表す範囲内のデータを表示したいと考えています。たとえば、データの範囲全体には合計数があります。ただし、この範囲またはバケット サイズは正確ではなく、より正確になる可能性があります。(たとえば、一部のデータが特定の周波数ゾーンにより集中している場合、データ サイズは小さくても、より密接に関連する周波数を持つバケットを構築できます。)
いくつかのアルゴリズムに関するヘルプ。二分探索に関するアルゴリズムを考えてみました。どんなアイデアでも。
2 に答える
私がフォローしているかどうかはわかりませんが、k
Bean を探しているようです。2 つの Bean ごとに、データが 1 つの Bean に含まれる確率は、もう 1 つの Bean に含まれる確率と同じです。
あなたの説明から、データは正規分布またはT 分布のようです。
データの平均と標準偏差を評価できます。抽出された SDs
を 、平均を としますu
。
サンプルから平均値と SD を評価するための標準式は1です。
u = (x1 + x2 + ... + xn) / n (simple average)
s^2 = Sigma((xi - u)^2)/(n-1)
この情報があれば、データの分布を評価できますN(u,s^2)
。この情報があれば、ランダム変数を作成できます: X~N(u,s^2)
2
あとは、次のように a、b、... を見つけるだけです (10 個のバケットを想定すると、これは明らかに必要に応じて変更できます)。
P(X<a) = 0.1
P(X<b) = 0.2
P(X<c) = 0.3
...
a、b、c、...を見つけた後、あなたはあなたの豆を持っています:(-infinity、a]、(a、b]、(a、c]、...
(1) 分散の評価: http://en.wikipedia.org/wiki/Variance#Population_variance_and_sample_variance
(2) この変数の実際の分布は実際には t 分布です。分散は未知であり、データから抽出されるためです。ただし、十分に大きい場合、n
t 分布は正規分布に減衰します。
最初にすべてのインデックスを数えてから、繰り返し値を差し引きます。これにより、最適なバケット数が得られます。でも小さいレベルで