Co to jest szeregi czasowe

Co to jest szeregi czasowe

Analiza szeregów czasowych jest widoczną techniką analizy danych eksploracyjnych uczenia maszynowego, która pozwala nam zobaczyć, jak zmieniają się punkty danych w czasie. Kilka oświadczeń problemowych opartych na szeregach czasowych, takich jak prognoza sprzedaży biletów, analiza cen akcji itp. Szeregi czasowe mogą wykazywać różne trendy, które trudno przeanalizować, po prostu patrząc na fabułę. W rezultacie grupowanie trendów szeregów czasowych jest dobrym pomysłem. Przyjrzymy się, czym jest szereg czasowy, co to jest klastrowanie i jak klastrować dane szeregów czasowych.

Co to jest szeregi czasowe?

Szereg czasowy to zbiór wskaźników danych zgrupowanych w kolejności czasu. Punkty danych reprezentują aktywność, która występuje przez pewien czas. Wspólnym przykładem jest całkowita liczba akcji obrotowych w danym przedziale czasowym, wraz z innymi parametrami, takimi jak ceny akcji i ich odpowiednie informacje handlowe na każdą sekundę. W przeciwieństwie do zmiennej czasu ciągłego, te punkty danych serii czasowej mają dyskretne wartości w różnych momentach w czasie. W rezultacie często stosuje się dyskretne zmienne danych. Dane dla szeregów czasowych można gromadzić przez dowolny czas, od kilku minut do kilku lat. Czas gromadzenia danych nie ma niższego ani górnego granicy. Istnieją różne problemy prognozowe oparte na szeregach czasowych w uczeniu maszynowym i głębokie uczenie się, takie jak przewidywanie ceny akcji firmy, rozpoznawanie działalności człowieka, prognozowanie ilości biletów lotniczych itp. To oszczędza dużo pieniędzy i pomaga firmom podejmować staranne decyzje przed zainwestowaniem w coś. Przykładowy wykres jest podany poniżej pokazuje zmianę obserwacji z czasem.

Co się skupia?

Klastrowanie to rodzaj techniki uczenia się uczenia maszynowego bez nadzoru. Wnioski są pozyskiwane z zestawów danych, które nie mają oznaczonych zmiennych wyjściowych w metodzie bez nadzoru uczenia się. Jest to rodzaj eksploracyjnej analizy danych, który pozwala nam przyjrzeć się wielowymiarowym zestawom danych.

Klastrowanie to uczenie maszynowe lub podejście matematyczne, w którym punkty danych są pogrupowane w określoną liczbę klastrów o podobnych cechach wśród punktów danych w każdym klastrze. Klastry składają się z punktów danych zgrupowanych razem, aby przestrzeń między nimi była ograniczona do minimum. Sposób, w jaki tworzą się klastry, zależy od rodzaju wybieranego algorytmu. Ponieważ nie ma kryterium dobrego klastrowania, wnioski wyciągnięte z zestawów danych zależą również od tego, co i jak użytkownik opracowuje algorytm grupowania. Klaster może być używany do rozwiązywania problemów, takich jak segmentacja klientów, systemy rekomendatora, wykrywanie anomalii i tak dalej. Podejście do klastrowania K-MANS, w którym nie mamy etykiet i musimy umieścić każdy punkt danych na własnym klastrze, może być dla Ciebie rozpoznawalne. Widoczne podejście do grupowania są k-średnich. Poniższy rysunek pokazuje, w jaki sposób skupiamy różne punkty danych z tymi samymi funkcjami w tej samej klastrze.

Co to jest grupowanie szeregów czasowych?

Technika klastrowania szeregów czasowych to podejście przetwarzania danych bez nadzoru do klasyfikacji punktów danych w oparciu o ich podobieństwo. Celem jest maksymalizacja podobieństwa danych między klastrami przy jednoczesnym minimalizowaniu. Podstawową techniką w nauce danych do identyfikacji anomalii i odkrywania wzorców jest grupowanie szeregów czasowych, które jest używane jako podprogram dla innych bardziej skomplikowanych algorytmów. Ta technika jest szczególnie pomocna podczas analizy trendów w bardzo dużych zestawach danych szeregów czasowych. Nie możemy rozróżnić trendów, patrząc na fabułę szeregów czasowych. Tutaj możesz skupić trendy. Różne trendy zostaną następnie pogrupowane w różne klastry.

