基于SVM的脑电信号情绪识别(matlab)

目录

一、摘要

二、方法

三、数据预处理

四、特征提取

五、通道选择

六、SVM

一、摘要

        情绪识别技术现已受到众多学者的广泛关注,能够实现情绪识别技术的信号有很多,与脸部表情相比,生理信号更难以造假,是如今情绪识别技术使用最广泛的信号。因此,基于机器学习的脑电信号(EEG)情绪识别可以更加精准、更贴合人体最真实的情绪。 

        本文使用机器学习领域的重点技术之一支持向量机(SVM),使用国外公开数据集DEAP,利用matlab实现情绪识别。本文仅使用1个特征,11个通道,在训练集达到了93.10%,在测试集达到了82.63%的准确率。

二、方法

下图是本文工作的大致流程。具体处理情况见下文。

基于SVM的脑电信号情绪识别(matlab)_第1张图片

三、数据预处理

具体操作步骤如下:

1、将每个被试每次实验的每个通道的数据都分别进行基线校准:首先计算前3s 基线数据的平均值,最终使用减去平均值的后60s的数据作为本文的实验数据。

2、对数据进行划分可以增加样本量:使用窗长度为10s,步长为4s,那么相邻两个窗之前就会有6s的重叠,这会使原本数据中40个的样本量扩充11倍到440个。

3、对标签进行划分,本文仅使用到了效价和唤醒度的二分类,因此只处理这两个标签。将这两个标签中大于4.5的值赋予1,小于4.5的值赋予-1,这样就得到了标签的二分类依据。由于(2)中将样本数量扩充了11倍,因此在标签的处理中,也需要同数据一样扩充11倍。

  • 数据
  • 440*32*1280
  • 标签
  • 440*4

四、特征提取

微分熵是香农信息熵在连续变量上的一个扩展,它能反映连续变量的警觉性变化。

 基于SVM的脑电信号情绪识别(matlab)_第2张图片

本文提取α、β、γ三个波段的微分熵特征,有实验证明,这三个波段最能代表人类的情绪特征信息。

基于SVM的脑电信号情绪识别(matlab)_第3张图片

五、通道选择

使用relieff算法,选取最优前11通道:FC2,C3,F7,PO4,CP2,P3,F3,Fp1,Cz,O2,FC1

六、SVM

本文使用SVM二分类进行情绪识别,分别对效价和唤醒度两个维度进行了实验。在训练集和测试集的划分上,本文将440个样本的一半用于训练集,一半用于测试集。读取微分熵特征后,使用归一化。

基于SVM的脑电信号情绪识别(matlab)_第4张图片

最终在效价上的最终准确率:

基于SVM的脑电信号情绪识别(matlab)_第5张图片基于SVM的脑电信号情绪识别(matlab)_第6张图片

你可能感兴趣的:(matlab,开发语言)