Wenn Sie mit Streaming-Daten arbeiten, möchten / müssen Sie möglicherweise nicht alle Punkte im Verlauf in eine einzelne t-SNE-Karte einbetten. Alternativ können Sie eine Online-Einbettung durchführen, indem Sie die folgenden einfachen Schritte ausführen :
Wählen Sie ein Zeitfenster der Dauer T, das lang genug ist, damit jedes interessierende Muster mindestens ein paar Mal in der Fensterdauer erscheint.
Scrollen Sie durch das Fenster, während die Datenströme einlaufen, mit einem Zeitschritt dt, der viel kleiner als T ist. Berechnen Sie für jede Position des Fensters eine t-SNE-Einbettung der Datenpunkte im Zeitfenster.
Setzen Sie jede Einbettung mit dem Ergebnis der vorherigen ein. In t-SNE muss man die Anfangskoordinaten der Datenpunkte im niedrigdimensionalen Raum wählen. In unserem Fall teilen zwei aufeinanderfolgende Einbettungen die meisten ihrer Datenpunkte, da wir dt viel kleiner als T wählen. Ordnen Sie für alle gemeinsam genutzten Datenpunkte ihre Anfangskoordinaten in der aktuellen Einbettung ihren Endkoordinaten in der vorherigen Einbettung zu . Dieser Schritt stellt sicher, dass ähnliche Muster über aufeinanderfolgende Einbettungen hinweg konsistent dargestellt werden. (In der sklearn-Implementierung in Python ist der seed-Parameter "init". Standardmäßig legt die sklearn-Implementierung die Anfangsposition der Punkte nach dem Zufallsprinzip fest.)
Hinweis 1: Es ist wichtig, dass die Muster von Interesse in einem bestimmten Zeitfenster mindestens einmal auftreten, damit der Speicher der Darstellung nicht verloren geht, wenn das Fenster durch den Datensatz gleitet. Tatsächlich konvergiert t-SNE typischerweise nicht zu einer eindeutigen Lösung, sondern nur zu einem lokalen Minimum. Wenn der Speicher verloren geht, kann ein ähnliches Muster in zwei Instanzen einer Einbettung auf sehr unterschiedliche Weise dargestellt werden.
Anmerkung 2: Diese Methode ist besonders relevant, wenn es um instationäre Zeitreihen geht, bei denen Muster verfolgt werden sollen, die sich langsam im Laufe der Zeit entwickeln. In der Tat wird jede Einbettung speziell auf das kleine Zeitfenster zugeschnitten, in dem sie berechnet wird, um sicherzustellen, dass die zeitlich lokale Struktur optimal erfasst wird (im Gegensatz zu einer vollständigen Einbettung des gesamten nicht stationären Datensatzes).
Anmerkung 3: Bei dieser Methode können die aufeinanderfolgenden Einbettungen nicht parallelisiert werden, da das Ergebnis der vorherigen Einbettung benötigt wird, um die nächste Einbettung zu erhalten. Da jedoch der Startwert (dh die Anfangskoordinaten der Punkte) für die meisten Punkte (alle gemeinsamen Punkte zwischen aufeinanderfolgenden Einbettungen) gut ausgewählt ist, konvergiert eine Einbettung normalerweise sehr schnell, und zwar nur in wenigen Iterationen.
Ein Beispiel für die Anwendung dieser Methode auf instationäre Zeitreihen finden Sie in diesem Artikel ( ICLR 2016, Lernen stabiler Darstellungen in einer sich verändernden Welt mit online t-SNE: Proof of Concept im Singvogel ), in dem sie erfolgreich angewendet wurde die Entstehung von Silben über die Entwicklung im Singvogel zu verfolgen.