Меры сходства между кривыми?


17

Я хотел бы вычислить меру сходства между двумя упорядоченными наборами точек - теми, что под Пользователем, и теми, что под Учителем :

! [Пример] (http://i50.tinypic.com/2uj0580.jpg)

Точки - это кривые в трехмерном пространстве, но я думал, что проблема упрощается, если я нанесу их в двух измерениях, как на картинке. Если точки перекрываются, сходство должно быть 100%.


Вам нужно учитывать масштабирование, ротацию и / или перевод?
Нико

Нет, мне не нужно принимать их во внимание.
Алекс

Это означает, что я буду обращаться позаботиться об этом.
Алекс

Ответы:


11

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

Соответствующее чтение:

Если вы игнорируете временное измерение:

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


Спасибо Эмре за ваше предложение! Я обновил проблему - думаю, теперь это может быть проще, поэтому, пожалуйста, посмотрите.
Алекс

Вы могли бы настроить Пользователя и Учителя на многовариантную плотность Гаусса и найти объем их продукта - это довольно просто. Не могли бы вы, пожалуйста, указать мне правильные ресурсы для изучения этого? Действительно новичок здесь.
Sibbs Gambling

Будет ли евклидово расстояние достаточно для выровненных кривых?
Владимир Чупахин

Я использовал коэффициенты корреляции для сравнения сходств и
зафиксировал

3

Вы могли бы рассмотреть расстояние Procrustes или некоторое расстояние, основанное на динамической деформации времени (даже если одно из ваших измерений не является «временем» как таковым, вы все равно можете использовать эту идею преобразования). Посмотрите эту недавнюю работу над треклетами для иллюстративного использования динамического искажения времени для измерения сходства между трехмерными пространственными кривыми, вырезанными по точечным траекториям в видео.

Существует много библиотек со встроенными вычислениями расстояний Procrustes , таких как Matlab или библиотека PyGeometry для Python.


2

Оригинальный пост попросил метрики между упорядоченными точками в 3D. Единственной такой метрикой является расстояние Фреше. Не было упоминания времени как одного из измерений, поэтому я предположил бы, что все измерения имеют единицы измерения расстояния (т.е. единицы не смешаны). Это можно сделать, изменив функцию, недавно загруженную в обмен файлами MathWorks (расчет расстояния Фреше: http://www.mathworks.com/matlabcentral/fileexchange/38714 ). Эти процедуры были написаны для точек на плоскости, но расширение до 3D-точек является простым.


1
Вы уверены, что расстояние Фреше находится между упорядоченными парами? страница википедии говорит , что точка в одном пути может быть сопоставлена с нескольких точек в другом. Кроме того, безусловно, существует более одной такой метрики. Как насчет суммы расстояний между упорядоченными парами?
naught101

1

XYdH(X,Y)=max{supxXinfyY||xy||,supyYinfxX||xy||}


supinfmaxmin

1
XY

Спасибо за ссылку, я видел расстояние Хаусдорфа только в компьютерном зрении в книге Тони Чана. Круто видеть больше вычислительных подходов.
Ely

1

Сходство - это количество, которое отражает силу отношений между двумя объектами или двумя признаками. Эта величина обычно имеет диапазон от -1 до +1 или нормируется на 0 до 1. Затем вам нужно вычислить расстояние двух объектов одним из следующих способов:

  1. Простое соответствие расстояния
  2. Расстояние жаккарда
  3. Расстояние Хемминга
  4. Коэффициент Жакара
  5. простой коэффициент соответствия

Для линии ... вы можете представить ее в свойствах angle (a) и length (l) или L1 = P1 (x1, y1), P2 (x2, y2) ниже - это сходство с a и l.

Теперь измерьте угол для углов и длин

  • A_user = 20 и Length_User = 50
  • A_teacher30 и Length_Teacher = 55
  • Теперь нормализуйте значения.

Использование евклидова расстояния

Сходство = SquareRoot ((A_user - A_teacher30) ^ 2 + (Length_User - Length_Teacher) ^ 2)

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.