Konum depolama ve sorgu algoritmalarını anlıyor musunuz?


9

CBS donanımlı bir veritabanının en önemli yönlerinden biri, kullanıcıya, bazı ek ölçütlere uyan bazı keyfi coğrafi alanlardaki tüm noktaları hızlı bir şekilde sorgulama yeteneği sağlamasıdır. (Örn. "Haritada bu noktaya en yakın 3 restoranı bul.")

Birisi beni ilgili algoritmalar hakkında teorik bir tartışmaya yönlendirebilir mi? Nasıl çalıştıklarını öğrenmek istiyorum.

Nihayetinde, aynı yeteneği genel sayısal veri kümelerine uygulamak istiyorum - keyfi, n boyutlu, öklidyen olmayan bir alanda büyük bir nokta bulutu. Örneğin, bir kişinin yüzü bir sayı vektörü olarak karakterize edilebilir: [gözler arasındaki mesafe, gözden ağza mesafe, yüz genişliği, yüz uzunluğu vb.]. Kaldırım trafiğini filme almak, her kişinin karşılaştığı özellikleri tahmin etmek ve daha sonra "bu kişinin yüzü göz önüne alındığında, bana en çok benzeyen 100 yüzü bul" gibi verileri sorgulamak istiyorum.

Şu anda bu genelleştirilmiş alanlarda arama yapabilen herhangi bir yazılım var mı?

Yanıtlar:


4

Klasik metinde Preparata & Shamos'un 2 ve 3 boyutlarındaki iyi algoritma açıklamaları görünür . CBS'de kullanılan algoritmalar , konuyla ilgili birçok kitap yayınlayan Hanan Samet'in uzmanlık alanıdır .

Daha yüksek boyutlu aramalar genellikle ön veri madenciliği, kümeleme veya boyut küçültme teknikleri aracılığıyla desteklenir veya hızlandırılır. Bu daha çok bir veri analizi ve istatistik meselesidir, doğası gereği bir ila dört Öklid boyutunda aramalara odaklanan CBS değil. Daha fazla bilgi için, kardeş forum forumlarımızda.stackexchange.com'da kümeleme , boyutsallık azaltma ve çok boyutlu ölçekleme gibi olası terimler ve pca (temel bileşenler analizi) ve svm (destek vektör makineleri) gibi daha az belirgin olan terimler için arama yapın . Aynı zamanda mevcut yazılım hakkında soru sormak için de iyi bir yerdir.


4

Klasik (paleocoğrafyacı) yanıtı, verileri depolamak için bir KD ağacı kullanmaktır (bkz. Http://en.wikipedia.org/wiki/Kd-tree ). Bunlar, ağacı aşağı doğru hareket ettirirken verileri her bir boyutta kabaca iki bölüme ayırarak çalışır. Bunların avantajı, en yakın öğeyi buldukça, ek bir ücret ödemeden gittiğinizde en yakın öğelerin bir listesini de oluşturabilmenizdir, bu yüzden en yakın üç restoranın ne olduğunu cevaplamak en yakın olanı bulmak kadar kolaydır.

EHarmony'nin 14 boyutta "uyumlu eşleşmeler" bulmak için KD ağaçlarını kullandığı bir yerde okudum.


+1 Etkili bir arama yönteminin kısa ve net açıklaması gayet güzel bir şekilde yapılır.
whuber

2

Netezza'nın bazı yenilikçi uzamsal paralel işleme algoritmaları uyguladığını duydum . Teknik inceleme burada .

Netezza'nın Asimetrik Kütle Paralel İşleme mimarisi, geleneksel sistemlerde gerekli karmaşıklık, ayarlama ve toplama işlemleri olmadan terascale, karmaşık sorgu işlemeyi kolaylaştıran, simetrik çoklu işleme (SMP) ve kütle paralel işlemenin (MPP) en iyi kombinasyonunu sağlar.

Güncelleme

Netezza'nın Bayes Teoreminden büyük oranda faydalandığını belirtmeyi unuttum . İşte burada bir video koleksiyonu .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.