K-en yakın komşusunu python'da hesaplamak istiyorum. hangi kütüphaneyi kullanmalıyım?K en yakın komşu python
cevap
scikit ann'u kullanmanız gerektiğini düşünüyorum.
En yakın neightbour here hakkında iyi bir öğretici var. Belgelere göre
:ann David M. Dağı ve Sunil Arya tarafından geliştirilen Yaklaşık yakın Komşu (ANN) Kütüphanesi (http://www.cs.umd.edu/~mount/ANN/), bir yudum oluşturulan piton sarıcı. ann k-en yakın komşu ve yaklaşık k
scipy.spatial.cKDTree hızlı ve sağlam olduğunu gerçekleştirebilir (YSA ile) bir değişmez kdtree uygulamasını sağlar. NN enterpolasyonu için kullanmayla ilgili bir örnek için, bkz. (Ahem) inverse-distance-weighted-idw-interpolation-with-python SO. Eğer yapmak istediğiniz nedir
(sen daha iyi cevaplar veya kod örneklerini alabilirsiniz, "Ben 3d 1M puan var ve 1k yeni noktaların = 5 yakın komşuları k istiyoruz" mesela söyleyebilseydim.
komşuları bir kez bulduktan sonra?)
FLANN ve scipy.spatial.cKDTree ile karşılaştırmak için bir komut dosyası yazdım, ANN paketleyiciyi derleyemedim. Başvurunuz için neyin işe yaradığını görmek için bunu kendiniz deneyebilirsiniz. CKDTree, FLANN ile test durumum için karşılaştırılabilir bir çalışma süresine sahipti, FLANN ~ 1.25x daha hızlıydı. TestSize artırdığımda FLANN, cKDTree'den ~ 2 kat daha hızlıydı. Standart bir python paketinin parçası olmadığından FLANN'in projeye bağlı olarak entegrasyonunun daha zor olacağı düşünülmektedir.
import cProfile
from numpy import random
from pyflann import *
from scipy import spatial
# Config params
dim = 4
knn = 5
dataSize = 1000
testSize = 1
# Generate data
random.seed(1)
dataset = random.rand(dataSize, dim)
testset = random.rand(testSize, dim)
def test1(numIter=1000):
'''Test tree build time.'''
flann = FLANN()
for k in range(numIter):
kdtree = spatial.cKDTree(dataset, leafsize=10)
params = flann.build_index(dataset, target_precision=0.0, log_level = 'info')
def test2(numIter=100):
kdtree = spatial.cKDTree(dataset, leafsize=10)
flann = FLANN()
params = flann.build_index(dataset, target_precision=0.0, log_level = 'info')
for k in range(numIter):
result1 = kdtree.query(testset, 5)
result2 = flann.nn_index(testset, 5, checks=params['checks'])
import cProfile
cProfile.run('test2()', 'out.prof')
bir kd-ağaç yaklaşımını yapmak arıyorsanız Bu doğal SciPy içinde: http://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.KDTree.html#scipy.spatial.KDTree
- 1. K-en yakın komşu C/C++ uygulaması
- 2. yakın komşu Arama: Python
- 3. Bir k-en yakın komşu grafiğin bağlı bileşenlerinin sayısını bulun.
- 4. Java/Weka'daki k-en yakın komşu için farklı bir mesafe ölçüsü nasıl kullanabilirim?
- 5. Yüksek Boyutlu En Yakın Komşu Arama ve Lokasyon Hassasiyeti Karmalama
- 6. Python/Numpy - Dizini, Bir Değere En Yakın Dizide Bul Bazı Değerlere En Yakın
- 7. Yuvarlatılmış en yakın tam sayı
- 8. En yakın çeyreğe en yakın çeyreğe nasıl taşınır
- 9. Tek bir LINQ sorgusunda en yakın komşu algoritması kullanarak satıcı problemi çözümü için çözüm?
- 10. N-boyutlu uzayda hızlı en yakın komşu araması için tamamen işlevsel bir veri yapısı nedir?
- 11. En yakın zaman damgası
- 12. Yuvarlama en yakın beş
- 13. Belirli bir numaraya en yakın numaraları bulma
- 14. python için SLIME en yakın şey nedir?/EMPOS'tan python kullanmanın en iyi yolu nedir?
- 15. K en yakın noktalar. Zaman karmaşıklığı O (n), O değil (nLogn). Nasıl?
- 16. En Yakın Dışbükey Çokgenleri Birleştir
- 17. jquery: en yakın ('h3') seçici?
- 18. SQLite - en yakın değeri alma
- 19. İki poligonun en yakın noktaları
- 20. javascript - en yakın tam sayıya
- 21. piton grubu en yakın değerlere
- 22. Listeden en yakın tarihi bul
- 23. JavaScript'te En Yakın Eşlik Algoritması
- 24. En yakın komşuları weka kullanarak komut satırından nasıl hesaplanır?
- 25. komşu değerleri
- 26. Bir ipi en soldaki en yakın + ve en yakın + nasıl kırpılır? devam ediyor 4gl
- 27. Yuvarlama y = x * x en yakın
- 28. Python Selenyum add_extensions yakın ekranı
- 29. python 0,1 uzunluğundaki tüm olası kombinasyonlar k
- 30. Geçerli lat ve en yakın Parse API (parse.com) kullanarak en yakın yerler bulmak için Android
1 bu kütüphane ile çalışmak çok kolaydır. –
+1, çok kullanışlı linkler! – juanchopanza
faydalı linkler için – pylover