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_csv('C:/Data/dataset_test.csv',  # путь до данных, которые необходимо проанализировать
                 index_col=0, # Загрузка данных из Excel
                 sep=';')

model = pretrained_model.get_model(model_type='catboost') # Загрузка модели. Доступные модели: 'catboost' и 'cnn'
df = df.drop("Class_label",
             axis=1)
result = model.predict(df) # Получение результатов анализа.

df['Class_label'] = result
df.to_csv('C:/Data/Overrated.csv',
          sep=';')

utils.visualize_data(df,
                     user_id='dff4a3a1-3d58-4072-a903-e5b38e2c541f',
                     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 моделей градиентного бустинга, с временем инференса 93.4 мс, так как он решает задачу с высокой (более 70% на отложенной выборке) точностью.
  • В качестве нейронной сети была реализована сверточная нейронная сеть с двумя головами.

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

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

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

Имя Роль Контакт
Суржиков Александр Data Scientist https://t.me/mansasha
--- --- ---
Кочетков Максим Data Scientist https://t.me/Mahhets
--- --- ---
Ванданов Сергей 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.11.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.11-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.11.tar.gz.

File metadata

File hashes

Hashes for overrated_ld_stress_detector-0.1.11.tar.gz
Algorithm Hash digest
SHA256 55bd5565d9c1c3810177d8d01f237b698e6b31cf42a5c42641968ecf0962b6ab
MD5 7d597cfdfc4bec123d53848b4ea4ffb4
BLAKE2b-256 6ddbbbb117bce58273a6b53f4d6c89a7e6fe1b49696e002fbed448ea1fc4ff16

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for overrated_ld_stress_detector-0.1.11-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 7365e123554830b59570121bf53bfb1fdc14885e8e75c4f12056a5cd5366609b
MD5 46b111fac046ac76d38f3fbe128df925
BLAKE2b-256 bbbf273583a853321f427869b982716184af26826383231d7dc5b7648842dea3

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