Dynamiczne dopasowanie czasu i normalizacja

9

Korzystam z dynamicznego dopasowywania czasu, aby dopasować „zapytanie” i krzywą „szablonu” i jak dotąd mam rozsądny sukces, ale mam kilka podstawowych pytań:

  1. Oceniam „dopasowanie”, oceniając, czy wynik DTW jest mniejszy niż pewna wartość progowa, którą wymyślam heurystycznie. Czy to jest ogólne podejście do określania „dopasowania” za pomocą DTW? Jeśli nie, proszę wyjaśnić ...

    Zakładając, że odpowiedź na (1) brzmi „tak”, to się mylę, ponieważ wynik DTW jest dość wrażliwy na a) różnicę amplitud krzywych ib) długość wektora zapytania i długość „ szablon „wektor.

    Używam symetrycznej funkcji kroku, więc dla (b) normalizuję mój wynik DTW dzieląc przez M + N (szerokość + wysokość macierzy DTW). Wydaje się to być dość skuteczne, ale wydaje się, że penalizowałoby dopasowania DTW, które są dalej od przekątnej (tj. Które mają dłuższą ścieżkę przez macierz DTW). Co wydaje się dość arbitralne w przypadku podejścia „normalizacyjnego”. Dzielenie liczby kroków przez matrycę wydaje się mieć intuicyjny sens, ale według literatury nie wydaje się, aby tak było.

  2. Czy jest więc lepszy sposób na dostosowanie wyniku DTW do wielkości wektorów zapytań i szablonów?

  3. Wreszcie, jak znormalizować wynik DTW dla różnicy amplitud między zapytaniem a wektorami szablonowymi?

Ponieważ jednak, biorąc pod uwagę brak wiarygodnych technik normalizacji (lub mój brak zrozumienia), wydaje się, że praca z przykładowymi danymi w celu zidentyfikowania najlepszego poziomu progu dla zdefiniowania „dopasowania” wymaga dużego wysiłku ręcznego. Czy coś brakuje?

pan mrugnął
źródło

Odpowiedzi:

8

Według mojej wiedzy nie istnieje „ogólne podejście” w tym zakresie. Poza tym i tak próbujesz zminimalizować wskaźnik odległości. Na przykład w dziadku z gazet DTW Sakoe i Chiba (1978) używająjako pomiar różnicy między dwoma wektorami cech.||aibi||

Jak poprawnie zidentyfikowałeś, musisz mieć taką samą liczbę punktów (zwykle), aby to zadziałało po wyjęciu z pudełka. Proponuję użyć wygładzacza / interpolatora lowess () nad twoimi krzywymi, aby najpierw były równej wielkości. To dość standardowe rzeczy do „statystyk krzywej”. Przykładową aplikację można zobaczyć w Chiou i in. (2003) ; autorzy nie dbają o DTW jako taki w tej pracy, ale jest to dobry przykład, jak radzić sobie z odczytami o nierównej wielkości.

Dodatkowo, jak mówisz, „amplituda” jest problemem. Szczerze mówiąc, jest to nieco bardziej otwarte. Możesz wypróbować podejście typu Area-Under-the-Curve, takie jak zaproponowane przez Zhanga i Muellera (2011), aby się tym zająć, ale tak naprawdę w celu dopasowania czasu nawet do normalizacji ponadnormatywnej (tj. Zastąpić przez może zrobić tak, jak w tym artykule Tanga i Muellera (2009) . za drugim, ale w każdym razie, jak zauważyłeś, normalizacja próbek jest konieczność.f(x)f(x)supy|f(x)|

W zależności od charakteru danych można znaleźć literaturę dotyczącą konkretnej aplikacji. Osobiście uważam, że podejście polegające na minimalizowaniu w odniesieniu do pary funkcji wypaczania celu jest najbardziej intuicyjne ze wszystkich. Zatem funkcją docelową do zminimalizowania jest: , gdzie cała sprawa pomimo jej niewiedzy jest w rzeczywistości dość prosta: próbujesz znaleźć funkcję wypaczenia która minimalizuje oczekiwaną sumę niedopasowania krzywej zapytania do krzywa odniesienia (termingCλ(Yi,Yk,g)=E{T(Yi(g(t))Yk(t))2+λ(g(t)t)2dt|Yi,Yk}gYi(g(t))Yk(t)Yi(g(t))Yk(t)) z zastrzeżeniem pewnej normalizacji zniekształcenia czasowego narzuconego przez to wypaczenie (termin ). Właśnie to implementuje pakiet MATLAB PACE . Wiem, że istnieje pakiet R fda autorstwa JO Ramsaya i in. może to również pomóc, ale ja osobiście z niego nie skorzystałem (nieco denerwujące standardowe odniesienie do metod tego pakietu to w wielu przypadkach doskonała książka Ramsaya i Silvermana, Functional Data Analysis (2006) wyd. 2 , i trzeba przeszukać 400-stronicowa książka, by zdobyć to, czego szukasz; przynajmniej dobrze ją przeczytać)g(t)t

Problem, który opisujesz w literaturze statystycznej, jest powszechnie znany jako „ rejestracja krzywej ” (na przykład zobacz Gasser i Kneip (1995) w celu wczesnego rozwiązania problemu) i wchodzi w zakres ogólnych technik analizy danych funkcjonalnych .

(W przypadkach, w których mogłem znaleźć oryginalny artykuł dostępny on-line, link tam kieruje; w przeciwnym razie link prowadzi do ogólnej biblioteki cyfrowej. Prawie wszystkie wspomniane artykuły można znaleźć w wersji roboczej za darmo. Usunąłem swój pierwotny komentarz, ponieważ jest zastąpione tym postem).

usεr11852
źródło
To doskonała i bardzo bardzo pomocna odpowiedź. Referencje są szczególnie pomocne.
Mikko
Czy znasz odpowiednie odniesienie do stwierdzenia, że ​​„amplituda jest problemem” w dtw? Jest to prawdopodobnie tak oczywiste, że staram się znaleźć odniesienie, które wyraźnie o tym dyskutuje.
Mikko
Cieszę się, że Ci się podoba. Jak powiedziałem, traktowanie amplitudy „jest nieco bardziej otwarte” i nie sądzę, aby można było wspomnieć o jednym odnośniku, chyba że jest to związane z daną aplikacją lub metodologią (jak na przykład w pracy Zhanga i Muellera ” 09). Normalizacja jest konieczna, gdy dane są mierzone w różnych jednostkach. To, co zwykle jest kluczowe, to normalizacja funkcjonalnych składników main / canonical / what_have_you, tak aby tworzyły one podstawę w . L2
usεr11852
Ze wspomnianych już zasobów prawdopodobnie najlepszym wyborem będzie prawdopodobnie książka FDA autorstwa Ramsay & Silverman, Chapt. 7 w sprawie „rejestracji i wyświetlania danych funkcjonalnych”. Bardzo dobrym źródłem jest także książka: „Wnioskowanie o dane funkcjonalne za pomocą aplikacji” Horvátha i Kokoszki; Część III „Zależne dane funkcjonalne” dotyczy kwestii normalizacji głównie dlatego, że zależy im na wykrywaniu punktu zmiany.
usεr11852