Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Оценка сходства кривых


Автор: _Y_ 17.10.2012, 14:39
Подскажите, пожалуйста, какие имеются методы оценки похожести кривых?

Задача, собственно, такая. Прибор выдает осциллирующую кривую. Математическое ее описание затруднительно. Хотелось бы сравнить ее с эталонной кривой и получить некие баллы сходства.

Алгоритм основанный на подборе сдвига по фазе с последующей оценкой положения точек (типа наименьших квадратов) не подходит т.к. разница в форме кривых может быть задавлена близким расположением точек (например, такой алгоритм не замечает мелких ступенек). Т.е. нужен алгоритм оценивающий, в первую очередь, форму.

ЗЫ: Советы по разработке или адаптации алгоритма не нужны пока. Только названия существущих алгоритмов/подходов.

Спасибо.


Автор: Pavia 17.10.2012, 19:18
_Y_
Форму кривой посмотреть.
Цитата

 осциллирующую кривую

Такого термина не знаю. Гугл тоже.

Цитата

Математическое ее описание затруднительно.


Могу помочь с составление владею МНК, дифурами, Фурье анализом.


Корреляция
Ковариация
Фурье анализ (амплитудный, фазовый, частотный(октавный)).
Представить кривую в виде графа и переменить сравнение графов.
Нейронные сети.
Корреляционные нейронные сети
Bag-of-word
МНК, регрессионный анализ
Ещё можно найти производные разных степеней и сравнивать гладкость.
Метод главных компонент.

Не скажу что это методы. Это скорее некоторый инструмент который может комбинироваться.

Добавлено через 4 минуты и 56 секунд
Цитата

кривых может быть задавлена близким расположением точек (например, такой алгоритм не замечает мелких ступенек). Т.е. нужен алгоритм оценивающий, в первую очередь, форму.

Походу нужен эксперт.  Который определит критерии похожести. 
А далее  можно будет построить экспертную систему.
Если будет несколько экспертов то ответы можно ранжировать есть специальные методы.

Автор: Mirkes 18.10.2012, 06:50
Существует два радикально разных подхода. 
1. Предполагаем что имеем сумму синусоид - тогда частотный анализ типа Фурье. Возможно его модификации типа Wavelett
2. Ничего про кривую не знаем. Тогда берем эталон и начинаем считать интеграл мдуля разности кривых. Возможно сдвигая начало эталона.

Решите с какой из ситуаций Вы имеете дело, тогда будет ясно куда копать дальше.

Автор: Pavia 18.10.2012, 08:11
Mirkes
это не подходы.
Основной самый общий подход такой. 
1. При участии эксперта выбираются признаки. Условно их можно поделить на следующие группы
1.1. Пространственные
1.2. Временные
1.3. Частотные
1.4  Фазовые
1.5. Гладкостные
1.6. Амплитудные

Они могут комбинироваться.  Вейвлеты это комбинация 1.2+1.3+1.5 или 1.2+1.3+1.6 кому как больше нравится.

2. Далее идет выделение этих признаков из сигнала в нашем случае кривой. 
В самом простом случае у нас амплитудно-временные признак. Т.е данные не требуют обработки.
Либо это некоторое преобразование. 

3. После признаки группируются. Это первичная классификация. 
К примеру если у на есть какой-то переходной процесс, то он разбивается на 3 фазы. Если ловите фронты, то  это может быть и 2 и 5 фаз. 
Либо распознавания человека выделяются уши глаза нос, руки ноги.

Цель этой стадии разделить координатную составляющую(или временную) от количественного составляющей(степени похожести).

В простейшем случае эта стадия может и отсутствовать. Но как показывает практика она позволяет значительно увеличить процент, качества распознавания в нашем случае сравнения.

4. Затем идет уточнение в каждой группе признаков идет сопоставление с эталоном. 
Тут применяется классификатор. 
4.1. Нейронная сеть
4.2. Корреляция/ковариация
4.3. Либо по компонентное сравнение, второе название сравнение с шаблоном/эталоном.  (этот разновидность корреляции, но вынесен в отдельный пункт так как он всем известен)
4.4. Бесовский классификатор. 
4.5. Метод наименьших квадратов
4.6. Метод главных компонент 

Далее после идет ранжирование результатов(т.е сортировка) и выбор результата с максимальным числом.
5.  Результаты первичного классификации и пространственные/временные признаки из пункта 3 загоняются во вторичную классификацию.
 

Автор: mrgloom 18.10.2012, 16:56
представить кривые как точки попробовать совместить их чем то типа ICP, потом вычислить метрику расстояния. (возможно это не то что вам нужно) 
или есть еще вроде curve fitting по каким-то признакам.

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

Автор: ivan219 20.10.2012, 21:54
Корреляция эталонной кривой с полученной. Коэффициент корреляции показывает её сходство.

Автор: mrgloom 4.12.2012, 15:14
http://www.eng.chula.ac.th/newsletter/files/img/articles/2553_06_dynamic_1.jpg
http://homepages.inf.ed.ac.uk/group/sli_archive/slip0809_c/s0562005/img/DTWExplain.png
http://mirlab.org/jang/matlab/toolbox/machineLearning/help/dtwBridgePlot_help.html
еще что то такое

Автор: _Y_ 4.12.2012, 20:39
mrgloom, интерес-сно и даже красиво. Жаль та задача уже в прошлом. Но, по любому, буду знать теперь об этом методе.

Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)