Chciałbym obliczyć miarę podobieństwa między dwoma uporządkowanymi zestawami punktów --- tymi pod Użytkownikem w porównaniu z tymi pod Nauczycielem :
Punkty są krzywymi w przestrzeni 3D, ale myślałem, że problem zostanie uproszczony, jeśli narysuję je w dwóch wymiarach, jak na zdjęciu. Jeśli punkty się pokrywają, podobieństwo powinno wynosić 100%.
Odpowiedzi:
Porównujesz trajektorie lub krzywe . To jest przestudiowany temat. Analiza procrustes i dynamiczne dopasowanie czasu , jak mówi EMS, są narzędziami handlu. Po wyrównaniu krzywych będziesz chciał zmierzyć odległość, powiedz odległość Frécheta . Jeśli chcesz udostępnić część swoich danych, możemy sami je złamać.
Odpowiednia lektura:
Jeśli zignorujesz wymiar czasowy:
Możesz dopasować użytkownika i nauczyciela do wielowymiarowej gęstości Gaussa i znaleźć objętość ich produktu - to całkiem proste. Jeśli chcesz uzyskać większą dokładność, możesz zamiast tego użyć szacunku gęstości nieparametrycznej.
źródło
Możesz rozważyć odległość Procrustes lub pewną odległość opartą na dynamicznym dopasowaniu czasu (nawet jeśli jeden z twoich wymiarów nie jest „czasem” per se, nadal możesz skorzystać z tej idei transformacji). Zobacz ostatnią pracę nad Trackletami , ilustrującą przykład użycia dynamicznego dopasowania czasowego do pomiaru podobieństwa między krzywymi przestrzennymi 3D wykreślonymi przez trajektorie punktowe na wideo.
Istnieje wiele bibliotek z wbudowanymi obliczeniami odległości Procrustes, takich jak Matlab lub biblioteka PyGeometry dla Pythona.
źródło
Oryginalny post poprosił o metrykę między ZAMÓWIONYMI punktami w 3D. Jedyną taką miarą jest odległość Frecheta. Nie wspomniano o czasie jako o jednym z wymiarów, więc zakładam, że wszystkie wymiary mają jednostki odległości (tj. Jednostki nie są mieszane). Można tego dokonać, modyfikując funkcję ostatnio przesłaną do wymiany plików MathWorks (obliczanie odległości Frecheta: http://www.mathworks.com/matlabcentral/fileexchange/38714 ). Procedury te zostały napisane dla punktów w płaszczyźnie, ale rozszerzenie do punktów 3D jest proste.
źródło
źródło
Podobieństwo to ilość, która odzwierciedla siłę relacji między dwoma obiektami lub dwoma cechami. Wielkość ta zwykle ma zakres od -1 do +1 lub znormalizowana do 0 do 1. Następnie musisz obliczyć odległość dwóch cech za pomocą jednej z poniższych metod:
Dla linii ... możesz to przedstawić za pomocą właściwości kąta (a) i długości (l) lub L1 = P1 (x1, y1), P2 (x2, y2) poniżej to podobieństwo do ai l.
teraz zmierz kąt dla kątów i długości
Korzystanie z odległości euklidesowej
podobieństwo = SquareRoot ((A_user - A_teacher30) ^ 2 + (Length_User - Length_Teacher) ^ 2)
daje miarę podobieństwa. Można również użyć wyżej wymienionych metod w zależności od problemu i funkcji.
źródło