麻醉脑电多锥谱:54 例的意识状态标签

十名志愿者与四十四台手术,两套设备,两种采样率——这份数据把麻醉脑电从原始波形压成二维谱图,并给每个两秒片段打上清醒或无意识的标签;它的价值在于标签的严谨,它的风险也全在标签里

来源 麻省总医院(Massachusetts General Hospital)麻醉、重症与疼痛医学科与神经统计研究组发布时间: 2026-10-19最后更新: 2026-10-20 阅读 22
麻醉脑电多锥谱:54 例的意识状态标签

信息速览

数据集名称麻醉脑电多锥谱:54 例的意识状态标签
数据类型麻醉深度,脑电频谱,意识水平,丙泊酚,七氟烷,多锥谱估计,迁移学习,围术期
规模54
接入方式麻省总医院(Massachusetts General Hospital)麻醉、重症与疼痛医学科与神经统计研究组
AI 就绪度

一台全麻手术里,麻醉医生能看到的数字很多:呼出气浓度、血氧、血压、心率、体温。真正反映大脑状态的只有一个——脑电。而脑电在监护仪上通常被压缩成一个 0 到 100 的数字,叫双频指数或类似的名字。这个压缩丢掉的东西,比留下的多。麻醉脑电最特征性的现象是慢波与 α 振荡的交替:无意识时,额区出现 0.5 到 4 赫兹的慢波,叠加 8 到 12 赫兹的 α 节律,两者像呼吸一样此消彼长。这个结构在功率谱上看得一清二楚,在一个标量指数上则完全看不见。这份数据选择保留谱:它不发布原始脑电波形,而是把每两秒的脑电做成一张 100 个频点的功率谱,再把每张谱标成「清醒」或「无意识」,让人可以直接在谱上做分类。

规模是五十四例:十名健康志愿者在程序化丙泊酚给药下,四十四台真实手术在用丙泊酚、七氟烷或两者。前者的标签精细到秒,后者的标签粗到只有一刀。这个差别贯穿全篇,也是使用这份数据时最需要先想清楚的一件事。

想知道标签怎么来的,读 §1.4 与 §1.5;想直接训练分类器,读 §8;想搞清楚丙泊酚与七氟烷为什么可以混在一起,读 §1.6;只关心能不能拿到文件,读 §3。

§1 它是什么:五十四例、五十五万段谱

1.1 一句话定义与四条边界

这是一份脑电功率谱数据集:54 个病例,每例切成若干个两秒无重叠分段,每段算一张 0 到 50 赫兹的多锥功率谱,每段带一个意识标签,手术病例另带一个信号质量标记。

四条边界。

第一,给的是谱,不是波形。 想重做滤波、换参考电极、试别的谱估计方法,做不到。谱是终点,不是中间产物。

第二,导联极少。 志愿者队列虽然用了六十四导系统,但后续分析只用 Fp1 一个导联。手术队列用四个额区电极(近似 Fp1、Fp2、F7、F8),但数据描述里给的是单通道谱。所以这份数据里没有空间信息,做不了导联间的相干、相位同步、源定位。

第三,标签的定义在两个队列里不一样。 志愿者队列用反应概率判定,手术队列用手术开始时刻代替。这不是一个小差别,§1.4 与 §1.5 分开讲。

第四,受限访问。 需要注册、签署受限数据使用协议。这一档的门槛比公开数据高,但比需要机构担保的那一档低。

1.2 为什么是功率谱而不是原始脑电

这个问题值得回答,因为「压成谱」这个选择决定了这份数据能做什么、不能做什么。

理由有三。

第一,谱保留了关键信息。 麻醉脑电的核心现象是频段功率的结构性变化:慢波功率升高、α 功率先升后降、高频功率下降。这些在谱上都直接可见,不需要保留原始时间序列的每一个采样点。

第二,谱把维度降下来了。 两秒的 5000 赫兹信号是 10000 个采样点;两秒的谱是 100 个频点。降了两个数量级。这让人可以在普通机器上处理全部 54 例。

第三,谱让不同采样率的设备可以放在一起。 志愿者队列 5000 赫兹,手术队列 250 赫兹。原始波形没法直接混合,但两者都能算出 0 到 50 赫兹的谱——因为 250 赫兹的采样率按奈奎斯特定理能覆盖到 125 赫兹,50 赫兹在范围内。这是一个被低估的好处:谱是跨设备对齐的通用货币。

代价是丢失相位。两个功率谱相同的信号,波形可能完全不同。所以这份数据无法用来研究跨频率耦合、无法用来做波形级的形态分析。

1.3 两套设备、两种采样率、一个共同输出

两个队列的采集条件差别很大,必须逐项对照。

项 志愿者队列 手术队列
设备 BrainVision MRI Plus(Brain Products) Sedline 脑功能监护仪(Masimo)
导联数 64 4(近似 Fp1、Fp2、F7、F8)
分析导联 Fp1 单通道谱(未注明具体电极)
采样率 5,000 赫兹 250 赫兹
带宽 0.016–1,000 赫兹 0.5–92 赫兹
分辨率 0.5 微伏 29 纳伏,16 位
参考 未注明 Fpz 上方 1 厘米
阻抗要求 未注明 低于 5 千欧
场景 实验室,闭眼静卧 手术室,真实手术
伦理 知情同意 豁免知情同意(回顾性)

这张表里有两处值得停一下。

带宽的差别。 志愿者设备的下限是 0.016 赫兹,手术设备是 0.5 赫兹。这个差别影响慢波:0.1 赫兹的成分在志愿者数据里存在,在手术数据里被滤掉了。而丙泊酚无意识状态下的慢波,正是 0.1 到 1 赫兹这个范围。所以两队列在最低频段的功率不可直接比较——手术队列的慢波功率被硬件高通滤掉了一部分。

分辨率的差别。 0.5 微伏与 29 纳伏相差约十七倍。手术设备的量化更细,但它的前置放大带宽只有 92 赫兹,信号链整体性能并不一定更好。这个对比说明:分辨率数字不能单独读,要连同带宽一起看。

