規則的な密度でポイントのサブセットを選択するにはどうすればよいですか?より正式には、
与えられた
- 不規則な間隔の点のセットA 、
- 距離のメトリック
dist
(たとえば、ユークリッド距離)、 - および目標密度d、
以下を満たす最小のサブセットBを選択するにはどうすればよいですか?
- Aのすべての点xについて、
- Bに点yが存在する
- これは
dist(x,y) <= d
私の現在のベストショットは
- A自体から始める
- 最も近い(または特に近い)2つのポイントを選択します
- それらの1つをランダムに除外します
- 条件が成立する限り繰り返す
幸運を祈って、手順全体を繰り返します。しかし、もっと良い方法はありますか?
私は280,000の18-Dポイントでこれを行おうとしていますが、私の質問は一般的な戦略です。ですから、2Dポイントでそれを行う方法も知りたいです。そして、私は本当に最小のサブセットの保証を必要としません。どんな便利な方法でも大歓迎です。ありがとうございました。
ボトムアップ方式
- ランダムな点を選択します
- 選択されていないものの中から
y
最大のものをmin(d(x,y) for x in selected)
選択します - 立ち止まるな!
これをボトムアップと呼び、最初にトップダウンで投稿したものと呼びます。これは最初ははるかに高速なので、スパースサンプリングの場合はこれが良いはずですか?
パフォーマンス測定
最適性の保証が必要ない場合は、次の2つの指標が役立つと思います。
- カバレッジの半径:
max {y in unselected} min(d(x,y) for x in selected)
- 経済の半径:
min {y in selected != x} min(d(x,y) for x in selected)
RCは最小許容dであり、これら2つの間に絶対的な不等式はありません。しかしRC <= RE
、より望ましいです。
私の小さな方法
その「パフォーマンス測定」の少しのデモンストレーションのために、均一にまたは標準の正規分布によって分布された256の2Dポイントを生成しました。次に、トップダウンとボトムアップの方法を試してみました。そして、これは私が得たものです:
RCは赤、REは青です。X軸は選択したポイントの数です。ボトムアップも同じくらい良いと思いましたか?アニメーションを見てそう思ったのですが、トップダウンの方がかなりいいようです(まばらな領域を見てください)。それにもかかわらず、それがはるかに高速であることを考えると、それほど恐ろしいことではありません。
ここにすべてを詰め込みました。
http://www.filehosting.org/file/details/352267/density_sampling.tar.gz