В данном репозитории собраны проекты по прогнозированию временных последовательностей, детектированию определенных паттернов на сигналах, фильтрации с помощью рядов Фурье, а так же решение эконометрических задач по установлению зависимостей между разными временными последовательностями.
В процессе решения был создан бинарный классификатор, который по небольшой области размером в 200 временных отчетов (вырезанной части исходного сигнала) научился определять, имеется ли по центру участка QRS пик.
В качестве ML модели использовался градиентный бустинг. Обучение происходило по данным ЭКГ сигналов большого числа пациентов. Датасет сигналов электрокардиограммы для обучения и тестирования был взят с MIT-BIH Database.
Для итогового определения QRS комплеса на неизвестном сигнале используется подход со скольжением небольшого окна по сигналу и последующей классификацией каждой области на наличие пика с помощью заранее обученной модели.
В работе подробно описан метод предподготовки трейновых данных, позволяющий добиться точности порядка 98% на тестовых данных (данных ЭКГ новых пациентов).
Решение данного проекта представлено в формате документа ECG_classification.ipynb
Для решения данной задачи было проведено обучение рекурентной LSTM нейронной сети. Данная архитектура сети лучше всего позволяет прогнозировать временные ряды.
В качестве тестовых и трейновых данных использовался датасет о заболеваемости короновирусом в России - COVID.csv
Решение данного проекта представлено в формате документа LSTM_prediction.ipynb
№3 Решение задач на фильтрацию сигналов с помощью рядов Фурье, предсказания текущей координаты трекуемого объекта с помощью фильтра Калмана, а также задач на установление зависимостей между темпами вакцинации и активностью твитов на данную тематику.
Данный проект состояит из трех отдельных несвязанных между собой задач:
- Ряды Фурье в задаче анализа временных рядов.
В этом разделе с помошью представления исходного сигнала в виде ограниченной суммы рядов получилось:
- Оценить высокочастотную периодичность прироста новых случаев заболевания COVID (график "Прирост по дням")
- Определить даты, соответствующие наивысшим точкам каждой волны заболеваемости
-
Фильтр Калмана в задаче анализа временных рядов.
В этом разделе рассматривалось задание по определению положения трекуемого объекта в каждый момент времени, у которого мы знаем примерную математическую модель, описывающую его движение, а так же имеем зашумленные данные от GPS локатора, который находится на объекте.
В процессе решения были для каждой искусственной задачи подобраны наилучшие коэффициенты учета неточностей координаты и скорости для минимизации квадрата ошибки (разности между текущей координатой реального движения и координатой предсказанной с помощью фильтра в данный момент времени). -
Использование эконометрических подходов в задачах по анализу взаимосвязи между временными рядами
Даны два датасета: Динамика вакцинации от ковида (А) и активность твитов про ковид и вакцинацию (Б) Необходимо было:
- Используя тест Гренджера на причинность, определить, является ли процесс, описываемый датасетом А причиной процесса Б (по Гренджеру), и наоборот.
- Используя векторную авторегрессионную модель определить, являются ли данные процессы стационарными
- В случае, если оба процесса являются нестационарными, проверить, являются ли данные процессы коинтегрированными
Решение данного проекта представлено в формате документа fft_kalman_econometrics.ipynb