1.4 志愿者队列的标签:概率化的反应判定

这是全篇标签质量最高的一部分,值得说细。

作者的做法是:给受试者两种提示——咔哒声与口头指令,记录每次的反应。然后计算「对两种提示都作出反应的概率」,当这个概率降到 5% 以下,判定为意识消失(LOC);当它重新升到 5% 以上,判定为恢复(ROC)。

与「按一次按钮就算有意识」的粗糙做法相比,这个定义有三处改进。

第一,双模态提示。 声音与语言两条通路,避免单一模态的假阴性(比如受试者听不见但仍有意识)。

第二,概率而不是单次事件。 单次未反应可能是走神、可能是手滑;连续多次未反应才是信号。用概率阈值,等于要求一个持续的状态而不是一个瞬时的事件。

第三,5% 这个阈值是双向的。 LOC 用「降到 5% 以下」,ROC 用「升到 5% 以上」,两者之间有回滞区间。这个设计避免了在阈值附近反复穿越造成的标签抖动。

但仍要承认:这依然是行为代理。§4.1 会讲它的偏差。

1.5 手术队列的标签:一条被截断的时间轴

手术队列的标签做法完全不同,而且作者把它的粗糙写得很坦白。

LOC 的时刻被定为手术开始的时刻。诱导到切皮之间的这一段,一律标为 NaN。作者给的理由是:从回顾性数据里无法判断病人具体在哪一刻失去意识。

数据只记录到手术结束。作者给的理由同样是:无法判断病人何时恢复意识。

这两条处理合起来,等于把手术队列的时间轴切成三段:诱导期(NaN)、手术期(无意识,标签 0)、术后(不存在)。整份手术数据里没有一个「清醒」的标签。

这一点的后果很大。想在手术队列上训练分类器区分清醒与无意识,训练集里没有正类。所以手术队列只能用于「无意识状态的谱长什么样」这类单类分析,或者用于外部验证——拿志愿者队列训练的分类器,到手术队列上看它输出的分数分布是否合理。

1.6 丙泊酚与七氟烷为什么可以混

这是这份数据在方法上的一个关键前提,也是一个容易被质疑的地方。

数据把两种药混在一起,理由是两者都通过增强 γ-氨基丁酸能神经传递产生无意识,且产生的脑电谱特征高度相似——慢波与 α 振荡的组合在两种药下都出现。

这个理由在现象层面成立,在机制层面也有依据。但要清楚它的边界。

相似不等于相同。 七氟烷在更深浓度下会出现爆发抑制,丙泊酚也会,但出现的浓度阈值不同。七氟烷对年轻人的 α 功率提升更明显,对老年人则弱。两种药在诱导速度、血流动力学影响上差别很大。

混合的代价是无法做药物特异性分析。 数据里给了一个 YAML 文件把手术病例分成纯丙泊酚、纯七氟烷、混合三组,这让人可以分组分析。但分组之后每组样本量都很小(四十四例分三组),统计功效有限。

混合的收益是样本量。 如果只做纯丙泊酚,手术队列可能只剩十几例。混起来才有四十四例。

这个权衡是否值得,取决于用途。做「麻醉无意识的通用谱特征」,混合合理;做「哪种药更适合用脑电监测」,必须分组且承认功效不足。

1.7 它不适合回答什么

先说清楚,省掉误用。

不适合回答「这个算法能不能替代麻醉深度监护仪」——五十四例、单一中心、标签粗糙,不足以支撑临床效度。

不适合回答「老年人麻醉脑电有何不同」——作者明说没校正年龄,样本里老年人比例未给。

不适合回答「恢复期脑电怎么变」——手术队列没有术后数据。

不适合做空间分析——单通道,没有导联间信息。

适合回答的是方法学问题:谱特征加时间建模能否稳定区分意识状态?不同特征集(频带功率、主成分、卷积网络特征)哪个更有效?跨药物、跨设备的迁移是否可行?

1.8 谱上到底看什么:三个频段的三种行为

同一张谱,不同频段在麻醉过程中的表现完全不同。这一点不弄清楚,做特征工程时会平均用力,把有信息的部分和没信息的部分混在一起。

慢波(约 0.1 至 1 赫兹) 在无意识时功率显著升高。这是丙泊酚与七氟烷共同的特征,也是「深度」最直接的谱表现。但要记住 §2.3 说的:这个频段在导出时被线性去趋势削过、被多锥平滑过,而且手术队列的硬件高通在 0.5 赫兹。所以慢波是这份数据里信号最强、但也最不可靠的一段。

α(约 8 至 12 赫兹) 的表现是非单调的——诱导期功率先升,随后在更深的麻醉下下降。这个「先升后降」是麻醉脑电最著名的现象之一,也是文献里反复讨论的焦点。它的临床价值在于:α 功率升高通常意味着麻醉足够但未过深,α 消失往往意味着过深或老年。

高频(约 20 至 50 赫兹) 在无意识时功率下降。这个变化幅度小于慢波与 α,但因为它的基线本来就低,信噪比反而不差。它还有一个好处:受带宽差异的影响最小,两队列在这个频段可比性最好。

把这三段的行为放在一起,可以得出一个实用的结论:做跨队列迁移时,优先用 8 赫兹以上的信息;做同队列内的深度估计时,慢波仍然是最强的特征。 这个区分在 §8.6 的数据处理建议里会落成具体操作。

§2 数据构成:每例五个文件

2.1 文件命名与 DATATYPE

命名规则是 {CASEID}_{DATATYPE}.csv。DATATYPE 有五种。

Sdb:谱图,单位分贝,行是时间(每个两秒段一行),列是频率(100 个频点)。

f:频率轴,0 到 50 赫兹,步长 0.5 赫兹,共 100 个值。

l:意识标签,逐窗口一个值,1 为清醒,0 为无意识,NaN 为无法判定。

EEGquality:布尔列表,逐窗口标记信号是否记录正常,只存在于手术队列。

