При работе с потоковыми данными вам может не потребоваться / не нужно встраивать все точки истории в одну карту t-SNE. В качестве альтернативы вы можете выполнить онлайн-встраивание , выполнив следующие простые шаги:
выберите временное окно длительностью T, достаточно длинное, чтобы каждый интересующий образец появлялся как минимум пару раз в длительности окна.
прокрутите окно по мере поступления потоков данных с шагом по времени dt, намного меньшим, чем T. Для каждой позиции окна вычислите вложение t-SNE точек данных во временное окно.
Посеять каждое вложение с результатом предыдущего. В t-SNE необходимо выбрать начальные координаты точек данных в низкоразмерном пространстве. В нашем случае, поскольку мы выбираем dt, намного меньший, чем T, два последовательных вложения разделяют большинство своих точек данных. Для всех общих точек данных сопоставьте их начальные координаты в текущем встраивании с их окончательными координатами в предыдущем встраивании . Этот шаг обеспечит согласованное представление похожих шаблонов в последующих встраиваниях. (в реализации sklearn в python параметр seed равен «init». По умолчанию реализация sklearn устанавливает начальную позицию точек случайным образом)
Примечание 1. Важно, чтобы интересующие шаблоны появлялись хотя бы один раз в любом заданном временном окне, чтобы память представления не терялась, когда окно скользит по набору данных. Действительно, t-SNE обычно не сходится к уникальному решению, а только к локальному минимуму, поэтому, если память потеряна, похожий шаблон может быть представлен совершенно по-разному в двух случаях внедрения.
Примечание 2: Этот метод особенно актуален при работе с нестационарными временными рядами, где желательно отслеживать паттерны, которые медленно развиваются во времени. Действительно, каждое вложение здесь специально предназначено для небольшого временного окна, в котором оно вычисляется, гарантируя, что оно наилучшим образом фиксирует временную локальную структуру (в отличие от полного встраивания всего нестационарного набора данных).
Примечание 3: В этом методе последовательные вложения не могут быть распараллелены, потому что нужно получить результат предыдущего вложения, чтобы заполнить следующее. Однако, поскольку начальное число (то есть начальные координаты точек) хорошо выбрано для большинства точек (все общие точки между последовательными вложениями), вложение обычно сходится очень быстро, всего за несколько итераций.
Пример применения этого метода к нестационарным временным рядам см. В этой статье ( ICLR 2016, Изучение устойчивых представлений в изменяющемся мире с онлайн-сервисом t-SNE: подтверждение концепции в певчей птице ), где он был успешно применен отслеживать появление слогов в процессе разработки в певчей птице.