Создайте K d-дерева ближайшего соседа
KDTreeSearcher объекты модели хранят результаты поиска по ближайшему соседу, который использует K алгоритм d-tree. Результаты включают обучающие данные, метрику расстояния и ее параметры и максимальное количество точек данных в каждом листовом узле (то есть размер интервала). Алгоритм K d-tree разбивает набор данных n -by K путем рекурсивного разделения точек n в K -мерном пространстве на двоичное дерево.
Как только вы создаете KDTreeSearcher объект модели, можно искать в сохраненном дереве, чтобы найти все соседние точки к данным запроса путем выполнения ближайшего поиска соседа с помощью knnsearch или радиус поиска с помощью rangesearch. Алгоритм K d-tree более эффективен, чем алгоритм исчерпывающего поиска, когда K маленький (то есть K ≤ 10), наборы обучения и запросов не разрежены, и наборы обучения и запросов имеют много наблюдений.
Используйте либо createns функцию или KDTreeSearcher функция (описанная здесь) для создания KDTreeSearcher объект модели. Обе функции используют один и тот же синтаксис, кроме того, что createns функция имеет 'NSMethod' аргумент пары "имя-значение", который используется для выбора метода поиска по ближайшему соседу. createns функция также создает ExhaustiveSearcher объект. Задайте 'NSMethod','kdtree' для создания KDTreeSearcher объект. Значение по умолчанию является 'kdtree' если K ≤ 10, обучающие данные не разрежены, и метрика расстояния является Евклидовым, городским блоком, Чебычевым или Минковским.
выращивает K d-дерево по умолчанию Mdl = KDTreeSearcher(X)(Mdl) использование n -by K числовой матрицы обучающих данных (X).
задает дополнительные опции, используя один или несколько аргументы пары "имя-значение". Можно задать максимальное количество точек данных в каждом узле листа (то есть размер блока) и метрике расстояния, и задать параметр метрики расстояния (Mdl = KDTreeSearcher(X,Name,Value)DistParameter) свойство. Для примера, KDTreeSearcher(X,'Distance','minkowski','BucketSize',10) задает использование расстояния Минковского при поиске ближайших соседей и использование 10 для размера интервала. Чтобы задать DistParameter, используйте P аргумент пары "имя-значение".
knnsearch | Найдите k - ближайших соседей, использующих объект searcher |
rangesearch | Найдите всех соседей на заданном расстоянии с помощью объекта searcher |