t:时间轴,自记录开始算起的秒数,是 Sdb、l、EEGquality 三个数组的共同横轴。

五者的行数必须一致,这一点是读取时的第一个断言。

2.2 谱图的两个轴容易读反

Sdb 是矩阵。行对应时间,列对应频率——但这个方向在文件里没有表头,只能靠行数判断:行数应当等于 t 的长度,列数应当等于 100。

若不小心转置,后续所有分析都会失效,而且不会报错(因为 100 与时间点数的量级差得多,但如果某例只有 100 个窗口就会撞上)。所以读取后必须做两个断言:Sdb.shape[0] == len(t) 且 Sdb.shape[1] == len(f)。

2.3 多锥谱的参数意味着什么

作者给的参数是:段长两秒、无重叠、时间半带宽积(TW)为 3、锥数为 2TW−1 即 3、线性去趋势在谱估计之前。

这几个数字各自控制一件事。

段长两秒决定了频率分辨率的下限。两秒的窗口,频率分辨率约 0.5 赫兹——这正好对应 f 的步长。所以 100 个频点不是过采样,是理论极限。

TW 等于 3 意味着频率平滑带宽约为 3 除以段长,即 1.5 赫兹。也就是说,谱上相邻 1.5 赫兹以内的功率无法分辨,是平滑过的。

三个锥是 TW 等于 3 时的标准选择。锥数越多,方差越小,但频率分辨率越差。三个锥是方差与分辨率的折中。

线性去趋势在谱估计之前做,去掉每个两秒段内的线性漂移。这一步影响最低频段:0 到 1 赫兹的功率会被部分削掉。

理解这四点的实际意义:谱上的 0 到 1.5 赫兹这一段,既被去趋势削过、又被平滑过,可信度最低。 而慢波恰好在这个范围。所以用这份数据研究慢波时,要意识到看到的是被处理过的慢波,不是原始慢波。

2.4 时间轴为什么从零开始

t 是自记录开始算起的秒数。这意味着每一例的时间轴起点都是自己的零,不是绝对时钟。

后果:跨病例做时间对齐只能靠相对位置(比如「LOC 前六十秒」),不能靠绝对时刻。而手术队列的 LOC 被定义为切皮时刻,志愿者队列的 LOC 是反应概率跌破阈值时刻——两者的「零」不在同一个含义上。

2.5 体量与段数估算

段数可以估。志愿者每人约三小时,两秒一段,约五千四百段。十个人约五万四千段。

手术病例时长不定,短的一小时、长的六小时。若平均三小时,四十四例约二十三万八千段。

加起来约二十九万段。若每段 100 个频点、以单精度浮点存,约 116 兆字节;若存文本 CSV,会膨胀到一到两吉字节量级。

这解释了为什么这份数据要压成谱:原始波形按同样估算会是这个数字的五十倍以上。

2.6 信号质量标记怎么用

EEGquality 只在手术队列存在。作者的判定方式很直白:若某个两秒段内、全部频点求和后的总功率低于负三万万分贝,判为脱落。

三万分贝这个数字看起来很怪——分贝是对数量纲,三万的分贝值意味着功率比是十的三千次方的量级。这是因为谱在存储时做了某种归一化,绝对值没有物理意义,只有相对比较有意义。所以在用这个阈值之前,要先确认自己算的总功率与作者的算法一致。

实际用法:把 EEGquality 为假的段剔除。但要注意,剔除会让时间序列出现空洞——若连续剔除几十段,前后的状态连不上。所以更稳妥的做法是保留标记、在建模时作为协变量,而不是直接删。

2.7 迁移学习特征是怎么来的

Volunteer_CNN 目录里存的是用预训练卷积网络提的特征。流程是:取当前时刻之前三十秒的谱图(因此相邻窗口重叠二十八秒),归一化像素到零一之间,送进 MobileNet,得到 1280 维向量,再做主成分分析取前十维。

有几个细节值得注意。

输入是三十秒窗,步长两秒。 这意味着相邻的 CNN 特征高度相关(重叠二十八秒)。做交叉验证时若随机划分窗口,会严重泄漏——训练集与测试集里几乎有同样的输入。必须按时间段划分。

MobileNet 是在自然图像上预训练的。 谱图与自然图像的统计性质差别很大,能迁移多少是个经验问题。作者用它是因为在原文里效果不错,但这不构成「这是最优选择」的结论。

1280 维取前十主成分。 降维幅度很大。主成分是在什么范围上拟合的(全体志愿者?单例?)条目页没有明说,这一条需要查原文。

2.8 用药分组的 YAML

rx_sorted_case_ids.yml 把手术病例分三组:纯丙泊酚、纯七氟烷、混合。

这个文件的价值是把 §1.6 说的混合问题变得可操作。但它只给分组,不给剂量、不给给药时序、不给合并用药(阿片、肌松、血管活性药)。

所以「纯丙泊酚」这个标签的含义只是「这一台没用到七氟烷」,不意味着「只有丙泊酚在起作用」。阿片类药物对脑电有独立影响,这一点数据里完全看不到。

2.9 段数是怎么算出来的

上文的估算需要一个更明确的算法,否则容易被当成官方数字。

单例的段数等于记录时长除以二。志愿者队列每人约三小时,即一万零八百秒,得五千四百段;十人合计约五万四千段。

手术队列变数更大。若某台手术从切皮到结束是三小时,同样是五千四百段;一台六小时的手术是一万零八百段;一台一小时的手术是一千八百段。四十四例若平均三小时,约二十三万八千段。

两者合计约二十九万段。每段一百个频点,共两千九百万个数值。以文本 CSV 存储,每个数值按八字节计,约二百三十兆字节;加分隔符与换行,膨胀到一到两吉字节是正常范围。

这些数字的用途只有一个:估算读取与转换的时间。真正装进内存训练时,转成二进制后二十九百万元素的单精度矩阵约一百一十六兆字节,一张显卡能轻松放下。

2.10 一个容易被忽略的细节:频率轴是共享的

