Właśnie skończyłem wdrażanie kd-tree do szybkiego wyszukiwania najbliższego sąsiada. Interesuje mnie zabawa z innymi metrykami odległości niż Euclidean distance. Moje rozumienie drzewa kd jest takie, że szybkie przeszukiwanie drzewa kd nie gwarantuje dokładnych wyszukiwań, jeśli metryka nie jest Euklidesowa, co oznacza, że jeśli chcę spróbować, może potrzebować implementacji nowej struktury danych i algorytmu wyszukiwania. nowe dane dla mojego wyszukiwania.Czy mogę używać dowolnych danych do wyszukiwania drzew KD?
Mam dwa pytania:
- Czy stosując kd-tree trwale wiążą mnie do Euclidean distance?
- Jeśli tak, to jakie inne rodzaje algorytmów powinienem wypróbować dla arbitralnego metrics? Nie mam dużo czasu na implementację wielu różnych struktur danych, ale inne struktury, o których myślę, to: cover trees i vp-trees.
To wspaniała odpowiedź. Czy dane Evert mają powiązane dane? Czy istnieją jakieś reguły dotyczące kształtów odpowiadających różnym metrykom? –
@James: Reguła jest taka, że kształt jest zawsze tworzony przez zbiór punktów znajdujących się w odległości x od punktu zapytania. Np. dla odległości euklidesowej w 2D jest to okrąg; na Manhattan, diament. W przypadku dziwnych danych może to nie być żaden "rozpoznawalny" kształt. –