Поиск сходства между временными рядами в Matlab.Возможный ?Я не могу найти реализацию R-дерева в Matlab - PullRequest
2 голосов
/ 24 июля 2010

Я хотел бы реализовать поиск сходства в Matlab.Я хочу знать, возможно ли это?

Мой план состоит в том, чтобы использовать 2 популярных метода измерения сходства: евклидово расстояние и динамическое искажение времени.Оба из них будут применены к набору данных временных рядов.В этот момент у меня возникает вопрос: как я могу оценить эффективность и точность этих двух измерений?Я видел литературу, в которой говорилось, что я должен использовать алгоритм K-NN.

Затем я планирую применить уменьшение размерности к набору данных временных рядов.После уменьшения размерности набора данных.Мне нужно будет проиндексировать набор данных с использованием R-дерева или любых доступных методов индексирования.

Однако моя проблема заключается в том, что для этого мне нужен код R-дерева Matlab, который я вряд ли смогу найти в Интернете ...

Я понял, что большая часть реализации дляпоиск сходства в C ++, C и Java ... Но я не знаком с ними.Я надеюсь, что смогу реализовать их в Matlab ... Любой Гуру может помочь мне с этим?

Также, какую оценку я могу сделать, чтобы оценить производительность для каждого алгоритма.

Спасибо

Ответы [ 2 ]

3 голосов
/ 26 июля 2010

Недавно (я думаю, R2010a), MATLAB добавил новые функции для поиска k-Nearest Neighbor (kNN) с использованием KD-дерева ( метод пространственной индексации )аналогично R-дереву) для панели инструментов статистики.Пример:

load fisheriris                            % Iris dataset
Q = [6 3 4 1 ; 5 4 3 2];                   % query points

% build kd-tree
knnObj = createns(meas, 'NSMethod','kdtree', 'Distance','euclidean');

% find k=5 Nearest Neighbors to Q
[idx Dist] = knnsearch(knnObj, Q, 'K',5);

Подробное описание см. На этой странице .

Также, если у вас есть панель инструментов обработки изображений, она содержит (уже давно)реализация поиска kd-дерева и kNN.Хотя они являются частными функциями:

[matlabroot '\images\images\private\kdtree.m']
[matlabroot '\images\images\private\nnsearch.m']

Чтобы сравнить два ваших подхода ( Динамическое искажение времени и Евклидово расстояние ), вы можете разработать классическую задачу классификации;с учетом набора помеченных временных рядов для обучения / тестирования задача состоит в том, чтобы предсказать метку каждой последовательности испытаний, найдя наиболее сходные последовательности с использованием kNN, а затем предсказать класс большинства.Для оценки производительности используйте любые стандартные критерии классификации, такие как точность / ошибка и т. Д.

0 голосов
/ 29 октября 2014

Оказывается, что для ED и DTW намного быстрее выполнять последовательное сканирование с использованием пакета UCR.

Смотрите это видео https://www.youtube.com/watch?v=d_qLzMMuVQg

или это

https://www.youtube.com/watch?v=c7xz9pVr05Q

код свободен http://www.cs.ucr.edu/~eamonn/UCRsuite.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...