Skip to main content

Stress detection.

Project description

Детектор уровня стресса от команды Overrated

PyPI version

Детектор уровня стресса основан на анализе сигналов фотоплетизмограммы и пьезоплетизмограммы с использованием технологий искусственного интеллекта.

На картинке ниже изображен один из результатов анализа сигналов фотоплетизмограммы и пьезоплетизмограммы.
Введены следующие обозначения: 0 - слабый стресс. 1 - умеренный стресс. 2 - сильный стресс. photo_example phezo_example

Установка

  • pip install -U overrated-ld-stress-detector

Пример использования

import pandas as pd
from overrated_ld_stress_detector.ml import pretrained_model # импорт разработанного решения
from overrated_ld_stress_detector.visualization import utils  # импорт разработанного решения

df = pd.read_excel("models/dataset_train.xlsx", # путь до данных, которые необходимо проанализировать
                   engine='openpyxl') # Загрузка данных из Excel

model = pretrained_model.get_model(model_type='catboost') # Загрузка модели. Доступные модели: 'catboost' и 'cnn'

result = model.predict(df) # Получение результатов анализа.

utils.visualize_data(df,
                     user_id='8fc79c7f-bbdb-4512-b460-c75aacd1a3c7',
                     test_id=3,
                     presentation_id=1,
                     result=result) # визуализация результатов для некоторого пользователя

Используемое решение

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

Уникальность:

  • Разработанный python package является уникальным решением в сфере детектирования уровня стресса, он может быть установлен на любой компьютер с поддержкой python 3 и использован локально, без рисков связанных с возможной утечкой данных.

Стек используемых технологий:

python3, pypi, git, github - инструменты разработки
pytorch, pytorch-lightning, catboost, scikit-learn, scipy - фреймворки машинного обучения
wandb - логирование
plotly, seaborn - инструменты визуализации

Сравнение моделей

  • В качестве устойчивой классификационного решения был выбран ансамбль из 5 моделей градиентного бустинга, так как он решает задачу с высокой (70% на отложенной выборке) точностью.
  • В качестве сеть была сверточная нейронная сеть.

Проводимые исследования

  • research/catboost.ipynb - исследования с моделями градиентного бустинга
  • research/signal_eda.ipynb и research/spec_eda.ipynb - спектральный и частотный анализ исходных сигналов

Разработчики

Имя Роль Контакт
Суржиков Александр Data Scientist
--- --- ---
Кочетков Максим Data Scientist https://t.me/mansasha
--- --- ---
Ванданов Сергей Data Scientist
--- --- ---
Андрей Стебеньков Data Scientist

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

overrated_ld_stress_detector-0.1.9.tar.gz (40.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

overrated_ld_stress_detector-0.1.9-py2.py3-none-any.whl (76.4 MB view details)

Uploaded Python 2Python 3

File details

Details for the file overrated_ld_stress_detector-0.1.9.tar.gz.

File metadata

File hashes

Hashes for overrated_ld_stress_detector-0.1.9.tar.gz
Algorithm Hash digest
SHA256 0e3698781467124337c3f3367a56c6bdd3615f0321be867849fc778ee5999bc4
MD5 0ebb98da3bd7035190375dd1116548c7
BLAKE2b-256 736a9ba7954d44c83ab4f7a57981143b981f8a52ba7a9500c18adfe8b722d3ec

See more details on using hashes here.

File details

Details for the file overrated_ld_stress_detector-0.1.9-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for overrated_ld_stress_detector-0.1.9-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 4e41fdc8ffdfe2ddfcb01ecde8c051486377209e3866185bbaa48d40c17f737c
MD5 5037de5f31b938030e2048ed2e925403
BLAKE2b-256 6760398462465f73a75a27b9b9f980d278ec166693e5889cb8b783602c8adf8e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page