Создайте 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 |