f 文件每例一份,但内容完全相同——都是 0 到 50 赫兹、步长 0.5、共 100 个值。

作者在条目页明说了这一点:「对所有病例,f 的范围都是 0 到 50,步长 0.5 赫兹」。所以读了一例的 f,之后所有例都可以复用,不必重复读。

这不是纯粹的优化问题,它还意味着两件事。第一,做跨病例分析时不存在频率轴对齐的麻烦,可以直接按列比较。第二,任何频段特征(比如 α 频段 8 到 12 赫兹)在所有病例上对应的列索引完全相同,可以直接写死。

便利的代价是失去了灵活性:如果某天想往更高频段看(比如 γ 频段的 30 到 50 赫兹之外),这份数据给不了,因为 50 赫兹以上的信息在导出时就已经不在了。

§3 访问:受限但不苛刻

3.1 三道门槛

第一道是注册 PhysioNet 账号。第二道是签署受限数据使用协议,承诺不重新识别、不转让、不公开原始数据。第三道是在发表时按约定引用。

与需要机构担保、需要 CITI 培训证书的那一档相比,这一档只要求个人承诺。与完全公开的那一档相比,多了协议签署这一步。

3.2 地区限制

条目页在部分地区直接显示文件不可用。这与许可条款无关,是站点的分发策略。遇到这种情况,本页的建议是:先确认自己的网络环境,再考虑通过合作机构获取,同时核对版本是否与 DOI 对应。

3.3 引用的正确写法

数据本身:DOI 10.13026/m792-h077,版本 1.0。

配套论文:Abel 等 2021 年发表于 PLOS ONE 第 16 卷第 5 期,文章号 e0246165。这篇论文是理解数据设计意图的必读材料,因为它详细写了特征构造与分类流程。

代码:作者给了 GitHub 仓库地址,含建模与训练的全部脚本。

平台引用:PhysioNet 自身的标准文献,投稿时通常要求同时引用。

3.4 到手的形态与准备

下载后是两个目录:OR 与 Volunteer,加一个 Volunteer_CNN。

全部是 CSV 文本。这意味着读取速度慢、占用空间大。建议第一步就转成二进制格式(比如 NumPy 的 npz 或 HDF5),之后所有分析读转换后的版本。

转的时候要保留 t、f、l、EEGquality 四个数组与 Sdb 矩阵的对应关系,并把文件名里的 CASEID 作为键。

§4 局限:标签、导联、与看不见的年龄

4.1 行为标签的偏差方向

志愿者队列的标签质量已经算高,但仍有偏差,而且方向可推。

丙泊酚抑制运动通路。「能听见但按不动」会发生在意识尚存的阶段,导致 LOC 判早;「意识已恢复但还按不动」会发生在恢复阶段,导致 ROC 判晚。两个方向相反,效果是无意识区间被高估。

这与前一篇讲丙泊酚实验数据时的机制相同,因为两者的判定方法同源。区别在于:那一份用的是简单的按钮反应有无,这一份用的是双模态提示加概率阈值,精度更高,但偏差方向不变。

4.2 手术队列的标签是粗的,粗在哪里

手术队列的标签实际上是「手术期间 = 无意识」。

这个定义在绝大多数情况下成立——手术期间病人确实无意识。但它掩盖了三件事。

第一,诱导期的深度变化。从清醒到无意识是一个过程,中间有一段剂量不足、可能有知晓风险的窗口。这一段被标为 NaN,等于放弃。

第二,手术期间的深度波动。麻醉医生会根据血压心率调整给药,深度会上下移动,但标签一直是零。所以「无意识」这个类内部包含了从浅到深的一整段,谱特征因此有很大的类内方差。

第三,苏醒过程完全缺失。术后不记录,所以从无意识回到清醒的整个过程没有任何数据。

4.3 单导联丢掉了什么

额区单导联能看到麻醉脑电的主要特征——慢波与 α 都在额区最明显,这是选择额区的原因。但丢掉的东西也不少。

空间传播信息。α 振荡在额区与枕区的相位关系、慢波的 spatial coherence,这些都需要多导联。

伪迹的空间鉴别。眼动、肌电、电极脱落,单导联上很难与真实脑电区分。多导联可以用空间模式鉴别,单导联不行。

左右不对称。癫痫、卒中、单侧病变会造成左右功率差异,单导联看不到。

4.4 年龄这件事被作者主动写明

作者在 Limitations 里明确说:无意识的脑电特征依赖年龄,α 频段功率随增龄下降,个体差异显著,本研究未显式校正年龄。

这条限制的实际后果是:分类器可能学到年龄相关的特征而不是意识状态。因为老年人 α 功率本来就低,与无意识状态下的低 α 相似。若训练集里老年人与无意识段有相关性(比如手术队列里老年人更多),模型会把年龄当捷径。

数据里不给年龄,所以这个混杂无法直接校正。能做的是在论文里承认它,并在讨论里说明结论的适用范围。

4.5 健康人与病人的脑电本来就不同

作者还写了一条:健康个体的脑电谱可能与病情较重者不同。志愿者队列排除了已知神经系统疾病者。

这意味着两个队列之间的差异,不仅有设备和场景的差异,还有人群本身的差异。做跨队列迁移时,这三重差异叠加在一起,无法分离。

4.6 信号脱落

手术队列有 EEGquality 标记,说明部分病例存在信号丢失。原因作者没细说,但从手术场景可以推:电刀干扰、电极被血液或消毒液浸湿、病人体位改变、监护仪被暂时断开。

脱落段若被简单删除,会造成时间序列断裂;若被当作低功率段保留,会造出虚假的「高抑制」样本。这是使用这份数据时必须自己处理的一个坑。

4.7 麻醉药之外的因素

手术期间影响脑电的不止麻醉药。

体温:低体温会减慢脑电频率、加深抑制。
血压:低血压导致脑灌注下降,脑电会变慢。
二氧化碳:通气不足导致高碳酸血症,脑电抑制。
合并用药:阿片类、苯二氮类、右美托咪定,各有各的谱特征。

