Je voudrais calculer la mesure de similitude entre deux ensembles ordonnés de points --- ceux sous Utilisateur comparés à ceux sous Professeur :
Les points sont des courbes dans l'espace 3D, mais je pensais que le problème est simplifié si je les traçais en 2 dimensions comme sur la photo. Si les points se chevauchent, la similitude doit être de 100%.
Réponses:
Vous comparez des trajectoires ou des courbes . C'est un sujet étudié. L'analyse des procrustes et la déformation temporelle dynamique , comme le dit EMS, sont des outils du métier. Une fois que vous aurez aligné les courbes, vous voudrez mesurer la distance, disons la distance de Fréchet . Si vous souhaitez partager certaines de vos données, nous pourrions nous attaquer nous-mêmes.
Lecture pertinente:
Si vous ignorez la dimension temporelle:
Vous pouvez adapter l'utilisateur et l'enseignant à des densités gaussiennes multivariées et trouver le volume de leur produit - c'est assez facile. Si vous souhaitez plus de précision, vous pouvez utiliser une estimation de densité non paramétrique à la place.
la source
Vous pouvez considérer la distance de Procrustes , ou une certaine distance basée sur la déformation temporelle dynamique (même si l'une de vos dimensions n'est pas le "temps" en soi, vous pouvez toujours utiliser cette idée de transformation). Voir ce travail récent sur Tracklets pour un cas d'utilisation illustratif de la déformation temporelle dynamique pour mesurer la similitude entre des courbes spatiales 3D taillées par des trajectoires ponctuelles dans des vidéos.
Il existe de nombreuses bibliothèques avec des calculs de distance Procrustes intégrés, comme Matlab ou la bibliothèque PyGeometry pour Python.
la source
Le message d'origine demandait une métrique entre les points COMMANDÉS en 3D. La seule mesure de ce type est la distance de Frechet. Il n'y avait aucune mention du temps comme l'une des dimensions, donc je suppose que toutes les dimensions ont des unités de distance (c'est-à-dire que les unités ne sont pas mélangées). Cela peut être fait en modifiant une fonction récemment téléchargée sur l'échange de fichiers MathWorks (calcul de la distance Frechet: http://www.mathworks.com/matlabcentral/fileexchange/38714 ). Ces routines ont été écrites pour des points dans l'avion, mais l'extension aux points 3D est simple.
la source
la source
La similitude est une quantité qui reflète la force de la relation entre deux objets ou deux caractéristiques. Cette quantité est généralement comprise entre -1 et +1 ou normalisée entre 0 et 1. Vous devez calculer la distance de deux entités selon l'une des méthodes ci-dessous:
Pour la ligne ... vous pouvez le représenter par les propriétés d'angle (a) et de longueur (l) ou L1 = P1 (x1, y1), P2 (x2, y2) ci-dessous est la similitude avec a et l.
mesurer maintenant l'angle pour les angles et les longueurs
Utiliser la distance euclidienne
similitude = SquareRoot ((A_user - A_teacher30) ^ 2 + (Length_User - Length_Teacher) ^ 2)
donne la mesure de similitude. Vous pouvez également utiliser les méthodes mentionnées ci-dessus en fonction du problème et des fonctionnalités.
la source