Этот вопрос касается реализации KNN-поиска KDTrees. Обход KDTree для поиска единственного наилучшего соответствия (ближайший сосед) является простым, похожим на модифицированный двоичный поиск.Как мне пересечь KDTree, чтобы найти k ближайших соседей?
Как обход, модифицированный для исчерпывающего и эффективного поиска k-наилучших совпадений (KNN)?
Редактировать для разъяснения: После нахождения ближайшего узла M к входному запросу I, как алгоритм обхода продолжает находить оставшиеся K-1 ближайшие совпадения с запросом? Существует ли шаблон обхода, который гарантирует, что узлы будут посещены в порядке наилучшего для худшего соответствия запросу?
Возможного дубликат [Как реализовать ближайший сосед поиск с помощью KDTrees?] (Http://stackoverflow.com/questions/4093392/how-to-implement-nearest-neighbor -search-using-kdtrees) –
Это не дубликат [link] (http://stackoverflow.com/questions/4093392/how-to-implement-nearest-neighbor-search-using-kdtrees); Я прямо заявил, что я понял, что обход одного ближайшего соседа. Вопрос задает вопрос о том, как изменить обход, чтобы исчерпывающе найти k ближайших соседей одного запроса. Я подозреваю, что есть эффективный путь назад вниз по дереву из первоначального наилучшего соответствия, которое может последовательно найти более отдаленных соседей. – user2647513
Просто продолжайте поиск таким же образом. –