Wie codiere ich Datum und Uhrzeit eines Ereignisses für ein neuronales Netzwerk?
Ich habe keine fortlaufende Zeitreihe, sondern einige Ereignisse mit Datum und Uhrzeit, und ich analysiere eine Art von Interesse. Dieses Interesse unterscheidet sich zwischen Morgen und Abend und zwischen Wochentagen und zwischen Sommer und Winter sowie vor Weihnachten und Ostern und so weiter. Und die Ereignisse selbst haben eine starke ungleichmäßige Verteilung über die Zeit (mehr am Tag als in der Nacht, einige Arten mehr während der Woche, einige mehr am Wochenende).
Ich habe versucht, es als Anzahl der Wochen im Jahr, als Wochentag 1-7 und als Stunde des Tages zu codieren. Das Herumspielen mit einem spärlichen Autoencoder erweckte jedoch den Eindruck, dass meine Daten für ein neuronales Netzwerk keinen Sinn ergeben und selbst mit einer großen verborgenen Schicht nicht einmal etwas in der Nähe der Eingabe reproduzieren können. Weder als kategoriale 0-1 noch als normalisierte Werte.
Aber die Suche nach der Kodierung der Zeit für ein neuronales Netzwerk gibt meistens Informationen über Zeitreihen, also bin ich ein bisschen mit verbundenen Augen vom Wald, suche aber nach dem Baum.
Natürlich könnte ich mir die Daten ansehen und sie grob mehr oder weniger despotisch einordnen. Das Konzept des Deep Learning scheint jedoch die gesamte handgefertigte manuelle Merkmalsextraktion zu beseitigen. Und die Kategorisierung würde große Sprünge in eine natürlich kontinuierliche Eingabevariable einfügen.
Meine "natürliche Kodierung" in meinem Gehirn ähnelt eher einer unscharfen Zugehörigkeit zu einigen Kategorien wie "Nacht", "Morgen", "Wochentag" und so weiter.
Um das Ganze interessanter zu machen, enthält auch die abhängige Variable diese Datums- / Zeitdaten, aber das ist eine andere Frage.
EDIT: Irgendwie im Zusammenhang mit der zyklischen Art von Daten sind einige aktuelle Fragen, wie
Welche statistischen Tests sind mit diesem Tageszeitdatensatz sinnvoll?
quelle
Sie können versuchen, die Zeit als große Matrix darzustellen, dh 365 x 24, um die Tage des Jahres und die Stunden des Tages darzustellen, und diese dann in einen 1 x 8760-Vektor "abrollen". Die Zeit würde dann der Position innerhalb dieses Vektors entsprechen und der Wert an dieser Position ist der Wert zu diesem Zeitpunkt.
quelle
Ich würde vorschlagen, mehrere Eingabefunktionen aus den Zeitreihen unter Verwendung von Beziehungen zu erstellen, von denen Sie wissen (oder glauben), dass sie bereits in den Daten vorhanden sind. Sie geben beispielsweise an, dass die Zielausgabe variieren wird:
Warum also nicht eine Reihe von Funktionen erstellen, die jeden dieser „Zyklen“ beschreiben? Dies kann dazu beitragen, sowohl Mikro- als auch Makrovariationen herauszufiltern und nicht nur eine einzige Funktion, die alle beschreibt.
Beispielsweise...
quelle