/ / Найшвидший k найближчий сусід з довільною метрикою? - алгоритм, математика, дискретна математика, найближчий-сусід

Найшвидший кінець найближчого сусіда з довільною метрикою? - алгоритм, математика, дискретна математика, найближчий сусід

Гетча з цим питанням "довільнаметрика ". Якщо ви не знаєте, що це, це просто спосіб вимірювання відстані між точками. (У" реальному "світі 1-розмірне відстань - це лише абсолютна величина різниці між двома точками ).

Досить попередніх лім. Я намагаюся знайти алгоритм швидкого k найближчого сусіда з цими властивостями:

  • працює на довільній метриці
  • дещо простий у виконанні
  • оптимізовано для знаходження відстані набору точок до іншого набору точок

Вікіпедія дає список алгоритмів та підходів, але нічого не стосується реалізації.

ОНОВЛЕННЯ: метрика - це схожість косинусів, яка є ні задовольнити запитання трикутника. Однак, здається, я можу використати "кутову схожість" (відповідно до Вікіпедії).

ОНОВЛЕННЯ: випадок використання - це обробка природної мови. "Вектори" - це "контекст" даного слова, представлений бінарними властивостями (наприклад: назва документа). Отже, хоча може бути лише декілька властивостей (зараз я просто використовую 3), кожен вектор має довільно великий розмір (у прикладі заголовка кожен заголовок у базі даних відповідав би розміру у векторі).

ОНОВЛЕННЯ: Для допитливих я реалізую цей алгоритм:

http://josquin.cs.depaul.edu/~mramezani/papers/IEEEIS.pdf

ОНОВЛЕННЯ: Алгоритм повинен буде знайти найближчих сусідів приблизно з десяток балів приблизно з 100s балів. Середній вимір, ймовірно, буде дуже великим, скажімо, 50 (я насправді ще не знаю). І так, мене цікавить алгоритм, а не бібліотека. І так, оцінки, мабуть, досить хороші.

Відповіді:

1 для відповіді № 1

Я б радив вам перейти на "Місцевий стан"хешинг (LSH), який зараз в тренді. Це зменшує розмірність даних високих розмірів, але я не впевнений, чи буде ваш параметр добре відповідати цьому алгоритму. Дивіться Вікіпедію сторінка для більш.

Ви можете використовувати власну метрику, але загалом це можна зробити в багатьох алгоритмах. Сподіваюся, це допомагає.

Ви можете поїхати за деревами RKD, лісом з них, але, можливо, зараз це занадто багато.