这些在数据里都没有记录。所以手术队列的谱变化,无法归因到某一个因素。

4.8 一个反向的视角:标签粗未必全是损失

前面几节都在说手术队列标签粗糙的代价。这里补一个反向的看法,因为它会改变使用策略。

标签粗,意味着类内方差大。而无意识这一类内部包含了从浅到深的整段,谱特征因此覆盖了一个很宽的范围。若目标是训练一个「稳健的无意识检测器」——只要在无意识时报警、不必分辨深浅——那么这个宽范围反而是优势:模型见过浅麻醉的谱,也见过深麻醉的谱,不会因为病人被加深就误判为「状态异常」。

相比之下,志愿者队列的标签虽然精确,但每一段的时间窗很窄,深度变化更接近程序化阶梯,谱的多样性不如真实手术。

所以两个队列各有各的用处:志愿者队列适合做「精确二分类」的基准,手术队列适合做「鲁棒性」的检验。把一个队列的结论直接搬到另一个队列的语境里,往往是错的。

4.9 数据质量清单

按二十四个常见维度逐项判定。

判为「是」的十三项:有明确许可;有 DOI 与版本;有引用格式;有采集方法详述(设备、参数、电极位置都给了);有伦理说明(志愿者知情同意,手术队列豁免);有变量说明;有文件命名规则;有配套代码与仓库地址;有已知局限的主动披露;有信号质量标记;有两队列的采集参数对照可自洽核对;数据来源机构可核实;发布时间明确。

判为「部分」的七项:样本描述不完整(患者年龄、性别、ASA 分级均未给);手术队列的意识判定说明较粗;预处理参数中「归一化方式」未明确(分贝的参考值是什么);主成分在什么范围上拟合未说明;手术队列单通道谱对应哪个电极未注明;缺失段落的处理建议未给;无外部验证报告被引用。

判为「否」的四项:无原始波形;无数据字典文件(字段含义靠条目页文字);无独立测试集划分说明;无剂量与合并用药记录。

§5 它能用来做什么

5.1 训练与验证意识分类器

这是最直接的用法,也是作者本人的用途。

可行设置有三档:志愿者队列内部按时间划分;跨队列迁移(志愿者训练、手术测试);手术队列上做单类建模。

第一档最容易,但因为只有一个队列,结论的适用范围窄。第二档最有意义,但需要处理设备差异与标签定义差异。第三档最难评估,因为手术队列没有清醒样本。

5.2 比较不同特征集的有效性

数据里同时有原始谱、频带功率(可以自己从谱算)、主成分(可以自己算)、以及作者提供的 CNN 特征。

这构成了一个天然的特征对比实验:同一批数据、同一个分类任务、不同特征表示,看哪个更好。这类研究在方法学上有价值,因为结论可以迁移到别的生理信号上。

5.3 研究谱随时间的演化

因为谱是逐两秒的,可以做时间序列分析。

具体问题:从清醒到无意识的过渡中,哪一段频率先变?α 功率是先升后降还是单调降?慢波功率的上升有多快?

这些问题的答案在文献里有部分共识,但没有统一定量。这份数据的价值在于样本量足够做个体层面的描述。

5.4 作为脑电压缩方法的案例

这份数据本身就是一个「如何把高维信号压成低维表示」的案例。谱是一种压缩、主成分是另一种、CNN 特征是第三种。

对做信号压缩或表示学习的人,这三种压缩的相对信息保留率是一个值得研究的问题。评估方式:用压缩后的特征重建某些下游任务,看性能损失多少。

5.5 用于教学

五十四例、结构清晰、命名规整、有配套代码。适合作为「生理信号机器学习」课程的数据集。

它比大型数据库更适合教学,因为学生能在几分钟内读完一例,看到完整的从文件到结论的链条。

5.6 不能用来做什么

不能训练可用于临床的麻醉深度监测模型。

不能做空间或源定位分析。

不能做儿童研究(受试者都是成人,具体年龄未给)。

不能做恢复期研究(没有术后数据)。

不能做药物特异性结论(混合用药且未记录剂量)。

5.7 用之前必须做的四件事

第一,转格式。 把 CSV 转成二进制,否则读取耗时会让迭代变慢。

第二,断言维度。 每例读完立即检查 Sdb 的行数等于 len(t)、列数等于 len(f)。

第三,统计 NaN 与质量标记的分布。 每例有多少段是 NaN、多少段质量标记为假,先摸清再分析。

第四,确认分贝的参考值。 若谱的绝对值没有物理意义,那么所有基于绝对功率的阈值都要重新考虑。

§6 常见误读

6.1 误读一:以为手术队列也有清醒标签

四十四例手术数据里,标签只有 0 和 NaN。把整份数据当成二分类训练集,会发现正类只来自十名志愿者。

症状:模型在手术数据上准确率百分之百,因为它全预测为无意识。

正确做法:明确区分两个队列的用途,手术队列只用于验证或单类分析。

6.2 误读二:以为五十四例是五十四个人

十名志愿者加四十四台手术。若某位病人做了两次手术,就是两个病例一个人。条目页没有说明是否存在这种情况。

所以「五十四」是病例数,不是人数。做人群推断时不能直接当样本量用。

6.3 误读三:把丙泊酚与七氟烷当成可互换

§1.6 已说。补充一点:两种药在老年人身上的 α 功率表现差别更明显。若样本里老年人集中在某一组,组间差异可能被年龄混杂。

6.4 陷阱一:随机划分窗口造成泄漏

两秒一段,相邻段高度相关。随机划分训练集与测试集,等于把同一段信号的一部分放训练、一部分放测试。

正确做法:按连续时间块划分,块与块之间留间隔;或者按病例划分。

6.5 陷阱二:CNN 特征的重叠窗口

§2.7 说过,CNN 输入是三十秒窗、步长两秒,相邻特征重叠二十八秒。这比原始谱的泄漏更严重。

正确做法:用 CNN 特征时,划分必须按三十秒以上的块做,或者按病例做。

