Міри подібності між кривими?


17

Я хотів би обчислити міру схожості між двома впорядкованими наборами точок --- тими, що знаходяться під Користувачем, порівняно з тими, що знаходяться у Вчителя :

![Example](http://i50.tinypic.com/2uj0580.jpg)

Точки - це криві в тривимірному просторі, але я думав, що проблема спрощується, якщо будувати їх у двох вимірах, як на малюнку. Якщо точки перетинаються, схожість повинна бути 100%.


Чи потрібно враховувати масштаб, обертання та / або переклад?
nico

Ні, мені не потрібно їх враховувати.
Олексій

це означає, що я буду застосовувати турботу про це.
Олексій

Відповіді:


11

Ви порівнюєте траєкторії чи криві . Це вивчена тема. Аналіз прокрустів та динамічне викривлення часу , як каже EMS, є інструментом торгівлі. Вирівнявши криві, ви захочете виміряти відстань, скажімо, відстань Фреше . Якщо ви хочете поділитися деякими вашими даними, ми можемо зламати це самостійно.

Відповідне читання:

Якщо ви нехтуєте тимчасовим виміром:

Ви можете налаштувати Користувача та Вчителя на багатовимірні гауссові щільності та знайти обсяг їх продукту - це досить просто. Якщо ви хочете отримати більшу точність, ви можете використовувати замість непараметричної оцінки щільності.


Дякую Емре за пропозицію! Я оновив проблему - думаю, зараз це може бути простіше, тому, будь ласка, подивіться.
Олексій

Ви можете налаштувати Користувача та Вчителя на багатовимірну гауссову щільність і знайти обсяг їхнього продукту - це досить просто. Чи можете ви, будь ласка, ласкаво вказати мені на потрібні ресурси, щоб дізнатися це? Тут справді новачок.
Сіббс Азартні ігри

Чи буде достатньо евклідової відстані для вирівняних кривих?
Володимир Чупахін

Я використав коефіцієнти кореляції для порівняння подібності і
зафіксував

3

Ви можете врахувати відстань Прокруста або деяку відстань, засновану на динамічній деформації часу (навіть якщо один із ваших вимірів сам по собі не є "часом", ви все одно можете використовувати цю ідею перетворення). Дивіться цю нещодавню роботу над Tracklets для ілюстративного використання випадків динамічної деформації часу для вимірювання подібності між кривими тривимірного простору, вирізаними точковими траєкторіями у відео.

Існує багато бібліотек із вбудованими обчисленнями відстані Прокруста, такі як Matlab або бібліотека PyGeometry для Python.


2

Оригінальна публікація запитувала показник між ORDERED пунктами в 3D. Єдина така метрика - відстань Фреше. Не було згадки про час як один із вимірів, тому я б припустив, що всі розміри мають одиниці відстані (тобто одиниці не змішані). Це можна зробити, змінивши функцію, нещодавно завантажену в обмін файлами MathWorks (Розрахунок відстані Frechet: http://www.mathworks.com/matlabcentral/fileexchange/38714 ). Ці підпрограми були написані для точок в площині, але розширення до 3D-точок прямолінійне.


1
Are you sure the Frechet distance is between ordered pairs? the wikipedia page says that a point in one path can be matched to multiple points in another. Also, surely there is more than one such metric. What about the sum of the distances between ordered pairs?
naught101

1

Hausdorff Distance might be what you are looking for. Hausdorff Distance between two point sets X and Y is defined as, dH(X,Y)=max{supxXinfyY||xy||,supyYinfxX||xy||}.


I don't think this is a very tractable approach. Unless you mean to approximate this by replacing all of the sup and inf with max and min.. but Hausdorff distance won't be well approximated by these in many cases. How do you propose to actually compute (in software) such distances?
ely

1
@EMS There are two ways to go about this, 1. either consider X and Y as discrete point sets, makes things simpler 2. or try to come up with some form of convex hull for each point set (not quite sure whether this is necessary) and something like [this][1] could be used to approximately compute the distance. [1]: cg.cs.uni-bonn.de/aigaion2root/attachments/guthe-2005-fast.pdf
TenaliRaman

Thank you for the link, I had only seen Hausdorff distance in computer vision in Tony Chan's book. It's cool to see more computational approaches.
ely

1

Similarity is quantity that reflects the strength of relationship between two objects or two features. This quantity is usually having range of either -1 to +1 or normalized into 0 to 1. Than you need to calculate the distance of two features by one of the methods below:

  1. Simple Matching distance
  2. Jaccard's distance
  3. Hamming distance
  4. Jaccard's coefficient
  5. simple matching coefficient

For line... you can represent it by angle (a) and length (l) properties or L1= P1(x1,y1), P2(x2,y2) below is the similarity with a and l.

now measure the angle for angles and lengths

  • A_user =20 and Length_User =50
  • A_teacher30 and Length_Teacher =55
  • Now, normalize the values.

Using euclidean distance

similarity = SquareRoot((A_user - A_teacher30 )^2 +(Length_User - Length_Teacher )^2)

gives the similarity measure. You can also use above mentioned methods based on the problem and the features.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.