{"id":19349379,"url":"https://github.com/koldim2001/time_series_theory","last_synced_at":"2025-08-29T17:09:44.208Z","repository":{"id":108989623,"uuid":"566007482","full_name":"Koldim2001/time_series_theory","owner":"Koldim2001","description":"Решение задач по анализу временных рядов: детекция пиков QRS на сигналах ЭКГ с помощью ML, прогнозирование заболеваемости COVID с помощью LSTM и др.","archived":false,"fork":false,"pushed_at":"2023-05-02T21:17:57.000Z","size":8026,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T09:22:53.421Z","etag":null,"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"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Koldim2001.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-11-14T19:31:03.000Z","updated_at":"2024-10-31T08:40:40.000Z","dependencies_parsed_at":"2023-05-20T22:00:47.601Z","dependency_job_id":null,"html_url":"https://github.com/Koldim2001/time_series_theory","commit_stats":{"total_commits":19,"total_committers":2,"mean_commits":9.5,"dds":0.4736842105263158,"last_synced_commit":"f77d61baa929a93dc0c9273f1f7afa1ad483295f"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Koldim2001%2Ftime_series_theory","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Koldim2001%2Ftime_series_theory/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Koldim2001%2Ftime_series_theory/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Koldim2001%2Ftime_series_theory/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Koldim2001","download_url":"https://codeload.github.com/Koldim2001/time_series_theory/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250384748,"owners_count":21421786,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["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"],"created_at":"2024-11-10T04:26:01.891Z","updated_at":"2025-04-23T06:30:52.564Z","avatar_url":"https://github.com/Koldim2001.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Решение различных задач по анализу временных рядов\nВ данном репозитории собраны проекты по прогнозированию временных последовательностей, детектированию определенных паттернов на сигналах, фильтрации с помощью рядов Фурье, а так же решение эконометрических задач по установлению зависимостей между разными временными последовательностями.\n\n---\n\n### №1 Задачей является научить модель детектировать наличие QRS комплекса в сигнале ЭКГ.\nВ процессе решения был создан бинарный классификатор, который по небольшой области размером в 200 временных отчетов (вырезанной части исходного сигнала) научился определять, имеется ли по центру участка QRS пик. \u003cbr/\u003e\nВ качестве ML модели использовался градиентный бустинг. Обучение происходило по данным ЭКГ сигналов большого числа пациентов. Датасет сигналов электрокардиограммы для обучения и тестирования был взят с [MIT-BIH Database](https://www.kaggle.com/datasets/mondejar/mitbih-database?resource=download\u0026select=100.csv). \u003cbr/\u003e\nДля итогового определения QRS комплеса на неизвестном сигнале используется подход со скольжением небольшого окна по сигналу и последующей классификацией каждой области на наличие пика с помощью заранее обученной модели.\u003cbr/\u003e\nВ работе подробно описан метод предподготовки трейновых данных, позволяющий добиться точности порядка 98% на тестовых данных (данных ЭКГ новых пациентов).\n\u003e Решение данного проекта представлено в формате документа [ECG_classification.ipynb](https://nbviewer.org/github/Koldim2001/time_series_theory/blob/main/ECG_classification.ipynb)\n\n\u003cimg align=\"center\" src=\"https://www.mdpi.com/sensors/sensors-17-00176/article_deploy/html/images/sensors-17-00176-g011.png\" alt=\"kolesnokov__dima\" height=\"350\" width=\"480\" /\u003e \n\n---\n### №2 Прогнозирование заболеваемости COVID-19.\nДля решения данной задачи было проведено обучение рекурентной LSTM нейронной сети. Данная архитектура сети лучше всего позволяет прогнозировать временные ряды.\u003cbr/\u003e\nВ качестве тестовых и трейновых данных использовался датасет о заболеваемости короновирусом в России - [COVID.csv](https://github.com/Koldim2001/time_series_theory/blob/main/COVID.csv)\n\u003e Решение данного проекта представлено в формате документа [LSTM_prediction.ipynb](https://nbviewer.org/github/Koldim2001/time_series_theory/blob/main/LSTM_prediction.ipynb)\n\n---\n### №3 Решение задач на фильтрацию сигналов с помощью рядов Фурье, предсказания текущей координаты трекуемого объекта с помощью фильтра Калмана, а также задач на установление зависимостей между темпами вакцинации и активностью твитов на данную тематику.\nДанный проект состояит из трех отдельных несвязанных между собой задач:\n  1) __Ряды Фурье в задаче анализа временных рядов.__ \u003cbr\u003e\n  В этом разделе с помошью представления исходного сигнала в виде ограниченной суммы рядов получилось:\n* Оценить высокочастотную периодичность прироста новых случаев заболевания COVID (график \"Прирост по дням\")\n* Определить даты, соответствующие наивысшим точкам каждой волны заболеваемости\n\n 2) __Фильтр Калмана в задаче анализа временных рядов.__ \u003cbr\u003e\n В этом разделе рассматривалось задание по определению положения трекуемого объекта в каждый момент времени, у которого мы знаем примерную математическую модель, описывающую его движение, а так же имеем зашумленные данные от GPS локатора, который находится на объекте. \u003cbr\u003e\n В процессе решения были для каждой искусственной задачи подобраны наилучшие коэффициенты учета неточностей координаты и скорости для минимизации квадрата ошибки (разности между текущей координатой реального движения и координатой предсказанной с помощью фильтра в данный момент времени).\n \n  2) __Использование эконометрических подходов в задачах по анализу взаимосвязи между временными рядами__ \u003cbr\u003e\n   Даны два датасета: Динамика вакцинации от ковида [(А)](https://www.kaggle.com/datasets/priteshraj10/covid-vaccination-all-countries-data) и активность твитов про ковид и вакцинацию [(Б)](https://www.kaggle.com/datasets/gpreda/all-covid19-vaccines-tweets)\nНеобходимо было:\n* Используя тест Гренджера на причинность, определить, является ли процесс, описываемый датасетом А причиной процесса Б (по Гренджеру), и наоборот.\n* Используя векторную авторегрессионную модель определить, являются ли данные процессы стационарными\n* В случае, если оба процесса являются нестационарными, проверить, являются ли данные процессы коинтегрированными\n\u003e Решение данного проекта представлено в формате документа [fft_kalman_econometrics.ipynb](https://nbviewer.org/github/Koldim2001/time_series_theory/blob/main/fft_kalman_econometrics.ipynb)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoldim2001%2Ftime_series_theory","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkoldim2001%2Ftime_series_theory","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoldim2001%2Ftime_series_theory/lists"}