6.6 陷阱三:把信号脱落当抑制

脱落段的总功率极低。若不做质量过滤,这些段在谱上看起来像「深度抑制」,会被模型学成「无意识」的强特征。

症状:模型最重要的特征是最低频段的功率,且性能在含脱落段的病例上异常好。

正确做法:先按 EEGquality 过滤,或把质量作为协变量。

6.7 陷阱四:忘记带宽差异

志愿者队列带宽下到 0.016 赫兹,手术队列到 0.5 赫兹。跨队列比较 0.1 到 0.5 赫兹的功率,比的是设备不是生理。

正确做法:跨队列比较时,把频率范围限制在两者共同的有效带宽内,即 0.5 赫兹以上。

6.8 陷阱五:把谱当成原始信号做形态分析

谱里没有相位。任何需要相位的方法(跨频率耦合、相位幅度耦合、波形形态分类)都做不了。

6.9 分类准确率高不等于能监测麻醉深度

这是最需要强调的一条。

在五十四例上,谱特征加时间建模很可能得到很高的曲线下面积。这在方法学上是好结果,但它回答的是「这两批数据能否分开」。

临床问题是另一个:在合并症、合并用药、不同年龄、不同体温的真实病人身上,当前这一刻的深度是否合适。前者是回顾性分类,后者是实时决策。前者做好了,后者的路还很长。

§7 与相邻数据的定位

7.1 与丙泊酚行为自主神经数据的互补

同课题组还有一份九人丙泊酚实验数据,记录心电与皮电导出的自主神经索引,不含脑电。

两份数据的关系是互补而非重叠:那一份有自主神经、没有脑电;这一份有脑电、没有自主神经。

能否合并?理论上可以——若受试者有重叠。但两份数据的条目页都没有给出受试者编号的对应关系,所以只能在方法层面讨论互补性,不能做个体层面的融合。

7.2 与术中伤害性刺激数据的分工

另有一份一百零一台手术的数据,标的是伤害性刺激的有无,特征是自主神经索引。

三份数据构成一个三角:脑电(本篇)、自主神经(那一份)、行为标签(丙泊酚那份)。三者各测一个侧面,合起来才是完整的麻醉状态图景。

7.3 与脑电麻醉领域其他数据的规模对比

PhysioNet 上的麻醉脑电数据,规模从几十例到几百例不等。本篇五十四例属于中等偏小。

但规模不是唯一标准。这份数据的标签质量(志愿者队列)与设备参数记录的完整度,在同类里属于较好的。做方法学研究,质量比规模重要。

7.4 与 Sedline 厂商数据的关系

手术队列用的是 Masimo 的 Sedline 监护仪。厂商自己也有基于该设备的数据与合作研究。

本篇的独立性在于:它由学术机构分析并公开,不依附于厂商的产品验证。但要注意利益冲突声明——作者中有两人与 Masimo 有专利授权关系,且是另一家做闭环控制公司的联合创始人。这不影响数据本身的可信度,但读结论时要记得这层关系。

7.5 适合谁用

做脑电信号处理与表示学习的方法研究者、做麻醉深度监测早期探索的团队、需要一份结构化数据做教学的教师。

不适合:需要多导联或源定位的研究者、需要恢复期数据的研究者、需要大样本临床结论的研究者。

§8 怎么用:从谱到分类器

8.1 三种任务设置

设置一,志愿者队列内的时间块交叉验证。 按连续时间块划分,训练与测试不共享相邻段。

设置二,跨队列迁移。 志愿者训练、手术测试。这一档必须处理三件事:带宽对齐(限到 0.5 赫兹以上)、功率归一化(逐例标准化,因为两队列设备不同)、标签定义(手术队列全为无意识,只能看分数分布是否偏低)。

设置三,留一病例。 每次留一整例做测试。这是最严格的设置,也最接近真实部署。

8.2 为什么必须按时间块或按病例划分

§6.4 与 §6.5 已说。这里补一个定量感觉:两秒一段的相邻段,谱的相关系数通常在 0.9 以上;三十秒窗的 CNN 特征,相邻帧的相关几乎为 1。

在这种相关性下,随机划分得到的测试性能会显著高于真实泛化性能。落差有多大?在类似任务上常见的是从 0.95 掉到 0.75 左右。这个落差不是模型不好,是评估方式错了。

8.3 指标怎么选

主指标用曲线下面积,但必须按病例报告分布,不只报平均。

辅助指标:在固定误报率下的检出率(临床更关心这个,因为误报会导致不必要的加深麻醉)。

不要用原始准确率。志愿者队列里清醒与无意识的比例大致均衡,但手术队列全为无意识,准确率没有意义。

8.4 基线与它的意义

必须给三个基线。

基线一,只用 α 频段功率。 这是最简单的单特征,也是文献里最常被提到的指标。任何模型若不能显著超过它,说明复杂度没带来收益。

基线二,只用总功率。 更粗,但如果它就能分得很好,说明任务本身太容易,或者有泄漏。

基线三,用给药阶段(仅志愿者队列)。 因为 LOC 与给药阶段强相关,这个基线能揭示模型是否只是学到了「第几阶段」。

8.5 过拟合的典型表现

训练集曲线下面积 0.99,测试集 0.6。

或者:跨病例验证里,某些病例很好、某些很差,且差的病例都是信号脱落多的。

后者提示模型依赖了伪迹。

8.6 具体的数据处理建议

按顺序做。

一,CSV 转二进制,保留四个辅助数组。

二,每例统计 NaN 段数与质量标记为假的段数,输出一张表。

三,把频率轴切到 0.5 到 50 赫兹(去掉最低频,规避带宽差异与去趋势影响)。

四,逐例做谱的标准化。标准化必须在每一例内部做,不能跨例,否则会把病例间的设备差异当成信号。

五,按时间块划分,块长至少三十秒(若用 CNN 特征则至少六十秒)。

六,训练前检查训练块与测试块的 t 是否有重叠。

8.7 五条失败模式

