Задача пошуку найближчого сусіда є задачею оптимізації, яка полягає у відшуканні у множині елементів, розташованих у багатовимірному метричному просторі, елементів, близьких до заданого, відповідно до заданої функції близькості. Формально ця задача ставиться наступним чином: надано множину точок S у просторі M та точку q ∈ M, необхідно знайти найближчу до q точку в S. Дональд Кнут в Мистецтві програмування (том 3, 1973) назвав це проблемою поштового відділення, посилаючись на застосування цієї задачі до пошуку найближчого поштового відділення. Прямим узагальненням задачі пошуку найближчого сусіда є алгоритм пошуку k-NN, який призначений для пошуку k найближчих точок.
Найчастіше M є метричним простором і запроваджується функція близькості, що визначається як метрика, яка є симетричною і задовольняє нерівності трикутника. Ще загальніше, M — це d-вимірний векторний простір, в якому близькість береться як Евклідова метрика, вулична метрика або інші метрики. Однак функція близькості може бути довільною. Одним з прикладів може бути [en], для якої нерівність трикутника не виконується.
Застосування
Задача пошуку найближчого сусіда зустрічається у багатьох областях, наприклад:
- розпізнавання образів;
- класифікація документів;
- рекомендаційні і експертні системи;
- динамічне розміщення реклами в Інтернеті.
Моделі даних
Перед вирішенням прикладної задачі необхідно обрати форму подання об'єктів і функцію близькості. У більшості випадків об'єкти подаються у вигляді багатовимірних векторів, а як функція близькості використовується скалярний добуток векторів, але можуть бути й інші форми подання даних, наприклад:
- множини — розмір перетину множин;
- рядки — відстань Левенштейна;
- граф — відповідність структур.
Споріднені задачі
Існують численні варіанти задачі пошуку найближчих сусідів. Окрім класичної задачі знаходження найближчої до заданої точки, можуть бути поставлені задачі:
- знайти близьких сусідів (не обов'язково найближчого);
- знайти найближчого сусіда для групи елементів;
- знайти кількох найближчих сусідів;
- знайти усі пари елементів, відстань між якими менша за деяку задану;
- знайти найближчих сусідів у середі, що динамічно змінюється.
Одним з найбільш відомих варіантів є k-NN пошук.
Алгоритм k-NN
Алгоритм k-NN — це алгоритм автоматичної класифікації об'єктів. Він визначає k сусідів, найближчих до заданої точки (об'єкту). Цей метод широко використовується у прогностичній аналітиці для оцінки або класифікації точки на основі узгодженості її сусідів. k-NN граф є графом, в якому кожна точка з'єднана з її k найближчими сусідами.
Алгоритми
Було запропоновано багато алгоритмів вирішення задачі пошуку найближчого сусіда. Якість та корисність алгоритмів визначається часовою складністю запитів, а також складністю усіх структур пошуку інформації, що мають підтримуватися. Не існує загального вирішення задачі у багатовимірному Евклідовому просторі, яке б використовувало поліноміальний час попередньої обробки та полілогаріфмічній час пошуку даних.
Послідовний пошук
Найпростішим способом розв'язання задачі, є обчислення відстані від заданої точки до кожної іншої точки в наборі даних, постійно відстежуючи найкращий результат на даний момент. Цей алгоритм називають прямими методом, і його складність виконання становить O(dN), де N — це потужність множини точок S, а d — це розмірність простору M. Для реалізації не потрібні ніякі додаткові структуру для пошуку даних, тому лінійний пошук не потребує додаткового простору даних крім початкового набору даних.
Розбиття простору
- Діаграма Вороного;
- KD-дерева;
- BSP-дерева;
- [ru];
- [en];
- R-дерево.
Зворотній індекс
- .
Інші
- Хешування;
- [ru].
Див. також
Примітки
- Cayton, Lawerence (2008). Fast nearest neighbor retrieval for bregman divergences. Proceedings of the 25th international conference on Machine learning: 112—119.
- Weber, Roger; Schek, Hans-J.; Blott, Stephen. A quantitative analysis and performance study for similarity search methods in high dimensional spaces (PDF).
Посилання
- Yury Lifshits. Algorithms for Nearest Neighbors: Theoretical Aspects
В іншому мовному розділі є повніша стаття Nearest neighbor search(англ.). Ви можете допомогти, розширивши поточну статтю за допомогою з англійської. (лютий 2024)
|
Це незавершена стаття з математики. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Zadacha poshuku najblizhchogo susida ye zadacheyu optimizaciyi yaka polyagaye u vidshukanni u mnozhini elementiv roztashovanih u bagatovimirnomu metrichnomu prostori elementiv blizkih do zadanogo vidpovidno do zadanoyi funkciyi blizkosti Formalno cya zadacha stavitsya nastupnim chinom nadano mnozhinu tochok S u prostori M ta tochku q M neobhidno znajti najblizhchu do q tochku v S Donald Knut v Mistectvi programuvannya tom 3 1973 nazvav ce problemoyu poshtovogo viddilennya posilayuchis na zastosuvannya ciyeyi zadachi do poshuku najblizhchogo poshtovogo viddilennya Pryamim uzagalnennyam zadachi poshuku najblizhchogo susida ye algoritm poshuku k NN yakij priznachenij dlya poshuku k najblizhchih tochok Najchastishe M ye metrichnim prostorom i zaprovadzhuyetsya funkciya blizkosti sho viznachayetsya yak metrika yaka ye simetrichnoyu i zadovolnyaye nerivnosti trikutnika She zagalnishe M ce d vimirnij vektornij prostir v yakomu blizkist beretsya yak Evklidova metrika vulichna metrika abo inshi metriki Odnak funkciya blizkosti mozhe buti dovilnoyu Odnim z prikladiv mozhe buti en dlya yakoyi nerivnist trikutnika ne vikonuyetsya ZastosuvannyaZadacha poshuku najblizhchogo susida zustrichayetsya u bagatoh oblastyah napriklad rozpiznavannya obraziv klasifikaciya dokumentiv rekomendacijni i ekspertni sistemi dinamichne rozmishennya reklami v Interneti Modeli danihPered virishennyam prikladnoyi zadachi neobhidno obrati formu podannya ob yektiv i funkciyu blizkosti U bilshosti vipadkiv ob yekti podayutsya u viglyadi bagatovimirnih vektoriv a yak funkciya blizkosti vikoristovuyetsya skalyarnij dobutok vektoriv ale mozhut buti j inshi formi podannya danih napriklad mnozhini rozmir peretinu mnozhin ryadki vidstan Levenshtejna graf vidpovidnist struktur Sporidneni zadachiIsnuyut chislenni varianti zadachi poshuku najblizhchih susidiv Okrim klasichnoyi zadachi znahodzhennya najblizhchoyi do zadanoyi tochki mozhut buti postavleni zadachi znajti blizkih susidiv ne obov yazkovo najblizhchogo znajti najblizhchogo susida dlya grupi elementiv znajti kilkoh najblizhchih susidiv znajti usi pari elementiv vidstan mizh yakimi mensha za deyaku zadanu znajti najblizhchih susidiv u seredi sho dinamichno zminyuyetsya Odnim z najbilsh vidomih variantiv ye k NN poshuk Algoritm k NN Div takozh Metod k najblizhchih susidiv Algoritm k NN ce algoritm avtomatichnoyi klasifikaciyi ob yektiv Vin viznachaye k susidiv najblizhchih do zadanoyi tochki ob yektu Cej metod shiroko vikoristovuyetsya u prognostichnij analitici dlya ocinki abo klasifikaciyi tochki na osnovi uzgodzhenosti yiyi susidiv k NN graf ye grafom v yakomu kozhna tochka z yednana z yiyi k najblizhchimi susidami AlgoritmiBulo zaproponovano bagato algoritmiv virishennya zadachi poshuku najblizhchogo susida Yakist ta korisnist algoritmiv viznachayetsya chasovoyu skladnistyu zapitiv a takozh skladnistyu usih struktur poshuku informaciyi sho mayut pidtrimuvatisya Ne isnuye zagalnogo virishennya zadachi u bagatovimirnomu Evklidovomu prostori yake b vikoristovuvalo polinomialnij chas poperednoyi obrobki ta polilogarifmichnij chas poshuku danih Poslidovnij poshuk Najprostishim sposobom rozv yazannya zadachi ye obchislennya vidstani vid zadanoyi tochki do kozhnoyi inshoyi tochki v nabori danih postijno vidstezhuyuchi najkrashij rezultat na danij moment Cej algoritm nazivayut pryamimi metodom i jogo skladnist vikonannya stanovit O dN de N ce potuzhnist mnozhini tochok S a d ce rozmirnist prostoru M Dlya realizaciyi ne potribni niyaki dodatkovi strukturu dlya poshuku danih tomu linijnij poshuk ne potrebuye dodatkovogo prostoru danih krim pochatkovogo naboru danih Rozbittya prostoru Diagrama Voronogo KD dereva BSP dereva ru en R derevo Zvorotnij indeks Inshi Heshuvannya ru Div takozhDiagrama Voronogo Poshuk najblizhchoyi pari tochok Metod najblizhchih k susidiv Graf najblizhchih susidiv Pershij zasik lipshijPrimitkiCayton Lawerence 2008 Fast nearest neighbor retrieval for bregman divergences Proceedings of the 25th international conference on Machine learning 112 119 Weber Roger Schek Hans J Blott Stephen A quantitative analysis and performance study for similarity search methods in high dimensional spaces PDF PosilannyaYury Lifshits Algorithms for Nearest Neighbors Theoretical AspectsV inshomu movnomu rozdili ye povnisha stattya Nearest neighbor search angl Vi mozhete dopomogti rozshirivshi potochnu stattyu za dopomogoyu perekladu z anglijskoyi lyutij 2024 Divitis avtoperekladenu versiyu statti z movi anglijska Perekladach povinen rozumiti sho vidpovidalnist za kincevij vmist statti u Vikipediyi nese same avtor redaguvan Onlajn pereklad nadayetsya lishe yak korisnij instrument pereglyadu vmistu zrozumiloyu movoyu Ne vikoristovujte nevichitanij i nevidkorigovanij mashinnij pereklad u stattyah ukrayinskoyi Vikipediyi Mashinnij pereklad Google ye korisnoyu vidpravnoyu tochkoyu dlya perekladu ale perekladacham neobhidno vipravlyati pomilki ta pidtverdzhuvati tochnist perekladu a ne prosto skopiyuvati mashinnij pereklad do ukrayinskoyi Vikipediyi Ne perekladajte tekst yakij vidayetsya nedostovirnim abo neyakisnim Yaksho mozhlivo perevirte tekst za posilannyami podanimi v inshomovnij statti Dokladni rekomendaciyi div Vikipediya Pereklad Ce nezavershena stattya z matematiki Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi