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 моделей градиентного бустинга, так как он решает задачу с высокой (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.10.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.10-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.10.tar.gz.

File metadata

File hashes

Hashes for overrated_ld_stress_detector-0.1.10.tar.gz
Algorithm Hash digest
SHA256 120670d7d94c5eccd579c08fe94ab844c5c1c56a1e8016cbfefa88ffd05dffa0
MD5 4987e172659b40d0f263171f4cbc0599
BLAKE2b-256 88d1b18f3a92e1016466f59c2b00907f6f50a8878211baf9722297c601a92310

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for overrated_ld_stress_detector-0.1.10-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ea389f158f1cfb21ed7fe3422df4c56e7bb804b0f43b3b177c669b14e0b1151c
MD5 84b50f6d71b195d03e35ab9706bdd734
BLAKE2b-256 f86c22a107b91230d4b0e3131491012da503da70deaa62ff8b3a0a314edfc406

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