本文是由CSDN用户[Memory逆光]授权分享。主要介绍了《THE TUH EEG CORPUS: A Big Data Resource for Automated EEG Interpretation》中关于TUH EEG数据集,包括其规模、采样、数据处理以及相关的基础实验。感谢 Memory逆光!

TUH EEG数据集

数据库地址

http://www.nedcdata.org/

导读

这个数据集包括超过 25000 个脑电图研究,包括一个神经学家对测试的解释,一个简短的病人病史和关于病人的人口统计信息,如性别和年龄,是第一次有足够的数据来支持最先进的机器学习算法的应用;

脑电图事件被定义为信号中的临界点,如与特定疾病的存在相关的尖峰或非对称波形;

在这篇论文中,作者使用了3762个数据集的session子集,展示了从原始脑电图信号数据预测脑电图的一些基本属性的初步实验结果;

在闭环测试中,标准的机器学习方法被证明能够从简单的特征中预测常见的事件,并且具有很高的准确性,在 6 路开放集分类问题上,它的错误率低于 50 % ,而神经科学家认为只有分类系统的错误率在 %5 以下,才能认为这个系统是可靠的;

因此这是一个很有前途的性能,因为一个认证的神经科医生需要几个星期的时间来解释患者的 EEG 信号,而现有的机器学习模型还远未达到商业应用的标准,此类系统的临床应用受到限制;

规模

这是目前最大的 EEG 数据集,包括 25,000 个 EEG 记录 和 14,000 个病例,是 Temple University Hospital 这个医院自 2002 年来的总数据集;

采样

脑电图信号采用 Natus Medical Incorporated 公司的 NicoletTM 脑电图记录技术记录,原始信号包括使用16位 A/D 转换器在 250 Hz 的最低频率下采样的 20 至 128 个通道的记录;

存储

使用 NicVue v5.71.4.2530 存储在 EDF 文件中,其中元数据信息分布在 24 个包含患者信息和信号状态的独特字段中;

医疗记录编号、姓名、确切的出生日期和研究编号被编辑在标题中,以确保患者的匿名性,而与脑电图的结果和解释相关的信息,如性别、年龄、病史和药物治疗被保留(其中75% 的 EEG 是少于一小时的采样);

需要注意的是,尽管报告正文也包含类似的信息,根据不同的年份和脑电图类型,报告有大约六种不同的格式(采样年份分布如下);

数据处理

从这个数据库的大小来看,脑电图信号数据需要 1.8T 左右的存储空间,平均文件大小为20 Mbytes;

脑电图信号数据被“修剪”,简单地说就是脑电图技术人员识别出记录中有临床价值的部分,然后丢弃其余部分;

即便如此,数据量仍是惊人的,例如,如果我们将每个数据通道视为一个独立的信号,那么就有超过1B 秒的数据。虽然一开始这可能看起来很庞大,但感兴趣的区段相对较少,通常只占记录时间的不到1%;在一个疗程中经历癫痫发作的病人大约有几百人,当这些会话被患者的病史交叉引用时,即使如此庞大的数据量也显得微不足道;

基础实验

分类:

研究这些数据的一个重要部分是与神经病学家反复讨论脑电图事件的定义,这需要对如何手动解释 EEGs 以及如何将此过程转换为算法描述有更深入的理解;

经过几次迭代之后,作者将重点放在 6 路分类上:

尖峰和/或锐波(SPSW):癫痫样瞬变,在癫痫患者中很常见;

周期性偏侧性癫痫样放电(PLED):脑电图(EEG)异常,包括重复的尖峰或锐波放电,这些放电在一个半球上呈局灶性或偏侧性,并且几乎在固定的时间间隔内复发;

广义周期性癫痫样放电(GPED):根据放电间隔时间的不同,分为周期性短间隔弥漫性放电、周期性长间隔弥漫性放电和抑制性猝发放电,三相波(弥漫性和双额优势的双侧同步尖峰,典型的周期频率为1-2赫兹)也属于这一类;

人工噪声(ARTF):记录非大脑来源的电活动,如由于设备或环境引起的电活动;

眨眼(EYEBL):常见的事件,经常被混淆或弄得很混乱;

背景信号 (BCKG):所有其他的信号;

分析:

前三个类是信息承载,因为它们描述的事件对人工解释EEG至关重要,他们的主要区别是周期性的程度和这些事件跨通道发生的程度;

最后三个类用于改进背景模型;背景建模是任何机器学习系统的重要组成部分,它试图对信号的时间演化进行建模(例如,隐马尔可夫模型);

作者试图让系统自动执行 背景/非背景 分类作为建模过程的一部分,而不是使用启发式预处理算法来检测感兴趣的信号;

