1. 数据集介绍以及特征部分见上篇文章:
DEAP数据集介绍以及特征提取部分
深度学习基于DEAP的脑电情绪识别情感分类(附代码)_qq_3196288251的博客-CSDN博客
2. 图卷积神经网络哟结合LSTM
本文主要介绍利用图卷积神经网络结合LSTM进行脑电情绪识别。
由于脑电通道的排列具有空间特征,而调用卷积神经网络或者LSTM等模型只能单一的处理频域特征或者时域特征。而图卷积神经网络可以高效的将频域特征,时域特征和空间域特征结合起来一起分析。对于脑电情绪识别具有重大作用。
2.1 将脑电数据处理成图
1. 首先要将DEAP数据处理成图数据,调用pyg库的InMemoryDataset等函数,重写process函数。(建议学习一下pyg库的各种基础知识)
图的基本知识:点、点的属性、边、边的权重四个基本元素。因此构建图的过程中,首先确认什么为点,点的属性又是什么,以及如何确认边和边的权重。
点:直接用脑电通道构成点。
点属性:自己设定
如何确定边:最简单的就是直接利用空间距离,设定好一个阈值,小于某个距离的确定为边。其他的可以使用各种连通性指标。例如 等等。其中脑电通道的坐标数据及距离见链接:
脑电通道坐标距离
脑电电极位置适用于DEAP数据集-深度学习文档类资源-CSDN下载
边权重:确定边的时候所用到的数值。
通过以上四个属性便可将频域特征,时域特征和空间域特征结合起来一起分析。
如图:
通过邻接矩阵选取边:
处理边权重和点属性:
由于边权重和点属性可以采取不同方案,从而组成不同的图信息。
本代码采用不同的方案共构成了6种特征组合,并构建了两种模型进行训练。
两层GNN模型:
GNN结合LSTM:
最终结果准确率达到了95%。
更详细的细节建议看源码或者私聊我。
其中包含图卷积神经网络处理DEAP数据集进行脑电情绪识别的代码,准确率达到90。
主要是每一行代码都写满了注释,每一步都解释的很清楚,很适合新手学习。
这是一个完整的深度学习脑电情绪识别的项目,从数据提取到数据处理,再从数据处理到特征提取以及模型训练,优化参数,验证测试,每一行都写好了注释,很适合新手第一次学习该类型代码。
举个例子:
可以看到函数前面写好了函数名、参数、返回值、功能
代码部分,几乎每一行都写满了是干啥的,甚至很多行下面写了print(...) 。
例如:
print(batch) 是输出这个变量值 ,空格后面表示的是输出的结果
写出了输出的结果,以及print(out.shape) 显示输出的矩阵是1*1维的。
print(type) 显示了生成变量的类型。
本研究在PyCharm上完成编程,环境搭建为Python3.7版本,CUDA为11.1版本,PyTorch为1.8.1版本。通过Anaconda来构建虚拟环境。
每一行都写满了代码注释,同时有每一行的输出,输出类型,输出维度也都写了。
源码链接:基于图卷积的脑电情绪识别
https://download.csdn.net/download/qq_45874683/20242874?spm=1001.2014.3001.5503