失败一,把 NaN 当零。 手术队列的诱导段全是 NaN,若当零处理,会造出一批虚假的「无意识」样本。

失败二,跨例标准化。 抹掉了设备差异,也抹掉了真实的个体差异。

失败三,用全数据拟合主成分再切分。 典型泄漏。

失败四,忽略频段边界。 0 到 0.5 赫兹在两队列里含义不同,混在一起比较会得到设备效应。

失败五,只报平均性能。 掩盖了病例间的巨大差异,而后者往往是能否临床使用的关键。

8.8 结果该怎么读

三个问题。

一,跨病例的方差有多大? 若标准差接近均值的一半,说明模型在某些人身上基本失效。

二,超过 α 功率基线多少? 见 §8.4。超不过就是没学到新东西。

三,性能与信号质量相关吗? 若质量差的病例性能反而好,说明模型学了伪迹。

8.9 与临床指征的比较

临床上用的是厂商内置的指数(如双频指数、Sedline 的患者状态指数)。这份数据不含这些指数的输出,所以无法直接对比。

间接办法:用同一批谱算出厂商指数的近似版本(若算法公开),或者用论文报告的性能数字做参照。前者更严谨,后者只能定性。

§9 三条技术路线

9.1 手工频带特征加分类器

把谱按经典频带切分(慢波 0.1 至 1、δ 1 至 4、θ 4 至 8、α 8 至 12、σ 12 至 15、β 15 至 30),每段求和或求均值,得到六到八个特征,接逻辑回归或线性判别。

优点是解释性强、样本需求小。缺点是丢掉了频带内部的形状信息。

适合做基线,也适合临床解释。

9.2 主成分加时间建模

对谱做主成分分析,取前若干维,再用隐马尔可夫模型建模状态转移。

作者本人走的就是这条路。它的好处是显式建模了「状态」——麻醉不是逐段独立的,而是在几个状态之间转移。隐马尔可夫的状态可以对应「清醒」「浅麻醉」「深麻醉」,比二分类更贴近实际。

限制是状态数要人为定,且状态没有客观对应物。

9.3 端到端卷积网络

把谱图当图像,直接训一个卷积网络。

这条路的优势是无需手工特征。劣势是需要更多数据,且五十四例的规模对深度网络来说偏小——这也是作者为什么用预训练 MobileNet 做迁移而不是从头训。

9.4 一条被忽略的中间路线

既想要频带特征的可解释性,又想要端到端的表达能力,可以走「频带特征加时序卷积」。

做法:把六个频带的功率随时间排成六条序列,用一个小的时序卷积网络(或门控循环单元)建模。参数量比图像卷积小一到两个数量级,在五十四例的规模上更不容易过拟合,而且每一层的输入都是有物理意义的频带功率。

这条路线在本页看来是最匹配这份数据规模的,但它不是作者的选择,需要自行验证。

9.5 选择建议

要可解释性,走 §9.1。要复现作者结果,走 §9.2。要追性能且能承受过拟合风险,走 §9.3。规模有限又想要非线性,先试 §9.4。

§10 术语

多锥谱估计:用一组正交窗函数(锥)对同一段信号做多次加窗傅里叶变换再平均,以降低谱估计的方差。

时间半带宽积:多锥方法的参数,决定频率平滑带宽与可用的锥数,本数据取 3。

谱图:以时间为横轴、频率为纵轴的功率分布矩阵。

分贝:功率的对数尺度,十倍 log10 功率比。

意识消失 / 恢复:本数据志愿者队列中指对两种提示的反应概率跌破或升回 5% 的时刻;手术队列中指手术开始时刻。

爆发抑制:深麻醉下脑电出现的「高幅爆发」与「近等电位抑制」交替模式。

慢波:约 0.1 至 1 赫兹的高幅脑电活动,丙泊酚与七氟烷无意识状态下的特征之一。

α 振荡:约 8 至 12 赫兹的节律,麻醉诱导期功率升高,是麻醉脑电的标志性特征。

迁移学习:把在大数据集上预训练的模型参数迁移到小数据集任务上。

主成分分析:线性降维方法,把高维数据投影到方差最大的若干正交方向上。

隐马尔可夫模型:假设观测由若干隐状态生成、隐状态按马尔可夫链转移的时序模型。

曲线下面积:受试者工作特征曲线下的面积,衡量二分类判别能力。

TIVA:全静脉麻醉,只用静脉药物维持麻醉。

§11 事实清单

11.1 核心事实

项 值
标题 Multitaper spectra recorded during GABAergic anesthetic unconsciousness
托管 PhysioNet,版本 1.0
DOI 10.13026/m792-h077
病例数 54(10 名健康志愿者 + 44 台手术)
志愿者设备 BrainVision MRI Plus,64 导,5,000 赫兹,0.016–1,000 赫兹,0.5 微伏
志愿者分析导联 Fp1
手术设备 Masimo Sedline,250 赫兹,0.5–92 赫兹,16 位 29 纳伏
手术电极 近似 Fp1、Fp2、F7、F8,参考在 Fpz 上方 1 厘米,阻抗低于 5 千欧
分段 2 秒,无重叠
谱估计 多锥法,NiTime,TW=3,锥数 3,线性去趋势
频点 0–50 赫兹,步长 0.5 赫兹,共 100 个
标签 1 清醒 / 0 无意识 / NaN 无法判定
质量标记 总功率低于 −30,000 分贝判为脱落,仅手术队列
志愿者 LOC/ROC 定义 对咔哒与口头两种提示的反应概率跌破/升回 5%
手术 LOC 定义 手术开始时刻;诱导至切皮标 NaN
用药分组 pure_propofol / pure_sevo / mixed(YAML 文件)
CNN 特征 MobileNet,30 秒输入、2 秒步长,1280 维,取前 10 主成分
配套论文 PLOS ONE 2021;16(5):e0246165
代码 github.com/johnabel/GABAergic_unconsciousness
伦理 志愿者知情同意;手术队列豁免(回顾性)
利益冲突 Masimo 就脑电监测知识产权向麻省总医院支付授权费;两位作者为 PASCALL 联合创始人