人工噪声和眨眼事件经常发生,它们值得单独分类;其余与前五个类不匹配的事件被集中到背景类中,因此,背景模型是非常重要的;此外,模型表现的关键方面与前三类的敏感性和特异性有关,因为这些是神经病学家解释的关键;

特征提取:

作者使用了标准滤波器组/倒谱系数方法对数据进行特征提取;

目前整个系统对核心特征集不是特别敏感,只要它们能充分地模拟从大约 0.5 Hz 到 25 Hz 的范围;

作者使用一个 8 波段滤波器组分析,它被转换成一个包含 8 个倒谱系数和能量的 9 元特征向量,后者是使用频域方法计算的;

建模:

作者在提取特征的基础上,为每个分类训练了一个标准隐形马尔可夫模型(HMM);隐形马尔可夫模型是一类双随机过程,其离散状态序列被建模为马尔可夫链,并被广泛用于时间序列数据的建模;

作者采用期望最大化(EM)算法对模型进行训练,主动学习方法(active learning approach)用于引导系统从少量数据到更大的子集:

数据准备:

还应该注意的是,数据准备是处理临床数据的一个很大的挑战,这涉及到根据从医生报告中自动提取的信息将文件聚类到适当的类中;

作者最初使用主动学习的方法,以完全无监督的方式训练模型,然后让专家手动标记少量数据;

作者仔细地选择了 100 个 10 秒的 epoch,其中包含大量 SPSW 类的示例,以及一些 GPED 和 PLED 示例,并使用这些数据来训练,并且作者也对另外 70 个 10 秒的 epoch 进行注释,以作为一个保留的评估集;

处理:

注意,在这些初步的实验中,每个通道都是独立处理的;

通过查看跨通道的行为,可以很容易地识别一些事件,然而在本研究中,作者限制了自己对每个渠道的独立分析;

因此作者也正在开发第二个机器学习模块,它将发布来自所有渠道的过程假设,并相应地对会话进行分类;

该模块将大大降低误报率,在下表中,作者给出了基于 HMM 的评估数据系统的混淆矩阵:

可以观察到,三个主要事件类(SPSW、PLED和GPED)的正确识别率都在40%以上,而错误识别率也在40%左右;

然而为了与临床应用相关,没有必要正确地检测每一个峰值,它只需要足以检测到这些现象,一个神经科学家就可以迅速判别,因此更需要关注是降低高度的错误报警率,从而避免导致需要审查太多的错误数据;

为了正确看待这些结果,作者还将这个模型与 Wulsin 使用深度信念网络(Deep Belief Networks)[4]的方法进行了比较;

Wulsin 等人使用了由两位神经病学家手工转录的小型临床脑电图专有数据库,尽管对信号的非尖峰部分建模的方法有所不同,这两项研究使用了非常相似的分类;

在他们的研究中,使用的性能指标是 F_score,即敏感性和特异性的调和平均值:

他们的模型的性能指标达到了 0.476,而作者提出的模型则达到了 0.702;

上图显示了假警报和检测(正确的识别)之间的权衡,可以通过简单地修改最有可能的类的似然值的阈值来改变曲线上的操作点;

临床医生更喜欢低误报率,因为这样可以减少花在检查数据上的时间,并提高他们的工作效率;

根据与医院神经科医生的讨论,作者提出能够实际应用的目标是三个主要事件类别的检出率为95%,误报率为5%;

作者博客

https://blog.csdn.net/weixin_44936889/article/details/104652607

文章来源于网络,仅用于学术交流,不用于商业行为

若有侵权及疑问,请后台留言,管理员即时删侵!

更多阅读

EEG伪影类型详解和过滤工具的汇总(一)

你知道脑机接口中的"后门"攻击吗?它真的有可能在现实中实现

如何对单手和双手协同运动方向进行神经表征和解码?北理工研究团队给出了相关方案

2020世界机器人大赛—BCI脑控机器人大赛 技能赛成绩及总决赛入围名单

脑机接口拼写器是否真的安全?华中科技大学研究团队对此做了相关研究

脑机接口和卷积神经网络的初学指南(一)

脑电数据处理分析教程汇总(eeglab, mne-python)

P300脑机接口及数据集处理

快速入门脑机接口:BCI基础(一)

如何快速找到脑机接口社区的历史文章?

脑机接口BCI学习交流QQ群:515148456

