Closed nicl-nno closed 9 months ago
SSA - like method was implemented.
Here results obtained with n_components=5, and n_components=50
Касательно группировки компонент. Есть "простой" и "сложный" вариант.
Простой вариант - Группировка на основе матрицы взаимных корреляций. Выглядит она так.
Это матрица размером KxK, где k - число компонент. Каждый элемент матрица - метрика близости собственных векторов. Сам алгоритм:
Функции для реализации алгоритма лежат здесь
Вариант посложнее - группировка на основе частного анализа и анализа регулярности угла между собственными векторами. Статья. Мини разбор отправил ввиде пдф файла.
Касательно группировки компонент матрицы V.
Вижу здесь два подхода. Первый это мы проводим анализ компонент матрицы U (матрицы в которой вектора это "типовые" временные подпоследовательности). Тут идея в том что мы группируем между собой "типовые" временные подпоследовательности (тренды, колебания и прочее). Допустим мы знаем что вектора Un и Un+1 коррелируют между собой, тогда мы домножаем каждый из них на соотвестующие им собственные числа, складываем получившиеся вектора и потом каким то образом "усредняем". Таким образом у нас получится набор из типовых "трендов", "циклик" и прочего. Возникает вопрос - а какие тогда брать вектора Vn (вектора которые описывают временную динамику каждой из типовых компонент)? Первая стратегия - брать вектор Vn, который соотвествует наибольшему собственному значению вектора Un из которого был получен соотвествующий "типовой" вектор. Вторая стратегия - "усреднять" динамики (брать взвешенную комбинацию или использовать "более слабые" динамикак как экзогенные переменные)
Добавил модель, использующую ансамбль предсказаний моделей autoTheta, autoETS, autoARIMA для предсказания динамик VT
https://giotto-ai.github.io/gtda-docs/0.5.1/notebooks/time_series_forecasting.html
В этом блокноте показано, как с помощью giotto-tda можно создавать топологические признаки для задач прогнозирования временных рядов. Топологические признаки создаются на основе последовательных скользящих окон по данным. В моделях скользящих окон единый массив временных рядов X формы (n_timestamps, n_features) превращается во временной ряд окон по данным, имеющий новую форму (n_windows, n_samples_per_window, n_features). При построении моделей прогнозирования со скользящими окнами возникают две основные проблемы.
Целевая переменная должна быть правильно "выровнена" с каждым окном, чтобы задача прогнозирования была осмысленной и, например, не происходила "утечка" информации из будущего. В частности, необходимо "передискретизировать" y так, чтобы она тоже имела длину n_окон.
Для решения этих проблем предоставляет набор трансформаторов с методами resample, transform_resample и fit_transform_resample.
TSF functionality should be implemented using FEDOT as a core.
The DL models for forecasting should be added as candidate operations.
They can be obtained from: https://github.com/jdb78/pytorch-forecasting