場所の保存とクエリアルゴリズムを理解していますか?


9

GISを備えたデータベースの最も重要な側面の1つは、追加の基準に一致する任意の地理的領域内のすべてのポイントをすばやくクエリできる機能をユーザーに提供することです。(たとえば、「地図上でこの場所に最も近い3つのレストランを見つけてください。」)

関係するアルゴリズムの理論的な議論を誰かに教えてもらえますか?私はそれらがどのように機能するかを学びたいです。

最終的に、私は同じ機能を一般化された数値データのセット(任意のn次元の非ユークリッド空間の点群)に適用したいと考えています。たとえば、人の顔は数値のベクトルとして特徴付けることができます:[目の間の距離、目から口までの距離、顔の幅、顔の長さなど]。歩道の交通量を撮影し、各人物の顔の特徴を推定して、後で「この人物の顔を与えれば、最も似ている100人の顔を見つけてくれ」などのデータをクエリできるようにしたいと考えています。

現在、これらの一般化されたスペースを検索する機能を提供する既存のソフトウェアはありますか?

回答:


4

2次元と3次元のアルゴリズムの優れた説明は、Preparata&Shamosによる古典的なテキストに記載されています。GISで使用されるアルゴリズムは、このテーマに関する複数の書籍を出版しているHanan Sametの専門です。

高次元の検索は、通常、予備的なデータマイニング、クラスタリング、または次元削減手法によって支援または高速化されます。これは、GISの問題ではなく、データ分析と統計の問題であり、本質的に1から4のユークリッド次元の検索に焦点を当てています。詳細については、姉妹フォーラムstats.stackexchange.comで、クラスタリング次元削減多次元スケーリングなどの可能性の高い用語や、pca(主成分分析)やsvm(サポートベクターマシン)などのあまり目立たない用語を検索してください。また、既存のソフトウェアについて質問するのにも適しています。


4

古典的な(古地理学者)答えは、KDツリーを使用してデータを格納することです(http://en.wikipedia.org/wiki/Kd-treeを参照)。これらは、ツリーを下に移動するときに、データを各ディメンションの2つのパーティションに大まかに半分にすることで機能します。それらの利点は、最も近いアイテムを見つけると、追加費用なしで行くときに最も近いアイテムのリストを作成することもできるので、3つの最も近いレストランは何であるかという答えは、最も近いものを見つけるのと同じくらい簡単です。

eHarmonyが14次元で「互換性のある一致」を見つけるためにKDツリーを使用することをどこかで読みました。


+1効率的な検索方法の簡潔で明確な説明が適切に行われている。
whuber

2

Netezzaが革新空間並列処理アルゴリズムをいくつか実装していると聞きました。ホワイトペーパーはこちらです。

Netezzaの非対称大規模並列処理アーキテクチャは、対称型マルチプロセッシング(SMP)と超並列処理(MPP)の最適な組み合わせを提供し、従来のシステムで必要な複雑さ、調整、集計なしに、空間データと非空間データの両方のテラスケール、複雑なクエリ処理を容易にします。

更新

Netezzaはベイズの定理を多用していることを忘れていました。こちらが動画のコレクションです

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.