WESAD:情绪分类多模态传感器数据集

WESAD数据集包含15名参与者在不同心理状态下的生理信号数据,旨在研究可穿戴设备在压力和情绪检测方面的应用。数据集通过胸部和腕部传感器收集了多种生理信号,并配以问卷评估情绪状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据集下载地址
https://ubicomp.eti.uni-siegen.de/home/datasets/icmi18/
数据集对应代码链接
https://github.com/WJMatthew/WESAD

数据集说明

1.实验设置

参与人员:15人

实验过程:

15名参与人员分别佩戴胸部(chest)和腕部(wrist)传感器,进行90分钟左右的实验,实验阶段主要分为五个:
1.baseline condition: 刚装上传感器后的20分钟,静坐阅读
2.amusement condition:娱乐阶段,观看搞笑短片
3.meditation condition 1:冷静阶段
4.stress condition:压力阶段,实验者处在TSST(Trier Social Stress Test)情境下,这个情景可以有效地让参与者感受到压力
5.meditation condition 2:冷静阶段
ps:每个实验者的实验过程可能有略微不同,具体各阶段的顺序放在各用户目录的SX_quest.csv中,X为用户ID
示例:S2_quest.csv
为了验证实验过程是有效的,每个实验者需要在每个阶段完成后填写调查问卷:
1.Positive and Negative Affect Schedule (PANAS)
PANAS reliably assesses positive (PA) and negative affect (NA),获取二维情绪模型的pleasure值
2.State-Trait Anxiety Inventory (STAI)
gain insight into the anxiety level of the participants
3.Self-Assessment Manikins (SAM)
generate labels in the valence-arousal space,获取二维情绪模型的arousal值
4.Short Stress State Questionnaire (SSSQ)
TSST阶段之后,用SSSQ问卷获取压力类型(worry, engagement, or distress)
具体各问卷问题内容参考数据集readme.pdf => III.2.
PANAS部分问卷内容截图
S2回答截图

2.数据文件说明

# 以S2为例
 - S2/
 - - S2_E4_Data.zip 存放用户各传感器原始数据
 - - - - ACC.csv  
 - - - - BVP.csv
 - - - - EDA.csv  
 - - - - HR.csv  
 - - - - IBI.csv  
 - - - - info.txt  
 - - - - tags.csv  
 - - - - TEMP.csv
 - - S2.pkl 
 - - S2_quest.csv 实验阶段和用户问卷数据
 - - S2_readme.txt  
 - - S2_respiban.txt
 
S2.pkl 存放初步处理过的数据,用python的pickle读取后为字典数据,报错请看[pickle报错解决](https://blog.csdn.net/u012813109/article/details/106966338)
 - dict_data
 - - subject: "S2"
 - - label: 标签 shape=(4255300,)  700hz
 - - signal:传感器数据
 - - - - chest
 - - - - - - ACC:加速度  shape=(4255300,)  700hz
 - - - - - - ECG:心电     shape=(4255300,)  700hz
 - - - - - - EMG:肌电     shape=(4255300,)  700hz
 - - - - - - EDA:皮肤电  shape=(4255300,)  700hz
 - - - - - - TEMP:体温   shape=(4255300,)  700hz
 - - - - - - RESP:呼吸   shape=(4255300,)  700hz
 - - - - wrist
 - - - - - - ACC:加速度  shape=(194528,)  32hz
 - - - - - - BVP:脉搏      shape=(389056,)  64hz
 - - - - - - EDA:皮肤电  shape=(24316,)    4hz
 - - - - - - TEMP:体温   shape=(24316,)    4hz

3.标签说明

可以使用情景标签1 2 3 4
也可以使用 用户问卷标签

参考文献

Philip Schmidt, Attila Reiss, Robert Duerichen, Claus Marberger and Kristof Van Laerhoven. 2018. Introducing WESAD, a multimodal dataset for Wearable Stress and Affect Detection. In 2018 International Conference on Multimodal Interaction (ICMI ’18), October 16–20, 2018, Boulder, CO, USA. ACM, New York, NY, USA, 9 pages. https://doi.org/10.1145/3242969.3242985

### 如何用 Python 读取 WESAD 数据集 WESAD 是一种多模态压力检测数据集,包含了来自多个传感器的数据。为了处理这些复杂的数据结构,可以使用 `pandas` 和其他库来解析文件并加载到内存中。 对于 WESAD 数据集中的 CSV 文件和其他文本格式文件,可以直接利用 pandas 的 read_csv 函数[^1]: ```python import pandas as pd # 加载CSV文件为例展示基本方法 data_path = 'path_to_wesad_data.csv' df = pd.read_csv(data_path) print(df.head()) ``` 如果涉及到更复杂的二进制文件,则可能需要用到 numpy 或 struct 库来进行字节流转换。下面是一个针对特定情况下的例子,假设有一个包含心率监测器记录的 .dat 文件: ```python import numpy as np def load_dat_file(file_name, data_type=np.float32): with open(file_name, "rb") as f: content = f.read() # 将字节数组解码成指定类型的数组 result_array = np.frombuffer(content, dtype=data_type) return result_array heart_rate_data = load_dat_file('example_heart_rate.dat') print(heart_rate_data[:5]) # 打印前五个元素查看数据是否正确加载 ``` 当面对像 EDA(Electrodermal Activity)、ECG (Electrocardiogram)这样的生理信号时,通常会采用专门设计好的工具包如 biosppy 来辅助分析工作: ```python from biosppy.signals import ecg raw_ecg_signal = ... # 假设这里已经通过某种方式获取到了原始ecg信号序列 out = ecg.ecg(signal=raw_ecg_signal, sampling_rate=1000., show=True) ```
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值