【基于深度学习的脑电图识别】数据集篇:脑电信号自动判读的大数据相关推荐

  1. 基于深度学习的脑电图识别 综述篇(三)模型分析

    作者|Memory逆光 本文由作者授权分享 导读 脑电图(EEG)是一个复杂的信号,一个医生可能需要几年的训练并利用先进的信号处理和特征提取方法,才能正确解释其含义.而如今机器学习和深度学习的发展,大 ...

  2. 基于深度学习的脑电图识别 综述篇(二)数据采样及处理

    作者|Memory逆光 本文由作者授权分享 导读 脑电图(EEG)是一个复杂的信号,一个医生可能需要几年的训练并利用先进的信号处理和特征提取方法,才能正确解释其含义.而如今机器学习和深度学习的发展,大 ...

  3. 基于深度学习的脑电图识别 综述(一)总体概述

    作者|Memory逆光 本文由作者授权分享 本文主要介绍了深度学习在EEG分析上的应用<Deep learning-based electroencephalography analysis: ...

  4. 【基于深度学习的脑电图识别】综述篇(二)数据采样及处理:Deep learning-based electroencephalography analysis: a systematic review

    Deep learning-based electroencephalography analysis: a systematic review 文章选取和分布: 数据量: 实际观察主题数: 采样参数 ...

  5. 【基于深度学习的脑电图识别】应用篇:DEEP LEARNING APPROACHES FOR AUTOMATIC ANALYSIS OF EEGS

    DEEP LEARNING APPROACHES FOR AUTOMATIC ANALYSIS OF EEGS 摘要: 数据: 时序信号的时序建模: 特征提取方法: 利用时空上下文建模: 1. 混合 ...

  6. 基于深度学习的车型识别系统(Python+清新界面+数据集)

    摘要:基于深度学习的车型识别系统用于识别不同类型的车辆,应用YOLO V5算法根据不同尺寸大小区分和检测车辆,并统计各类型数量以辅助智能交通管理.本文详细介绍车型识别系统,在介绍算法原理的同时,给出P ...

  7. 基于深度学习的人脸识别系统系列(Caffe+OpenCV+Dlib)——【六】设计人脸识别的识别类...

    前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...

  8. 基于深度学习的人脸识别与管理系统(UI界面增强版,Python代码)

    摘要:人脸检测与识别是机器视觉领域最热门的研究方向之一,本文详细介绍博主自主设计的一款基于深度学习的人脸识别与管理系统.博文给出人脸识别实现原理的同时,给出Python的人脸识别实现代码以及PyQt设 ...

  9. 基于深度学习的人脸识别综述

    本文转载自 https://xraft.github.io/2018/03/21/FaceRecognition/ (作者:Caleb Ge (葛政)),如有侵权请告知删除. (下文中的"我 ...

最新文章

  1. 共读计划 | 你有多久没读完一本书了?
  2. Exchange server 2010 beta安装部署流程
  3. “树人杯”暨第三届辽宁科技大学校园程序设计竞赛正赛I 充分利用学习卡(粉)...
  4. Java中FTPClient上传中文目录、中文文件名乱码问题解决方法
  5. Python-100 | 练习题 01 列表推导式
  6. Linux中python2和python3的pip设置 及清华安装源
  7. python快递代取系统_代取快递的变现方式,校园跑腿的经营范围有多大?
  8. 前端性能优化——http首部
  9. APP架子迁移指南(一)
  10. CSS:使用CSS绘制三角形
  11. Atiti  qq空间破解(3)------------gui图形化通用cli执行器atiuse
  12. mac安装mysql后找不到_Mac 安装MySQL数据库,系统提示mysql: command not found怎么办
  13. 普华永道:2030年区块链价值将突破30万亿
  14. 【Audio音频兴趣拓展】如何调试频响曲线?
  15. MyBatis 极速入门
  16. python实战(一)Python爬取猫眼评分排行前100电影及简单数据分析可视化python实战(一)Python爬取猫眼排行前一百电影及简单数据分析可视化
  17. P2135 方块消除
  18. 基于小波变换的信号去噪技术及实现
  19. cmd 更新 pip版本指令
  20. Windows模拟器推荐

热门文章

  1. 解决LaTex中插入Visio画图有多余边框的问题
  2. 缓存击穿问题解决思路
  3. 全面屏适配方案,终极版,华为隐藏导航栏解决方案
  4. java.lang.StackOverflowError 解决方法
  5. C#调用COM组件遇到的问题及解决办法
  6. phpmyadmin登录报错crypt_random_string requires at least one symmetric cipher be loaded 解决方法
  7. 在Android中,如何以编程方式在dp中设置边距?
  8. Swift:print()vs println()vs NSLog()
  9. Node.js + Nginx-现在怎么办?
  10. 什么时候应该在C ++中使用类与结构?