Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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 и др.
- Host: GitHub
- URL: https://github.com/koldim2001/time_series_theory
- Owner: Koldim2001
- Created: 2022-11-14T19:31:03.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-05-02T21:17:57.000Z (over 1 year ago)
- Last Synced: 2024-01-29T16:04:12.177Z (12 months ago)
- Topics: 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
- Language: Jupyter Notebook
- Homepage:
- Size: 7.65 MB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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)
---
### №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)