11.2 六个可立即验证的疑问

一,手术队列单通道谱对应哪个电极?四个电极都在用,谱是其中一个还是四者平均,条目页未说明。

二,主成分在什么范围上拟合?全体志愿者共用,还是逐例?这决定了主成分能否跨例比较。

三,分贝的参考功率是多少?若不明确,绝对功率阈值无从设定。

四,54 个病例背后是多少人?是否存在同一病人多次手术?

五,手术队列中三组(纯丙泊酚、纯七氟烷、混合)各多少例?YAML 文件里能数出来,但影响 §1.6 的讨论深度。

六,EEGquality 为假的段占比多少?这决定了脱落问题的严重程度。

11.3 一个病例的读取流程

import numpy as np, pandas as pd, os

def load_case(root, caseid, cohort='OR'):
    d = os.path.join(root, cohort)
    t = pd.read_csv(os.path.join(d, f'{caseid}_t.csv'), header=None).values.ravel()
    f = pd.read_csv(os.path.join(d, f'{caseid}_f.csv'), header=None).values.ravel()
    l = pd.read_csv(os.path.join(d, f'{caseid}_l.csv'), header=None).values.ravel()
    s = pd.read_csv(os.path.join(d, f'{caseid}_Sdb.csv'), header=None).values
    assert s.shape == (len(t), len(f)), (caseid, s.shape, len(t), len(f))
    q = None
    p = os.path.join(d, f'{caseid}_EEGquality.csv')
    if os.path.exists(p):
        q = pd.read_csv(p, header=None).values.ravel()
        assert len(q) == len(t)
    return dict(t=t, f=f, l=l, Sdb=s, q=q)

断言放在函数里。谱矩阵的形状是最容易出错的地方,必须在读取时拦住。

11.4 附录 A:按质量与标签筛段

def usable(case, drop_nan=True, drop_bad=True):
    m = np.ones(len(case['t']), dtype=bool)
    if drop_nan:
        m &= ~np.isnan(case['l'])
    if drop_bad and case['q'] is not None:
        m &= case['q'].astype(bool)
    return m

def summarize(case):
    n = len(case['t'])
    nn = int(np.isnan(case['l']).sum())
    nb = 0 if case['q'] is None else int((~case['q'].astype(bool)).sum())
    print(f"总段 {n} / NaN {nn} ({nn/n:.1%}) / 质量差 {nb} ({nb/n:.1%})")

先跑这段,再决定怎么处理。比例高的病例,其结论要打折扣。

11.5 附录 B:按时间块划分

def block_split(n, block=15, frac=0.2):
    """n 段,每 block 段为一块,按块随机划分训练/测试,返回布尔掩码。"""
    import numpy as np
    nb = int(np.ceil(n / block))
    rng = np.random.default_rng(0)
    test_blocks = set(rng.choice(nb, size=max(1, int(nb*frac)), replace=False))
    m = np.zeros(n, dtype=bool)
    for b in test_blocks:
        m[b*block:(b+1)*block] = True
    return m   # True 表示测试

块长取十五段即三十秒;若用 CNN 特征,应取三十段以上。

11.6 附录 C:证据链

  • 数据集条目页:https://physionet.org/content/eeg-power-anesthesia/1.0.0/,含 Abstract、Background、Methods(Data collection 两小节与 Signal processing)、Data Description(含 Limitations)、Usage Notes、Release Notes、Conflicts of Interest、References
  • 采集参数:条目页 Methods 段,两队列设备、采样率、带宽、分辨率、电极位置均逐项给出
  • 处理参数:条目页 Signal processing 段,2 秒分段、无重叠、TW=3、2TW−1=3 锥、线性去趋势、0–50 赫兹
  • 标签定义:条目页 Methods 段(志愿者)与 Signal processing 段(手术)
  • CNN 特征:条目页 Data Description 段,MobileNet、30 秒输入、2 秒步长、1280 维、前 10 主成分
  • 配套论文:PLOS ONE 2021;16(5):e0246165(DOI 10.1371/journal.pone.0246165)
  • 代码仓库:https://github.com/johnabel/GABAergic_unconsciousness
  • 文件清单:条目页 Files 段在部分地区的访问受限,本页未取得完整文件清单,故不含按文件核对的统计

凡属分析性内容(§2.5 的体量估算、§4.8 的判定、§8 与 §9 的方案与代码、§7 的定位比较)为基于条目页描述与领域常识的推演,非官方结论,代码亦未实际运行验证。凡标注「条目页」的均为该页原文表述。段数与字节数均为量级推断,不是精确值。

编辑说明

本页所有数值来自 PhysioNet 条目页(版本 1.0)与其列出的参考文献、配套论文的出版信息,未做数据下载与实测。三处需提示:一是体量与段数为量级推测;二是两队列带宽差异对慢波功率的影响为编辑推断,条目页未讨论;三是 DAIMS 判定为编辑判断。利益冲突一节照录条目页原文,不含评价。


相关数据集导航

以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:

  • ltrsvp — 共享标签:生理信号 / 脑电信号 / 神经科学 / 评测基准
  • moabb — 共享标签:生理信号 / 脑电信号 / 神经科学 / 评测基准
  • tuev — 共享标签:生理信号 / 脑电信号 / 神经科学 / 评测基准
  • nebula-reaching-eeg — 共享标签:生理信号 / 脑电信号 / 神经科学 / 评测基准
  • openneuro — 共享标签:生理信号 / 脑电信号 / 神经科学
  • tuab — 共享标签:生理信号 / 脑电信号 / 评测基准
  • siena-scalp-eeg — 共享标签:生理信号 / 脑电信号 / 神经科学
  • bigp3bci — 共享标签:生理信号 / 脑电信号 / 评测基准
  • neurocritical-pediatric — 共享标签:生理信号 / 脑电信号 / 评测基准
  • consumer-grade-wearables — 共享标签:生理信号 / 神经科学 / 评测基准

导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

返回 AI-Ready 数据集