Вопрос с этим вопросом - «произвольная метрика». Если вы не знаете, что это такое, это просто способ измерения расстояния между точками. (В «реальном» мире 1-мерное расстояние - это просто абсолютная величина разницы между двумя точками).Самый быстрый k ближайший сосед с произвольной метрикой?
Достаточно пред-lims. Я пытаюсь найти быстрый К ближайшему соседу алгоритма с этими свойствами:
- работ по произвольной метрике
- несколько легко реализовать
- оптимизированы для нахождения расстояния из набора точек в другой набор пунктов
Wikipedia дает список алгоритмов и подходов, но ничего не касается реализации.
ОБНОВЛЕНИЕ: метрика - это сходство с косинусом, которое делает не удовлетворительным качеством треугольника. Однако кажется, что я могу использовать «угловое сходство» (согласно Википедии).
ОБНОВЛЕНИЕ: прецедент естественный язык обработка. «Векторы» - это «контекст» данного слова, представленный двоичными свойствами (например, название документа). Таким образом, хотя может быть только несколько свойств (сейчас я просто использую 3), каждый вектор имеет произвольно большую размерность (в примере заголовка каждый заголовок в базе данных будет соответствовать размеру в векторе).
UPDATE: Для любопытных, я реализующая этот алгоритм:
http://josquin.cs.depaul.edu/~mramezani/papers/IEEEIS.pdf
UPDATE: Алгоритм нужно будет найти ближайших соседей для около десятка пунктов приблизительно 100s точек. Среднее измерение, вероятно, будет очень большим, скажем, 50, (я действительно еще не знаю). И да, меня интересует алгоритм, а не библиотека. И да, оценки, вероятно, достаточно хороши.
Я не думаю, что многие из этих структур легко кодировать с произвольной метрикой. Из любопытства ваша метрика удовлетворяет неравенству треугольника? – templatetypedef
Каковы свойства этого показателя? В общем случае нет более простого ответа. – ElKamina
@templatetypedef Можно ли/целесообразно попробовать k ближайших соседей с метрикой, которая не удовлетворяет неравенству треугольника? – igavriil