Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/koldim2001/time_series_theory

Решение задач по анализу временных рядов: детекция пиков QRS на сигналах ЭКГ с помощью ML, прогнозирование заболеваемости COVID с помощью LSTM и др.
https://github.com/koldim2001/time_series_theory

catboost covid-19 ecg-qrs-detection ecg-signal econometrics fft-analysis forecasting gradient-boosting kalman-filter lstm-neural-networks machine-learning rcnn signal-processing time-series

Last synced: 2 months ago
JSON representation

Решение задач по анализу временных рядов: детекция пиков QRS на сигналах ЭКГ с помощью ML, прогнозирование заболеваемости COVID с помощью LSTM и др.

Awesome Lists containing this project

README

        

# Решение различных задач по анализу временных рядов
В данном репозитории собраны проекты по прогнозированию временных последовательностей, детектированию определенных паттернов на сигналах, фильтрации с помощью рядов Фурье, а так же решение эконометрических задач по установлению зависимостей между разными временными последовательностями.

---

### №1 Задачей является научить модель детектировать наличие QRS комплекса в сигнале ЭКГ.
В процессе решения был создан бинарный классификатор, который по небольшой области размером в 200 временных отчетов (вырезанной части исходного сигнала) научился определять, имеется ли по центру участка QRS пик.

В качестве ML модели использовался градиентный бустинг. Обучение происходило по данным ЭКГ сигналов большого числа пациентов. Датасет сигналов электрокардиограммы для обучения и тестирования был взят с [MIT-BIH Database](https://www.kaggle.com/datasets/mondejar/mitbih-database?resource=download&select=100.csv).

Для итогового определения QRS комплеса на неизвестном сигнале используется подход со скольжением небольшого окна по сигналу и последующей классификацией каждой области на наличие пика с помощью заранее обученной модели.

В работе подробно описан метод предподготовки трейновых данных, позволяющий добиться точности порядка 98% на тестовых данных (данных ЭКГ новых пациентов).
> Решение данного проекта представлено в формате документа [ECG_classification.ipynb](https://nbviewer.org/github/Koldim2001/time_series_theory/blob/main/ECG_classification.ipynb)

kolesnokov__dima

---
### №2 Прогнозирование заболеваемости COVID-19.
Для решения данной задачи было проведено обучение рекурентной LSTM нейронной сети. Данная архитектура сети лучше всего позволяет прогнозировать временные ряды.

В качестве тестовых и трейновых данных использовался датасет о заболеваемости короновирусом в России - [COVID.csv](https://github.com/Koldim2001/time_series_theory/blob/main/COVID.csv)
> Решение данного проекта представлено в формате документа [LSTM_prediction.ipynb](https://nbviewer.org/github/Koldim2001/time_series_theory/blob/main/LSTM_prediction.ipynb)

---
### №3 Решение задач на фильтрацию сигналов с помощью рядов Фурье, предсказания текущей координаты трекуемого объекта с помощью фильтра Калмана, а также задач на установление зависимостей между темпами вакцинации и активностью твитов на данную тематику.
Данный проект состояит из трех отдельных несвязанных между собой задач:
1) __Ряды Фурье в задаче анализа временных рядов.__

В этом разделе с помошью представления исходного сигнала в виде ограниченной суммы рядов получилось:
* Оценить высокочастотную периодичность прироста новых случаев заболевания COVID (график "Прирост по дням")
* Определить даты, соответствующие наивысшим точкам каждой волны заболеваемости

2) __Фильтр Калмана в задаче анализа временных рядов.__

В этом разделе рассматривалось задание по определению положения трекуемого объекта в каждый момент времени, у которого мы знаем примерную математическую модель, описывающую его движение, а так же имеем зашумленные данные от GPS локатора, который находится на объекте.

В процессе решения были для каждой искусственной задачи подобраны наилучшие коэффициенты учета неточностей координаты и скорости для минимизации квадрата ошибки (разности между текущей координатой реального движения и координатой предсказанной с помощью фильтра в данный момент времени).

2) __Использование эконометрических подходов в задачах по анализу взаимосвязи между временными рядами__

Даны два датасета: Динамика вакцинации от ковида [(А)](https://www.kaggle.com/datasets/priteshraj10/covid-vaccination-all-countries-data) и активность твитов про ковид и вакцинацию [(Б)](https://www.kaggle.com/datasets/gpreda/all-covid19-vaccines-tweets)
Необходимо было:
* Используя тест Гренджера на причинность, определить, является ли процесс, описываемый датасетом А причиной процесса Б (по Гренджеру), и наоборот.
* Используя векторную авторегрессионную модель определить, являются ли данные процессы стационарными
* В случае, если оба процесса являются нестационарными, проверить, являются ли данные процессы коинтегрированными
> Решение данного проекта представлено в формате документа [fft_kalman_econometrics.ipynb](https://nbviewer.org/github/Koldim2001/time_series_theory/blob/main/fft_kalman_econometrics.ipynb)