没有合适的资源?快使用搜索试试~ 我知道了~
eeglib:脑电信号特征提取的Python库,适合专家和新手的工作流程
软件X 15(2021)100745原始软件出版物eeglib:一个用于脑电特征提取的Luis Cabañero-GomezPennsylvania,Ramon Hervas,Ivan Gonzalez,Luis Rodriguez-Benitez卡斯蒂利亚-拉曼恰大学信息系统与技术系,雷阿尔城13071,西班牙ar t i cl e i nf o文章历史记录:2021年4月30日收到2021年6月2日收到修订版2021年6月11日接受保留字:EEG信号分析Pythona b st ra ct脑电图(EEG)信号分析是重要的,因此帮助完成这项任务的工具至关重要。在许多研究中,一个典型的步骤是特征提取,然而,没有太多的工具专注于这方面。本文介绍了一个用于脑电信号特征提取的Python库eeglib。 它包括使用EEG时最流行的算法,并且可以轻松地与流行的Python库组合。本文还提出了一个简单的工作流程,创建功能数据集,允许高度定制,这是适合专家和新手。版权所有©2021作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本0.4.0此代码版本使用的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-21-00087Code Ocean compute capsule法律代码许可证MIT使用git的代码版本控制系统使用Python的软件代码语言、工具和服务编译要求、操作环境依赖性参见https://github.com/Xiul109/eeglib/blob/master/requeriments.txt如果可用,链接到开发人员文档/手册https://eeglib.readthedocs.io/en/latest/问题支持电子邮件luis. uclm.es1. 动机和意义脑电图(EEG)是一种允许获得由大脑活动产生的电位输入的技术。这通常是通过在头皮上放置电极来实现的,所以它不是一种侵入性技术,尽管有一些版本需要手术。EEG分析可以用于许多领域,如教育,神经营销和医学,其中它用于许多应用,如癫痫诊断[1]或作为许多脑部疾病的辅助工具[2]。信号分析通常是复杂的和不平凡的;然而,这个问题脑电信号的影响更大。这不仅是因为这种类型的信号通常包含多个通道,还因为它们是非线性,非平稳和混沌的[3]。 由于这些原因,在分析这类信号时有一种特定的方法,这导致了专门针对处理这些信号的软件的创建。可能是最常用*通讯作者。电子邮件地址:luis. uclm.es(Luis Cabañero-Gomez),ramon. uclm.es(Ramon Hervas),ivan. uclm.es(Ivan Gonzalez),luis. uclm.es(LuisRodriguez-Benitez)。https://doi.org/10.1016/j.softx.2021.100745EEG信号分析的通用工具是EEGLab [4],这是MatLab的开源工具箱,而最常用的Python工具是MNE-Python [5],也是开源的。这两个工具都是详尽的,并且非常强大,但是它们是通用的工具,所以它们不太适合特定的目的。例如,EEGsynth是一个强大的工具,可以创建这些工具都不是面向特征提取的,这使得它们不适合某些类型的分析,例如基于机器学习的分析。对于接近这些库的用户来说,还有一个障碍,那就是对神经科学和EEG的高度知识的要求。针对这些问题,我们提出了eeglib,一个开源的Python库,这是一个强大的特征提取工具,面向脑电信号和基于滑动窗口。eeglib的设计旨在与Python最常用的机器学习和数据分析库兼容,所以它的输出可以成为他们的输入,这简化了工作流程。尽管对EEG专家来说是一个有用的工具,但对于该领域的新手来说,它也是可以管理的并不多2352-7110/©2021作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxLuis Cabañero-Gomez,Ramon Hervas,Ivan Gonzalez等人软件X 15(2021)1007452其他EEG特征提取库,PyEEG [6]之一,但它们中的大多数只是提供一组有用的函数,而eeglib提供的工具可以帮助用户轻松创建整个数据集并自动参数化算法,如果用户不是专家,则可以简化分析。2. 软件描述2.1. 软件构架eeglib模块由6个不同的子模块组成,其结构如图所示。1.一、特征子模块包括一组函数,用于计算库中包含的每个特征。eeg子模块定义了一个数据结构,用于存储EEG信号数据片段,并对其应用特征中包含的不同类型的处理。helper子模块包含Helper类,允许使用滑动窗口加载数据和迭代数据,这些是eeg子模块中定义的数据结构的实例包装器子模块包装Helper以提取用户为其中定义的每个窗口定义的一组特征。最后,预处理子模块包括对信号进行预处理的函数,auxFunctions包括一些不针对最终用户的辅助函数。2.2. 软件功能下面介绍eeglib的主要功能。这个库不仅仅是一个函数集合,用于从EEG信号中计算大量的特征,它还包含许多工具,使用户的过程更容易2.2.1. 数据加载和预处理数据可以从三个不同的来源加载:逗号分隔值(CSV)文件,欧洲数据格式(EDF)和NumPy [7]数组。CSV文件是包括EEG信号数据在内的多种数据集的常用格式,但它不携带有关数据采样率的信息,因此由用户对其进行配置。EDF是生物信号的标准,包括有关信号的数据,如采样率和物理单位。除了这两种格式之外,还有很多格式,但它们是最常用的,但是如果用户需要加载任何其他格式,可以通过使用另一个工具加载它,将其转换为NumPy数组并将其馈送到模块来完成如前所述,eeglib是一个基于滑动窗口的工具,这意味着它将特征提取应用于整个信号的数据段。如果分析需要,这些段可以彼此重叠,也可以不重叠。在数据加载时,用户可以通过指定两个参数来定义窗口的处理方式:窗口大小和窗口位移。尽管库的主要功能不是预处理EEG信号,这是一个非常大的领域,但它包括一些基本但有用的工具。这些工具是带通滤波器,独立分量分析(ICA)[8]和z分数归一化[9]。 在eeglib中,预处理应用于数据加载步骤,因为它应用于整个信号,而不是从窗口中提取的特征。2.2.2. 特征提取表1显示了目前在eeglib中实现的每个特性,分为两个主要类别和四个子类别。第一分类级别对应于应用特征的通道的数量:一个单个通道或两个通道。大多数功能都应用在单个通道上,并分为四个类别:变形。它们改变输入信号的域,通常从时域到频域。频域。该类别中的特征给出从频域获得的信息。时域。此类别中的特征给出从时域获得的信息。复杂性信号复杂度是一个广泛的概念,它包括信号的随机性、分形维数和自仿射性等。除了表中指定的功能外,还可以在执行功能提取过程时包含自定义算法。2.2.3. 数据集生成eeglib的主要目标之一是生成与大多数Python数据分析库兼容的数据集。该功能属于包装器子模块,它提供了一个工具来生成包含用户所需功能的pandas [23这种类型的输出本身很有用,但是对于许多用例,可以使用eeglib提供的实用程序之一进行改进:数据集标签。有两种类型的标签:一般标签和段相关标签。通用标签是指与整个生成的数据集相同的标签。另一方面,片段标签被设置在特定的时间片段中,并且它们可以在它们之间不同。一般标签可用于对完整试验进行分类,而分段标签可用于对试验中的特定事件或状态进行分类,如果需要,可以将两者结合起来2.3. 测试该库已经过适当的测试和验证,以确保它不包含关键错误。该测试在两个范围内完成:一般使用和算法输出。一般使用测试包括通过设置用户可以传递给函数和方法的不同参数组合来覆盖几乎每一行代码。通过这种类型的测试,我们希望检查库是否按照预期并根据文档进行操作。这种测试不足以确保算法的实现是正确的,因此有必要执行其他类型的测试。算法输出测试包括将结果预先已知的实现输出作为输入信号进行比较。对于大多数算法,这些信号是随机生成的有色噪声:白噪声,粉红噪声或布朗噪声,但其中一些使用存储在文件中的预生成信号3. 说明性实例使用库的预期方式由图2中描绘的四个主要步骤组成。第一(1)步是数据加载,它通过Helper对象执行。目前有这些对象有3种类型,一种用于加载CSV文件,一种用于EDF文件,另一种接受数组而不是文件名,这为其他文件格式提供了灵活性。这一步还包括对数据的一些设置的配置,如预处理滑动窗口配置或每个通道的具体名称。在这种情况下,CSV文件以256的采样率加载,而不应用任何其他配置。下一个步骤(2)是围绕预先创建的Helper实例化Wrapper对象。在这一步中,用户可以定义输出数据的格式,以及为输出数据添加对机器学习应用有用第三步(3)包括向Wrapper询问将要提取的特征,并根据需要对函数进行参数化为此····Luis Cabañero-Gomez,Ramon Hervas,Ivan Gonzalez等人软件X 15(2021)1007453Fig. 1. 不同eeglib子模块的依赖关系图。 深蓝色的单元格表示主处理管道。 预处理子模块是浅蓝色的,因为它的实用程序对用户来说是次要的,auxFunctions模块是灰色的,因为它与最终用户无关。(For解释有关颜色的参考,请参阅本文的网页版本表1默认情况下,可以通过eeglib提取的特征汇总[10]第十一届中国国际航空航天博览会[编辑]频域频带功率[13]时域Hjorth参数[14]单通道[16]第十五话:我的世界,我的世界[16]Lempel–Ziv Complexity [[20]第21话最后一句话:我的世界,我的世界[22]例如,包含的特征使用默认参数化,但其中两个仅应用于特定通道。对于最后(4),提取特征,创建适合于进一步分析的数据集。这个例子显示了一个基本的过程,但是库中有更多的工具,允许用户进行更高程度的自定义。图3.有一个基于现实世界的例子。数据来自EDF文件,其中包含以128 Hz记录的14个通道的EEG信号,持续时间为11 s。已知被记录的人在前5秒执行一个动作,然后在其余的记录中改变为另一个动作,目标是创建能够区分这两个动作的分类器。这一次,在数据加载步骤(1)中,执行一些预处理,其包括z分数归一化,以用1Hz的高通滤波器和50Hz的低通滤波器将数据由于EDF文件包含采样率数据,因此无需指定。此外,仅选择了四个特定通道,因为其余通道在本示例中不相关。默认情况下,窗口大小等于采样率,对应于一秒的记录,但在本例中,它已更改为(2)两倍的采样率或两秒。 它也可以在数据加载步骤中指定,但是在这种情况下,它已经在它之后完成,以显示如何从助手中检索采样率。在它(3)之后,一个次要的设置已经改变,以改变算法的输出返回的方式。默认情况下,它作为一个数组返回,每个通道都有一个值,但如果将其更改为“dict "模式,则输出将是一个字典,其键对应于通道的名称,其值对应于将指定的功能的输出。这对于使数据输出对人类更具可读性Wrapper实例化(4)的方式与以前类似,但这里有两个不同之处第一个是帮助对象采用索引,这是一种定义滑动窗口处理的限制的方式。它被用作helper[start:stop:step],其中start是第一个窗口开始的位置,stop是最后一个窗口结束的位置,step是窗口之间如果值写在引号内,则将其解释为时间,但如果是数值,则被解释为样本的数量。在该示例中,滑动窗口设置为从信号的开始处开始并在其结束处停止,这是默认值,但步长被修改为每次滑动半秒与前面关于包装器的示例的另一个区别是根据数据描述包含分段,其中前五秒接收标签0,最后六秒接收标签1。对于最后(5),指定提取频带功率,计算每个窗口中的特征。频带功率是对与各种频带相关联的能量的估计,并且默认情况下应用于theta(1-4 Hz)、delta(4-7Hz)、alpha(8-12 Hz)和beta(12-30 Hz)频带,但是用户可以指定其他频带。在将特性添加到包装器时,将参数设置为true用于隐藏输出中使用的参数,这仅在仅添加一次相同特性时才建议这样做图4、有一个例子是关于如何使用整个过程之后获得的数据来训练来自库scikit-learn的支持向量机分类器[24]。如图所示,分割位于DataFrame的“segment_label”列中4. 影响通过发表的论文,eeglib已经证明了它的有效性和实用性。Eeglib首次出现在同行评审的出版物中是在[25]中,其中解释了大多数Luis Cabañero-Gomez,Ramon Hervas,Ivan Gonzalez等人软件X 15(2021)1007454图二、 显示使 用 e e g l i b 时 的一般过程的代码段。图3.第三章。 显示ee g l i b 应用示例的代码片段。5. 结论见图4。将eeglib输出与其他库相结合。选择它能够提取的特征。此外,这篇文章显示了使用真实实验中的EEG数据的eeglib的功效,以及如何通过使用作为有色噪声创建的合成信号来测试一些实现的算法该库还被用于两篇高度相关的论文[26,27],其中分析了与手机交互时执行的不同日常任务的认知负荷尽管这两篇论文有着相同的目的,但它们都使用了来自不同实验的数据。多亏了eeglib,才有可能从EEG数据中获得认知负荷的估计当前机器学习在EEG中的重要性和相关性以及eeglib生成数据集的能力使得该工具适合未来的研究。它可以应用于脑机接口研究或认知状态研究。它甚至可以用于深度学习,因为即使深度学习可以处理原始数据而不需要提取特征,eeglib也可以提供分段的数据在具有几行的一致长度的窗口中,这是深度学习算法通常使用的格式。该模块还可以集成到其他项目中,甚至是商业项目。在当前版本中,eeglib是一个功能齐全且有用的EEG分析和特征提取库,已在多个科学出版物中被证明是有用的,并已进行了深入测试。它能够提取一些从EEG信号中提取最相关的特征,并且如果不包括特征,则用户可以容易地将其整合。它提供了一个简单的工作流程,简化了分析数据时的编码阶段它对于EEG和神经科学领域的新手来说是负担得起的,但对专家也很有用。尽管它是一个强大的工具,但它可以进一步改进。可以做的主要改进之一是向库添加更多功能即使CSV和EDF文件是用于EEG的一些更流行的文件,它们也不是唯一的文件,eeglib可以通过与其他文件格式兼容来改进。与输入信号相关的另一个限制此外,即使库被设计成能够用很少的代码行处理数据,这方面也可以在很多方面得到改进,例如,使其能够用一条语句同时处理多个文件。资金eeglib的开发由科学部、创新和大学资助,RTI 2018 -098780-B-I 00 ( 国 家 研 究 项 目 ) 和 JUNTA DECOMUNIDADES DE CASTILLA-LA MANCHA的PI 001097博士前合同。Luis Cabañero-Gomez,Ramon Hervas,Ivan Gonzalez等人软件X 15(2021)1007455竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作引用[1] Shoeibi A,et al.在EEG信号中检测癫痫发作的手工特征和卷积自动编码器的全面比较专家系统应用2021;163:113788。http://dx.doi.org/10.1016/j.eswa.2020的网站。113788。[2] TzimourtaKD , etal.Machinelearningalgorithmsandstatisticalapproachesfor alcohol'sdiseaseanalysisbasedonresting-stateEEGrecordings:A systematic review. Int J Neural Syst 2021;31(5):2130002.http://dx.doi.org/10.1142/S0129065721300023.[3] Pijn JP,Van Neerven J,Noest A,Lopes da Silva FH.混乱或噪音脑电信号;对状态和大脑部位的依赖性。脑电图临床神经生理学1991;79(5):371-81.http://dx.doi.org/10.1016/0013-4694(91)90202-F.[4] Delorme A,Makeig S. EEGLAB:一个开源工具箱,用于分析单次试验EEG动力学,包括独立分量分析。神经科学方法杂志2004;134(1):9-21.http://dx.doi.org/10.1016/j.jneumeth的网站。2003.10.009。[5] Gramfort A,et al. MEG and EEG data analysis with MNE-Python. 2013年;7.http://dx.doi.org/10.3389/fnins.2013.00267网站。[6] 鲍福胜,刘翔,张春. PyEEG:用于EEG/MEG特征提取的开源Python模块。ComputIntellNeurosci2011;2011:406391.http://dx.doi.org/10.1155/2011/406391网站。[7] Harris CR , et al. Array programming with NumPy. Nature 2020;585(7825):7825. http://dx.doi.org/10.1038/s41586-020-2649-2网站。[8] 独 立 成 分 分 析 , 一 个 新 概 念 ? 信 号 处 理 1994;36 ( 3 ) : 287-314. http ://dx.doi.org/10.1016/0165-1684(94)90029-9.[9] 塔兰托拉湾Z分数在:Michalos AC,编辑.生活质量与幸福研究百科全书。Dordrecht:SpringerNetherlands;2014,p.7316.http://dx.doi.org/10.1007/978-94-007-0753-5_3307网站。[10]Cooley JW,Tukey JW.复傅里叶级数的机器计算算法。Math Comp 1965;19(90):297-301. http://dx.doi.org/10的网站。2307/2003354.[11]Mallat SG.多分辨信号分解理论:小波表示。IEEE TransPattern Anal MachIntell 1989;11(7):674-93. http://dx.doi.org/10.1109/34.192463网站。[12]Youngworth RN,Gallagher BB,Stamper BL。功率谱密度(PSD)计算概述 。 在 : 光 学 制 造 和 测 试 VI. 2005,第 5869 、 58690 U 页 。http://dx.doi.org/10.1117/12.618478网站。[13]EEG 信 号 的 频 带 功 率 。 2021 年 , https://raphaelvallat.com/bandpower 。HTML. [2021年3月11日]。[14] 约思湾基于时域特性的脑电分析。脑电生理临床神经生理学1970;29(3):306-10. http://dx.doi.org/10.1016/0013-4694(70)90143-4.[15]Peng CK,Buldyrev SV,Havlin S,Simons M,Stanley HE,GoldbergerAL. DNA核苷酸的镶嵌组织。Phys Rev E1994;49(2):1685-9.[16] Richman JS,Moorman JR.利用近似熵和样本熵进行生理时间序列分析。美 国 生 理 学 - 心 脏 循 环 生 理 学 杂 志 2000;278 ( 6 ) : H2039-49 。http://dx.doi.org/10.1152/ajpheart.2000.278.6的网站。H2039[17]胡J,高J,普林西比JC.生物医学信号的Lempel分析-Ziv复杂度:有限数据大小 的 影 响 。 IEEETransBiomedEng2006;53 ( 12 ) : 2606-9.http://dx.doi.org/10.1109/TBME.2006.883825网站。[18] 彼得罗辛河有限序列的Kolmogorov复杂性和不同发作前EEG模式的识别。第 八 届 IEEE 计 算 机 医 疗 系 统 研 讨 会 论 文 集 。 1995 , 第 212-7 页 。http://dx.doi.org/10的网站。1109/CBMS.1995.465426。[19] 口田基于分形理论的不规则时间序列的研究。Physica D 1988;31(2):277-83. http://dx.doi.org/10.1016/0167-2789(88)90081-4.[20]黄毅,陈杰,黄毅,科恩. Pearson相关系数In:Cohen I,Huang Y,ChenJ,Benesty J,editors.语音处理中的降噪。Berlin,Heidelberg:Springer;2009,p. 1-4. http://dx.doi.org/10的网站。1007/978-3-642-00296-0_5。[21] Müller M,编辑。动态时间扭曲。在:音乐和运动的信息检索。Berlin,Heidelberg:SpringerBerlinHeidelberg;2007,p.69-84.http://dx.doi.org/10.1007/978-3-540-74048-3_4网站。[22]斯塔姆CJ,范迪克BW。 同步似然:多元数据广义同步的无偏测度。物理学D2002;163(3):236-51。http://dx.doi.org/10.1016/S0167-2789(01)00386-4.[23]Reback Jeff,et al. Pandas-Dev/Pandas:Pandas 1.0.3. Zenodo; 2020,http://dx.doi.org/10.5281/zenodo.3715232网站。[24]PedregosaF 等 , Scikit-learn : Python 中 的 机 器 学 习 。 J MachLearnRes2011;12(85):2825-30.[25]Cabañero L,Hervás R,Bravo J,Rodríguez-Benitez L,Nugent C. eeglib:在 使 用 视 频 游 戏 期 间 的 认 知 表 现 的 计 算 分 析 。 J Ambient Intell HumanComput 2019. http://dx.doi.org/10.1007/s12652-019-01592-9.[26]Cabañero L,Hervás R,González I,Fontecha J,Mondéjar T,Bravo J.与移动设备交互时使用EEG分析认知负荷。 Proceedings 2019;31(1):70.http://dx.doi.org/10.3390/proceedings2019031070网站。[27]Cabañero L,Hervás R,González I,Fontecha J,Mondéjar T,Bravo J.通过 EEG 数 据 处 理 通 过 其 相 关 认 知 负 荷 表 征 移 动 设 备 任 务 。 Future GenerComput Syst 2020;113:380-90. http://dx.doi.org/10.1016/j.future.2020.07.013网站。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功