Stress detection.
Project description
Детектор уровня стресса от команды Overrated
Детектор уровня стресса основан на анализе сигналов фотоплетизмограммы и пьезоплетизмограммы с использованием технологий искусственного интеллекта.
На картинке ниже изображен один из результатов анализа сигналов фотоплетизмограммы и пьезоплетизмограммы.
Введены следующие обозначения: 0 - слабый стресс. 1 - умеренный стресс. 2 - сильный стресс.
Установка
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file overrated_ld_stress_detector-0.1.11.tar.gz.
File metadata
- Download URL: overrated_ld_stress_detector-0.1.11.tar.gz
- Upload date:
- Size: 40.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
55bd5565d9c1c3810177d8d01f237b698e6b31cf42a5c42641968ecf0962b6ab
|
|
| MD5 |
7d597cfdfc4bec123d53848b4ea4ffb4
|
|
| BLAKE2b-256 |
6ddbbbb117bce58273a6b53f4d6c89a7e6fe1b49696e002fbed448ea1fc4ff16
|
File details
Details for the file overrated_ld_stress_detector-0.1.11-py2.py3-none-any.whl.
File metadata
- Download URL: overrated_ld_stress_detector-0.1.11-py2.py3-none-any.whl
- Upload date:
- Size: 76.4 MB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7365e123554830b59570121bf53bfb1fdc14885e8e75c4f12056a5cd5366609b
|
|
| MD5 |
46b111fac046ac76d38f3fbe128df925
|
|
| BLAKE2b-256 |
bbbf273583a853321f427869b982716184af26826383231d7dc5b7648842dea3
|