Jądro K oznacza

Technika jądra odnosi się do przekształcania danych w inny wymiar z wyraźną krawędzią oddzielającą między nieliniowo oddzielnymi grupami danych. Technika jądra Kernel K-MANS wykorzystuje tę samą sztuczkę co K-śred. Po zastosowaniu do algorytmu podejście jądra może znaleźć struktury nieliniowe i najlepiej nadaje się do zbiorów danych rzeczywistych.

K oznacza grupowanie szeregów czasowych

Najczęstszą metodą grupowania szeregów czasowych jest k. Wspólnym podejściem jest spłaszczenie danych szeregów czasowych w tablicę 2-D, z każdą kolumną dla każdego indeksu, a następnie użycie standardowych algorytmów klastrowania, takich jak K-średnia do klastrowania danych. Jednak typowe pomiary odległości algorytmów klastrowania, takie jak odległość euklidesowa, są często nieodpowiednie dla szeregów czasowych. Preferowanym sposobem jest użycie metryki do porównywania trendów szeregów czasowych zamiast domyślnej miary odległości. Jedną z najpopularniejszych technik zastosowanych w tym jest dynamiczne wypaczenie czasu.

Dynamiczne wypaczanie czasu

Mimo że jeden sygnał jest przesunięty w czasie z drugiego, dynamiczne wypaczanie czasu pozwala systemowi porównać dwa sygnały i szukać podobieństw. Jego zdolność do sprawdzania znanych artefaktów mowy niezależnie od tempa mówcy sprawia, że ​​jest to również przydatne do problemów z rozpoznawaniem mowy. Na przykład, jeśli istnieją dwie tablice: [1, 2, 3] i [4, 5, 6], obliczenie odległości między nimi jest łatwe, ponieważ można po prostu wykonać odejmowanie elementów i dodać wszystkie różnice. Jednak nie będzie łatwe, gdy rozmiar tablic jest inny. Możemy uznać te tablice za sekwencję sygnałów. „Dynamiczny” komponent sugeruje, że sekwencję sygnału można przenieść w przód iw tył, aby poszukać dopasowania bez przyspieszania lub spowolnienia całej sekwencji. Jeśli wypaczenie czasu się rozciąga lub kurczy gumkę, DTW rozciąga. Poniżej znajduje się wizualna reprezentacja DTW.

Kroki dla dynamicznego wypaczenia czasu

  1. Zrób równą liczbę punktów w każdej z dwóch serii.
  2. Korzystając z formuły odległości euklidesowej, oblicz odległość między pierwszym punktem w pierwszej serii a każdym punktem w drugiej serii. Zapisz obliczoną minimalną odległość.
  3. Przejdź do drugiego punktu i powtórz 2. Idź krok po kroku wraz z punktami i powtórz dwa, aż wszystkie punkty zostaną zakończone.
  4. Weź drugą serię jako punkt odniesienia i powtórz 2 i 3.
  5. Dodaj wszystkie przechowywane minimalne odległości dla prawdziwego oszacowania podobieństwa między dwiema seriami.

Wdrożenie DTW w Python

z fastdtw import fastdtw
od Scipy.przestrzenny.import odległości euklidesowy
sig1 = np.tablica ([1, 2, 3, 4])
sig2 = np.tablica ([1, 2, 2, 4, 4, 5])
odległość, ścieżka = fastDTW (sig1, sig2, dist = euclidean)
wydruku (odległość)
Drukuj (ścieżka)

Użyj przypadków grupowania szeregów czasowych

  1. Stosowane w wykrywaniu anomalii do śledzenia nietypowych trendów w szeregu.
  2. Używane w rozpoznawaniu mowy.
  3. Używane w wykrywaniu wartości odstających.
  4. Stosowane w zastosowaniach biologicznych, w tym rozpoznawanie DNA.

Wniosek

W tym artykule omówiono definicję szeregów czasowych, grupowanie i łączenie trendów z szeregami czasowymi klastrowymi. Przeszliśmy popularną metodę tego zwanego dynamicznego wypaczenia czasu (DTW) oraz procesami i wdrożeniem związanym z jej używaniem.