Ähnlichkeitsmaße zwischen Kurven?

17

Ich möchte das Ähnlichkeitsmaß zwischen zwei geordneten Punktmengen berechnen - die unter Benutzer im Vergleich zu den unter Lehrer :

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

Die Punkte sind Kurven im 3D-Raum, aber ich dachte, dass sich das Problem vereinfacht, wenn ich sie wie im Bild in zwei Dimensionen zeichne. Wenn sich die Punkte überlappen, sollte die Ähnlichkeit 100% betragen.

Alex
quelle
Müssen Sie Skalierung, Rotation und / oder Übersetzung berücksichtigen?
nico
Nein, ich muss sie nicht berücksichtigen.
Alex
Das heißt, dass ich mich darum kümmern werde.
Alex

Antworten:

11

Sie vergleichen Flugbahnen oder Kurven . Dies ist ein untersuchtes Thema. Die Analyse von Prozessen und das dynamische Time Warping sind , wie EMS sagt, das Handwerkszeug. Wenn Sie die Kurven ausgerichtet haben, möchten Sie den Abstand messen, beispielsweise den Fréchet-Abstand . Wenn Sie einige Ihrer Daten teilen möchten, könnten wir selbst einen Riss drauf machen.

Relevante Lektüre:

Wenn Sie die zeitliche Dimension außer Acht lassen:

Sie könnten den Benutzer und den Lehrer dazu bringen, die Gaußschen Dichten zu multivariieren und das Volumen ihres Produkts zu ermitteln - das ist ziemlich einfach. Wenn Sie mehr Genauigkeit wünschen, können Sie stattdessen eine nichtparametrische Dichteschätzung verwenden.

Emre
quelle
Vielen Dank Emre für Ihren Vorschlag! Ich habe das Problem aktualisiert - ich denke, es könnte jetzt einfacher sein, also schauen Sie bitte nach.
Alex
Sie könnten den Benutzer und den Lehrer dazu bringen, die Gaußschen Dichten zu multivariieren und das Volumen ihres Produkts zu ermitteln. Wirklich Neuling hier.
Sibbs Gambling
Wird der euklidische Abstand für ausgerichtete Kurven ausreichen?
Vladimir Chupakhin
Ich habe Korrelationskoeffizienten zum Vergleichen von Ähnlichkeiten verwendet und das Ergebnis zwischen 0 und 1
eingeklemmt.
3

Sie können die Entfernung von Procrustes oder eine Entfernung aufgrund dynamischer Zeitverzerrungen in Betracht ziehen (auch wenn eine Ihrer Dimensionen nicht per se "Zeit" ist, können Sie diese Transformationsidee dennoch verwenden). In dieser aktuellen Arbeit zu Tracklets finden Sie einen anschaulichen Anwendungsfall für dynamisches Time Warping zur Messung der Ähnlichkeit von 3D-Raumkurven, die anhand von Punkttrajektorien in Videos erstellt wurden.

Es gibt viele Bibliotheken mit integrierten Procrustes-Abstandsberechnungen, z. B. Matlab oder die PyGeometry- Bibliothek für Python.

ely
quelle
2

Im ursprünglichen Beitrag wurde nach einer Metrik zwischen BESTELLTEN Punkten in 3D gefragt. Die einzige solche Metrik ist die Frechet-Distanz. Es wurde keine Zeit als eine der Dimensionen erwähnt, daher würde ich davon ausgehen, dass alle Dimensionen Entfernungseinheiten haben (dh die Einheiten sind nicht gemischt). Dies kann erreicht werden, indem eine Funktion geändert wird, die kürzlich in den MathWorks-Dateiaustausch hochgeladen wurde (Frechet-Entfernungsberechnung: http://www.mathworks.com/matlabcentral/fileexchange/38714 ). Diese Routinen wurden für Punkte in der Ebene geschrieben, die Erweiterung auf 3D-Punkte ist jedoch unkompliziert.

Rich Kenefic
quelle
1
Sind Sie sicher, dass der Frechet-Abstand zwischen den bestellten Paaren liegt? Auf der Wikipedia-Seite heißt es, dass ein Punkt in einem Pfad mit mehreren Punkten in einem anderen Pfad übereinstimmen kann. Sicher gibt es auch mehr als eine solche Metrik. Was ist mit der Summe der Abstände zwischen geordneten Paaren?
Naught101
1

XY.dH(X,Y.)=max{supxXinfyY.||x-y||,supyY.infxX||x-y||}

TenaliRaman
quelle
Ich denke nicht, dass dies ein sehr praktikabler Ansatz ist. Es sei denn, Sie möchten dies durch Ersetzen aller und durch und approximieren. In vielen Fällen wird die Entfernung von Hausdorff dadurch jedoch nicht gut approximiert. Wie schlagen Sie vor, solche Entfernungen tatsächlich (in Software) zu berechnen? supinfmaxMindest
ely
1
XY.
Vielen Dank für den Link, ich hatte in Tony Chans Buch nur Hausdorffs Entfernung in Computer Vision gesehen. Es ist cool, mehr rechnerische Ansätze zu sehen.
ely
1

Ähnlichkeit ist eine Größe, die die Stärke der Beziehung zwischen zwei Objekten oder zwei Merkmalen widerspiegelt. Diese Größe hat normalerweise einen Bereich von -1 bis +1 oder ist auf 0 bis 1 normiert. Dann müssen Sie den Abstand zweier Merkmale mit einer der folgenden Methoden berechnen:

  1. Einfacher Abgleichsabstand
  2. Jaccards Entfernung
  3. Hamming Abstand
  4. Jaccard-Koeffizient
  5. einfacher Anpassungskoeffizient

Für Linie ... können Sie es durch die Eigenschaften Winkel (a) und Länge (l) darstellen, oder L1 = P1 (x1, y1), P2 (x2, y2) unten ist die Ähnlichkeit mit a und l.

Messen Sie nun den Winkel für Winkel und Längen

  • A_user = 20 und Length_User = 50
  • A_teacher30 und Length_Teacher = 55
  • Normalisieren Sie nun die Werte.

Verwenden der euklidischen Distanz

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

gibt das Ähnlichkeitsmaß an. Sie können auch die oben genannten Methoden verwenden, die auf dem Problem und den Funktionen basieren.

sso
quelle