J'utilise Dynamic Time Warping pour faire correspondre une "requête" et une courbe "modèle" et j'ai eu un succès raisonnable jusqu'à présent, mais j'ai quelques questions de base:
J'évalue une «correspondance» en évaluant si le résultat DTW est inférieur à une valeur seuil que je trouve heuristiquement. Est-ce l'approche générale pour déterminer une «correspondance» à l'aide de DTW? Sinon, veuillez expliquer ...
En supposant que la réponse à (1) est "oui", alors je suis confus, car le résultat DTW est assez sensible à a) la différence d'amplitudes des courbes et b) la longueur du vecteur de requête et la longueur du " modèle "vecteur.
J'utilise une fonction de pas symétrique, donc pour (b) je normalise mon résultat DTW en divisant par M + N (largeur + hauteur de la matrice DTW). Cela semble être quelque peu efficace, mais il semble que cela pénaliserait les correspondances DTW qui sont plus éloignées de la diagonale (c'est-à-dire qui ont un chemin plus long à travers la matrice DTW). Ce qui semble un peu arbitraire pour une approche de "normalisation". Diviser par le nombre d'étapes à travers la matrice semble avoir un sens intuitif, mais cela ne semble pas être le moyen de le faire selon la littérature.
Existe-t-il un meilleur moyen d'ajuster le résultat DTW pour la taille des vecteurs de requête et de modèle?
Enfin, comment normaliser le résultat DTW pour la différence d'amplitudes entre la requête et les vecteurs modèles?
En l'état, étant donné le manque de techniques de normalisation fiables (ou mon manque de compréhension), il semble y avoir beaucoup d'efforts manuels impliqués dans le travail avec les données d'échantillon pour identifier le meilleur niveau de seuil pour définir une "correspondance". Suis-je en train de manquer quelque chose?
la source