Jak zakodować datę i godzinę zdarzenia dla sieci neuronowej?
Nie mam ciągłych szeregów czasowych, ale niektóre wydarzenia z datą i godziną, i analizuję pewne zainteresowania. Zainteresowanie to różni się między porankami i wieczorami i różni się między dniami powszednimi oraz między latem a zimą, a także przed Bożym Narodzeniem i Wielkanocą i tak dalej. A same wydarzenia mają silną nierównomierną dystrybucję w czasie (więcej w dzień niż w nocy, niektóre rodzaje więcej w ciągu tygodnia, niektóre więcej w weekend).
Próbowałem zakodować go jako liczbę tygodni w roku, jako dni tygodnia 1-7 i godziny dnia. Ale bawienie się rzadkim autoencoderem dało mi wrażenie, że moje dane nie mają żadnego sensu dla sieci neuronowej, nie mogłyby nawet odtworzyć niczego w pobliżu wejścia nawet przy dużej ukrytej warstwie. Ani jako kategorialne 0-1, ani jako znormalizowane wartości.
Ale szukanie kodowania czasu dla sieci neuronowej daje głównie informacje o szeregach czasowych, więc jestem trochę zasłonięty przez las, ale szukam drzewa.
Oczywiście mogłem spojrzeć na dane i z grubsza podzielić je na mniej lub bardziej despotyczne. Ale koncepcja głębokiego uczenia się wydaje się zmieść wszystkie ręcznie wykonane ekstrakcje funkcji. A kategoryzacja wstawiłaby duże skoki do naturalnie ciągłej zmiennej wejściowej.
Moje „naturalne kodowanie” w moim mózgu przypomina bardziej rozmyte członkostwo w niektórych kategoriach, takich jak „noc”, „poranek”, „dzień powszedni” i tak dalej.
Aby uczynić całość bardziej interesującą, również zmienna zależna zawiera te dane daty / godziny, ale to inne pytanie.
EDYCJA: Jakoś związane z cyklicznym rodzajem danych są niektóre ostatnie pytania, takie jak
Które testy statystyczne są uzasadnione w przypadku zestawu danych o tej porze dnia?
źródło
Możesz spróbować przedstawić czas jako dużą macierz, tj. 365 na 24, aby przedstawić dni roku i godziny dnia, a następnie „rozwinąć” go do wektora 1 na 8760. Czas odpowiadałby wówczas pozycji w tym wektorze, a wartość w tej pozycji jest wartością w tym czasie.
źródło
Sugerowałbym utworzenie wielu funkcji wprowadzania z szeregów czasowych przy użyciu relacji, o których wiesz (lub w których wierzysz), że istnieją już w danych. Na przykład stwierdzasz, że docelowe wyniki będą się różnić:
Dlaczego więc nie stworzyć zestawu funkcji opisujących każdy z tych „cykli”. Może to pomóc wyodrębnić zarówno warianty mikro, jak i makro, a nie jedną funkcję, która opisuje wszystko.
Na przykład...
źródło