Cardiotocography — UCI 胎心宫缩图 21 特征胎儿状态分类数据集(2126 例)

SisPorto 2.0 自动抽取的 2126 例产前胎心宫缩图 21 维诊断特征表——3 位产科专家共识双标签(形态学 CLASS 10 类 + 胎儿状态 NSP 3 类),CC BY 4.0 开放,机器学习胎心判读的入门基准

来源 UCI Machine Learning Repository dataset id=193(Campos & Bernardes, 2000;doi:10.24432/C51S4N)——CTG.xls 单表 2126 行 × 23 列,含 21 维诊断特征(LB/AC/FM/UC/DL/DS/DP/ASTV/MSTV/ALTV/MLTV 及 FHR 直方图统计)+ 双标签(CLASS 1-10 / NSP N-S-P),无缺失值发布时间: 2026-10-08最后更新: 2026-10-20 阅读 31
Cardiotocography — UCI 胎心宫缩图 21 特征胎儿状态分类数据集(2126 例)

信息速览

数据集名称Cardiotocography — UCI 胎心宫缩图 21 特征胎儿状态分类数据集(2126 例)
数据类型原始数据,表格数据,临床数据
规模2126 例胎心宫缩图记录(每例对应一次妊娠的产前 CTG 判读;孕周 29-42 周)
接入方式UCI Machine Learning Repository dataset id=193(Campos & Bernardes, 2000;doi:10.24432/C51S4N)——CTG.xls 单表 2126 行 × 23 列,含 21 维诊断特征(LB/AC/FM/UC/DL/DS/DP/ASTV/MSTV/ALTV/MLTV 及 FHR 直方图统计)+ 双标签(CLASS 1-10 / NSP N-S-P),无缺失值
AI 就绪度

INFOBOX — UCI-CTG(Cardiotocography)一屏速览

维度 内容
本质 SisPorto 2.0 自动抽取的 2126 例产前 CTG 的 21 维特征表(结构化,非原始波形)
托管 UCI Machine Learning Repository,dataset id=193(doi:10.24432/C51S4N)
创建者 D. Campos(Diogo Ayres-de-Campos)、J. Bernardes(João Bernardes)——波尔图大学医学院
规模 2126 例 × 21 特征 + 2 标签,无缺失值;孕周 29-42 周
双标签 CLASS 形态学模式(10 类 A/B/C/D/E/AD/DE/LD/FS/SUSP)|NSP 胎儿状态(3 类 N/S/P)
分布 NSP:N=1655(77.8%)/ S=295(13.9%)/ P=176(8.3%)——严重不平衡
捐赠 2010-09-06 入 UCI;方法学锚点论文 2000 年
许可 CC BY 4.0(可任意目的共享改编,须署名)
获取 UCI 页直下 ZIP(330.9 KB)/pip install ucimlrepo → fetch_ucirepo(id=193)
典型成绩 3 类 NSP 分类文献常报 accuracy > 95%
库内消歧 与 ctu-uhb-ctg(rid 870) 同名母题但不同源:本篇为葡萄牙波尔图特征表,彼为捷克 PhysioNet 信号库
库内互链 ctu-uhb-ctg(870,消歧对照)、focus-fetal(881)、fetal-planes-db(538)

UCI-CTG 是一个"半成品反而更通用"的数据集样本。它不提供胎心监护的原始波形,只提供 SisPorto 2.0 软件把每一条宫缩图"读"完之后吐出的 21 个数字——胎心率基线、加速次数、各类减速的次数、长短程变异性占比、FHR 直方图的宽度与众数方差……每一行就是一位产妇产前监护的一纸"体检小结"。正是这种**已经特征化、已经判读、已经干净(零缺失值)**的形态,让它成为二十多年来机器学习胎儿状态分类最常用的入门基准:门槛低到一张 Excel 表就能开始,标签又来自三位产科专家的共识,兼具可复现性与临床可信度。

导语读法三则:

  1. 只想下数据跑模型:直奔 §6——CC BY 4.0 无附加条款,ucimlrepo 一行 fetch_ucirepo(id=193) 即可拿到特征与标签。
  2. 关心它和别的 CTG 数据集什么关系:直奔 §7 与 §10——本篇(UCI 特征表)与库内 ctu-uhb-ctg(PhysioNet 信号库)不可互换、不可合并,消歧表在 §10。
  3. 做类别不平衡研究:直奔 §4 与 §5——77.8% 对 8.3% 的天然分布是现成的长尾教材。

§0 导读:这个数据集解决什么问题

0.1 临床背景:胎心监护的"判读难题"

胎心监护(电子胎心监护,Electronic Fetal Monitoring, EFM)自 20 世纪 70 年代普及以来,一直是产科的"标配但争议缠身"的技术:它能连续记录胎儿心率(Fetal Heart Rate, FHR)与子宫收缩(Uterine Contraction, UC)两条曲线,临床医生据此判断胎儿宫内状态是否安好,是否存在缺氧(hypoxia)、酸中毒等风险,并决定是否需要干预(如加快分娩或剖宫产)。

问题在于,判读高度依赖阅图者的经验。一条胎心曲线包含的信息很多:基线水平在哪里?有没有加速?有没有减速?减速的形状是"早减速"“晚减速"还是"变异减速”?短程变异性(short-term variability, STV)和长程变异性(long-term variability, LTV)是正常、增大还是减小?这些指标合在一起,才构成一个判读结论。而不同医生可能"看同一张图、得不同答案"——观察者间一致性长期偏低,这既可能造成过度干预(把可疑当病理),也可能造成漏诊(把病理当正常)。

0.2 两条技术路线

针对这个判读难题,临床与工程界分化出两条应对路线:

  • 自动化判读软件:用固定算法替代人工阅图,把"看图"变成"算分"。本数据集的来源软件 SisPorto 2.0 正是这条路线上的代表——它严格遵循 FIGO 指南,把每条曲线自动拆解为一组可量化的特征,并基于这些特征给出判读。SisPorto 由波尔图大学团队自研,并衍生出商业公司 Omniview 分发。

  • 机器学习判读:在软件特征的基础上,进一步让统计/机器学习模型从"特征—标签"样本中学习判读规律。这条路线需要一个"标准题库":一批已经由专家判读、标签可信、格式规整的 CTG 特征样本。UCI-CTG 正是为这个方向准备的题库。

0.3 UCI-CTG 的三步降压

UCI-CTG 的构造逻辑,本质是三次"降压",把一条复杂的连续波形,逐步降压成机器可学的表格:

  1. 降压一:波形 → 特征。把连续 FHR/UC 曲线交给 SisPorto 2.0,按 FIGO/NIH 指南计算出 21 个诊断特征(心率基线、事件计数、变异性、直方图统计)。这一步消化了时序的复杂性。
  2. 降压二:主观 → 共识。把每条记录交给三位产科专家独立判读,取其共识作为标签。这一步降低了单人判读的噪声。
  3. 降压三:识别 → 匿名。移除原始波形与患者标识,只保留特征与标签,开放整张表。

三步降压的收益很明确——可复现:任何团队拿到的都是同一张表、同一套标签、同一个划分空间,模型之间可以横向对比。代价同样明确——不可回溯:原始波形被丢弃,想研究信号形态、想重算特征、想验证软件本身的误差,这张表都帮不上忙。

0.4 在 AI-Ready 光谱中的位置

因此 UCI-CTG 在"AI-Ready 数据集"光谱中的位置很清晰:它不是原始数据,而是经过专业软件预处理与专家标注的成品特征表——属于 “特征就绪(feature-ready)” 一档,而非"原始就绪(raw-ready)“。它的开放许可(CC BY 4.0)、零缺失、双标签设计,使它成为从教学到基准再到临床判读算法原型都适用的"通用水位线”。

对使用者的第一句话建议是:把它当"题库"而非"原始素材"。它擅长回答"某分类算法在胎心判读上能做到多好",不擅长回答"这条胎心曲线具体长什么样"。

§0 读法三则(续):

  1. 想弄清标签怎么来的,读 §4;想弄清特征怎么来的,读 §3。两者是理解本数据集的左右腿。
  2. 想避免踩坑,先读 §11 坑点清单——尤其是"21 特征 vs 23 列"“NSP 编码错位”"与 ctu-uhb-ctg 混用"三条。
  3. 想评估是否能直接用于自己的项目,读 §12 DAIMS 就绪度表,先确认自己需要的是"特征"还是"原始信号"。

§1 数据集速览:十问十答

Q1:UCI-CTG 到底是什么形态的数据?
一张结构化的表格:2126 行 × 23 列(21 个数值型诊断特征 + CLASS 与 NSP 两个分类标签列)。它不含原始 FHR/UC 双通道时序波形——波形已被 SisPorto 2.0 处理成一串统计量,因此它是"特征级"而非"信号级"数据集。数据文件就是一张 Excel 表(CTG.xls),可直接打开浏览。

Q2:2126 例从哪里来、代表什么?
2126 条胎心宫缩图记录,来自产前(antepartum)监护,孕周跨度约 29-42 周。每行对应一次 CTG 判读。数据由波尔图大学医学院团队经 SisPorto 2.0 处理并组织,2010 年 9 月捐赠给 UCI 机器学习仓库。需要注意的是,"2126 例"指的是 2126 条记录,不必然等于 2126 名独立产妇(数据无患者 ID,无法去重)。

Q3:21 个特征分别是什么?
分四组:① FHR 基线类——LB(基线 bpm)、AC(加速/秒)、FM(胎动/秒)、UC(宫缩/秒)、DL/DS/DP(轻/重/延长减速/秒);② 变异性类——ASTV/ALTV(异常短/长程变异性时间占比 %)、MSTV/MLTV(短/长程变异性均值);③ FHR 直方图类——Width/Min/Max/Nmax/Nzeros/Mode/Mean/Median/Variance/Tendency。完整定义见 §2.2 与 §3。

Q4:两套标签有什么区别?
CLASS 是"形态学模式"标签,码值 1-10(社区解读为 A/B/C/D/E/AD/DE/LD/FS/SUSP),刻画这条曲线的形状类别;NSP 是"胎儿状态"标签,三值 N/S/P(正常/可疑/病理),是临床上更有意义的判读结论。因此数据集既可做 10 类任务,也可做 3 类任务——后者是绝大多数论文的选择。两套标签相关但不等价:相同的形状模式可能对应不同的临床状态。

Q5:类别平衡吗?
不平衡,且偏得厉害。NSP 三分:Normal 1655(77.8%)/ Suspect 295(13.9%)/ Pathologic 176(8.3%)。多数类一枝独大,任何不做重采样/加权的模型都会"躺赢"到接近 78% 的准确率,因此文献里单纯看 accuracy 意义不大。这一分布已被 springermedizin 与 IJCSN 2016 两处独立文献互证。

Q6:标签谁给的、可信吗?
三位产科专家(three expert obstetricians)各自判读,最终以共识标签(consensus classification label)落库。判读依据是 FIGO 指南与 NIH 共识的分级标准。相比单人标注,共识机制降低了主观噪声,但仍是"专家判读",不是病理金标准——这一点在使用时应保持清醒。

Q7:为什么它长期是"基准"?
三个原因叠加:干净(无缺失值)、规整(数值特征,直接喂分类器)、可信(专家共识标签 + FIGO 依据)。加上 CC BY 4.0 的无附加限制,任何团队都能零成本复现,于是二十余年积累了海量对照结果,成为这个方向事实上的公共比尺。规模也"刚好":2126 例不大不小,普通电脑几分钟可跑完实验。

Q8:和 PhysioNet 的 CTU-UHB(ctu-uhb-ctg)是一回事吗?
不是,而且是两个层级完全不同的数据集。 UCI-CTG 是葡萄牙波尔图大学 SisPorto 抽取的 2126 例特征表;ctu-uhb-ctg 是捷克技术大学 + 布尔诺大学医院的 552 例原始双通道波形库。前者可训练分类器,后者可做信号处理;前者 CC BY 4.0(可商用),后者免费非商业。详见 §10 消歧表。

Q9:我该怎么获取?
两条零门槛路径:① 浏览器直下 cardiotocography.zip(330.9 KB,内含 CTG.xls);② Python:pip install ucimlrepo 后 fetch_ucirepo(id=193) 直接取 pandas DataFrame。均无需注册、无需申请、无 gated 限制。

Q10:它对 AI-Ready 的意义在哪?
它是"特征就绪(feature-ready)"这一档的代表:不提供原始数据,但把"清洗—特征—标注"三步都做完了,开箱即用。对需要快速验证分类算法、研究类别不平衡、或做医学数据教学的人,这种成品形态的边际价值极高;对需要信号级信息的人,则必须另行寻找互补数据集。

§2 数据构成与规格

2.1 规模与文件规格

属性 规格
实例数 2126
列数 23(21 特征 + CLASS + NSP)
特征类型 多为连续实数(Real),部分列为整数码(页面标 LB/ASTV/ALTV 为 Integer)
缺失值 无(Has Missing Values? No)
数据形态 Multivariate 表格(单表)
关联任务 Classification(3 类或 10 类)
文件 CTG.xls(1.7 MB,页面标注)/下载包 cardiotocography.zip(330.9 KB)
访问方式 UCI 页直下 / ucimlrepo Python API / Kaggle 镜像
DOI 10.24432/C51S4N
捐赠日期 2010-09-06

口径提示:UCI 页面「# Features」计数为 21,但变量表与实际数据列出 23 列——差的两列正是两个标签(CLASS、NSP)。本条目统一表述为「21 特征 + 2 标签」,并在坑点中存照此计数差(§9、§11)。

关于文件体积的说明:页面标注 CTG.xls 为 1.7 MB(解压后),下载包 cardiotocography.zip 为 330.9 KB(压缩后)。两者是压缩前后关系,非冲突,但容易被误读为两个不同文件。

2.2 特征字典(21 项全表)

下表逐项列出 UCI 官方定义,是理解本数据集的关键——因为整份数据集的全部信息都压缩在这 21 列里:

符号 全称 说明 单位/范围提示
LB FHR baseline 胎心率基线 次/分(bpm)
AC accelerations 加速次数 次/秒
FM fetal movements 胎动次数 次/秒
UC uterine contractions 子宫收缩次数 次/秒
DL light decelerations 轻度减速次数 次/秒
DS severe decelerations 重度减速次数 次/秒
DP prolonged decelerations 延长减速次数 次/秒
ASTV % time abnormal short-term variability 异常短程变异性时间占比 %
MSTV mean short-term variability 短程变异性均值 幅度单位
ALTV % time abnormal long-term variability 异常长程变异性时间占比 %
MLTV mean long-term variability 长程变异性均值 幅度单位
Width width of FHR histogram FHR 直方图宽度 bpm
Min minimum of FHR histogram 直方图最小值 bpm
Max maximum of FHR histogram 直方图最大值 bpm
Nmax number of histogram peaks 直方图峰值个数 个
Nzeros number of histogram zeros 直方图零值个数 个
Mode histogram mode 直方图众数 bpm
Mean histogram mean 直方图均值 bpm
Median histogram median 直方图中位数 bpm
Variance histogram variance 直方图方差 幅度²单位
Tendency histogram tendency 直方图趋势 -1/0/1

读表要点:前四组分别对应"心率水平(LB)—事件计数(AC/FM/UC/DL/DS/DP)—变异性(ASTV/MSTV/ALTV/MLTV)—分布形状(Width 起的 9 项)"。减速类特征(DL/DS/DP)与异常变异性(ASTV/ALTV)在临床上常与胎儿缺氧相关,是模型中最具判别力的维度之一。

2.3 特征分组的临床解读

为了帮助理解,把 21 个特征按临床意义重新归类:

第一组:心率水平(1 项)

  • LB——基线。正常范围通常为 110-160 bpm(不同指南略有出入)。过高(心动过速)或过低(心动过缓)都提示需要关注。

第二组:事件计数(6 项)

  • AC——加速。胎心加速通常是胎儿状态良好的良性信号。
  • FM——胎动。母亲感觉或监护记录的胎动,与胎儿活跃度相关。
  • UC——宫缩。反映子宫收缩的频率,是判读减速的必要参照。
  • DL——轻度减速。幅度/时长较轻的减速。
  • DS——重度减速。幅度/时长较重的减速,临床关注度更高。
  • DP——延长减速。持续时间较长的减速,需警惕。

第三组:变异性(4 项)

  • ASTV/MSTV——短程变异性的异常时间占比与均值。STV 反映逐拍心率波动,是评估胎儿自主神经状态的重要窗口。
  • ALTV/MLTV——长程变异性的异常时间占比与均值。LTV 反映较长时间尺度上的心率波动幅度。
  • 变异性"减小"常与胎儿抑制/缺氧相关,是病理判读的核心依据之一。

第四组:直方图统计(10 项)

  • Width/Min/Max——FHR 分布的宽度与极值。
  • Nmax/Nzeros——直方图峰值个数与零值个数,反映分布的多峰性与空洞。
  • Mode/Mean/Median——集中趋势的三个度量。
  • Variance/Tendency——离散度与趋势。

这种"把一条曲线压成一张分布"的做法,好处是数值可控、易比较,代价是丢掉了时间顺序——同样的直方图可能来自不同的时间轨迹,这是特征化不可避免的信息损失。

§1.5 常见误区速查表

在正式进入细节之前,先用一张表集中列出最容易被误解的点,供快速查阅:

常见说法 是否正确 正确表述
“UCI-CTG 有 2126 条胎心波形” ❌ 有 2126 条特征记录,波形已被丢弃
“它和 CTU-UHB 是同一个 CTG 数据集” ❌ 完全不同的两个数据集(§10)
“它有 21 列” ⚠️ 近似 有 23 列(21 特征 + 2 标签)
“它的标签是 N/S/P” ✅ 官方字母码;派生版重编为 0/1/2
“它是二分类” ❌ 3 类(NSP)或 10 类(CLASS)
“它可商用” ✅ CC BY 4.0,署名后可商用
“它是深度学习数据集” ❌ 规模偏小,定位为传统 ML 验证台
“它是 2010 年的数据集” ⚠️ 方法学论文 2000 年,捐赠 2010 年
“它含患者信息” ❌ 无患者 ID,已去标识
“它预置了训练/测试划分” ❌ 不给划分,使用者自定

§1.6 一图读懂:数据集的"三层结构"

理解 UCI-CTG 最省力的方式,是记住它的三层结构:

第 3 层:标签层(两位判读结论)
  └─ CLASS(形态学,1-10) + NSP(胎儿状态,N/S/P)
         ↑ 由专家共识判读产生

第 2 层:特征层(21 个诊断数字)
  └─ 基线/事件计数/变异性/直方图统计
         ↑ 由 SisPorto 2.0 从波形抽取

第 1 层:原始层(被丢弃)
  └─ 原始 FHR/UC 双通道波形 —— 不在本数据集中

读法:从下往上看,数据被"逐层加工";从上往下看,每一步都伴随信息损失。使用者拿到的是第 3 层 + 第 2 层,第 1 层已不可及——这决定了它能做什么、不能做什么。

§1.7 为什么这篇条目值得细读

对于不同的读者,本条目有不同的"必读段":

  • 数据工程师:§6(获取与许可)、§2(数据规格)——先确认能不能拿来用。
  • 算法研究者:§5(任务与基准)、§5.4-5.6(实验协议与指标)——先确认怎么比。
  • 临床/医学读者:§3(SisPorto 与 FIGO)、§4(标签体系)——先确认临床语义。
  • 数据集选型者:§7(生态位置)、§10(消歧)、§12(就绪度)——先确认是否适配。
  • 教学者:§5.5(使用演练)、§8.4(横向对比)——现成的教学素材。
  • 避免踩坑:§9(存照)、§11(坑点清单)——先看这里省时间。

§3 SisPorto 2.0:从波形到 21 个数字

3.1 为什么"特征化"是这份数据集的核心特性

要理解 UCI-CTG,绕不开它的上游软件 SisPorto 2.0。原始 CTG 是两条连续曲线:一条是胎儿心率随时间的轨迹,一条是子宫收缩压力的轨迹,采样频率、噪声、信号丢失去段都会影响判读。把这样的时序直接交给分类器(尤其是二十多年前的算法)既不现实也不稳定。SisPorto 的作用就是把"看图"这件事变成"算数":按 FIGO 与 NIH 的判读共识,把曲线拆解成 21 个可量化、可比较的指标,让机器和人都面对同一组数字。

论文(Ayres-de-Campos 等,2000)对 SisPorto 2.0 的描述要点:

  • 遵循 FIGO 指南:程序的分析逻辑严格贴合 FIGO(国际妇产科联盟)的胎心监护判读规范,而非自定义阈值。
  • 同时支持产前与产时:可分析 antepartum(产前)与 intrapartum(产时)两类记录。
  • 不做信号降采样:保留原始信号的时间分辨率,避免降采样引入的信息损失。
  • 支持双胎同时记录:可同步分析双胎的两条 FHR 轨迹。
  • 11 步处理链:FHR 特征计算包含 11 个依次执行的步骤,如 FHR 尖峰剔除(spike removal)、宫缩信号滤波(filtering of uterine contraction signals)、宫缩检测等(该流程描述见 springermedizin 对同一数据集的转述)。

关键含义:正因为这 21 个特征由软件而非人工抽取,它们的定义、阈值、边界处理都携带 SisPorto 的"世界观"。使用者若想复刻或改进,最好回到 2000 年论文去核对每个特征的精确定义——尤其是 ASTV/MSTV/ALTV/MLTV 这组变异性指标,其"异常"的判定阈值直接来自 FIGO 口径。

一个直观的类比:把原始 CTG 想象成一段音乐会录音,SisPorto 就是一位"只听节拍与音量、不听旋律"的乐评人——它把录音转写成一张统计表(平均节拍、强拍次数、音量起伏幅度……),却不再保留原始音频。若你研究的是"节拍统计规律",这张表足够;若你研究的是"某段旋律的曲式",就必须回到原始录音。UCI-CTG 提供的正是"统计表",原始"录音"已被丢弃。

3.2 从"判读指南"到"判读数字"

FIGO 的 CTG 判读指南是概念性的:它告诉你"基线在 110-150 之间算正常、低于 100 或高于 170 算病理""变异性持续低于 5 bpm 超过 40 秒提示异常"等等(这些阈值在 springermedizin 的 Table 2 中逐条列出)。但指南是给人看的,机器需要一个可计算的落地。SisPorto 的价值就在于把指南中的每一条判读规则,翻译成可执行的算法步骤,最终产出可比较的数字特征。

从 springermedizin 转述的 FIGO 判读标准可看到,胎儿状态三分(N/S/P)的判定并非单一指标的阈值,而是多指标的组合判断:

维度 Normal(正常) Suspicious(可疑) Pathology(病理)
基线 110-150 bpm 100-110 或 150-170 bpm < 100 或 > 170 bpm
变异性 5-25 bpm 变异性幅度 5-10 bpm 持续 > 40s 变异性 < 5 bpm 持续 > 40s
其他 变异性 > 25 bpm;变异减速 重度变异减速或重度反复早减速 延长减速;晚减速;正弦波

这张表说明:判读是一个"多把尺子同时量"的过程,而 UCI-CTG 的 21 个特征正是这几把尺子的数值化表达。使用者在建模时若能对照这张表做特征选择或构造,往往能提升可解释性与性能。

3.3 SisPorto 2.0 的验证成绩(论文一手数字)

数据集的"可信度地基"来自 SisPorto 本身的验证研究。论文报告:

评估项 结果 样本/条件
不良新生儿结局预测 敏感度 100% / 特异度 99% 预验证研究 n=85
FHR 基线估计 vs 3 位专家均值 差异 < 8 bpm(全部病例) 与三位专家均值对比
加速/减速/宫缩/变异性识别一致性 比例 0.64-0.89 与专家判读对比
累计测试规模 > 6000 例妊娠 含当前与历史版本

这些数字说明两点:其一,SisPorto 的特征抽取在"机器 vs 专家"层面达到了可接受的吻合度(0.64-0.89 属 fair-to-good);其二,尽管成绩亮眼,论文明确写道系统"仍处于研究阶段(still at the research level)“,且当时"正在接受国际多中心验证研究”。因此 UCI-CTG 的特征表既有软件工程的一致性优势,也继承了"软件判读毕竟不是金标准"的固有局限。

如何理解 100%/99% 的敏感度/特异度? 这个数字来自 n=85 的小样本预验证研究,样本量小、代表性有限,不宜直接外推到全部人群。论文本身也把它定位为"preliminary validity study"(初步验证)。使用者在引用时应标注样本量,避免把"小样本高分"误读成"软件已经过硬核临床验证"。

3.4 机构与人物

  • 方法/数据来源机构:波尔图大学医学院妇产科(Departamento de Ginecologia e Obstetrícia, Faculdade de Medicina, Universidade do Porto, Portugal)。论文作者记为 Ayres-de-Campos D, Bernardes J, Garrido A, Marques-de-Sá J, Pereira-Leite L;UCI 页面创建者字段简写为 D. Campos 与 J. Bernardes。
  • 软件分发:SisPorto 由该团队衍生公司 Omniview 商业化分发,是胎心监护自动化分析领域最知名的软件之一。最初的 SisPorto 研究可追溯到该团队更早的 FHR 分析工作。
  • 托管机构:加州大学欧文分校(University of California, Irvine)计算机科学系运营的 UCI Machine Learning Repository——全球最经典、被引用最多的机器学习数据仓库之一。它提供稳定 DOI、引文生成器与 ucimlrepo Python 接口。
  • 判读者:三位产科专家,独立判读后取共识标签。

3.5 时间线梳理

时间 事件
20 世纪 70 年代 电子胎心监护(EFM)普及,判读一致性问题凸显
2000-09 SisPorto 2.0 论文发表于 J Matern Fetal Med 9(5):311-318(方法学锚点)
2010-09-06 数据集捐赠入 UCI 机器学习仓库(dataset id=193)
2024 UCI 仓库界面改版,新路径 /dataset/193 与旧路径并存
至今 持续作为胎儿状态分类研究的常用基准,被统计学习、隐私保护等多方向引用

§4 标签体系与类别分布

4.1 双标签设计

UCI-CTG 的独到之处在于同一条记录带两套标签,对应两个不同粒度的分类问题:

标签 含义 取值 任务类型
CLASS FHR 形态学模式码 1-10(社区解读为 A/B/C/D/E/AD/DE/LD/FS/SUSP) 10 类分类
NSP 胎儿状态码 N(正常)/ S(可疑)/ P(病理) 3 类分类

为什么两套并存? 形态学模式描述的是"曲线长什么样"(例如加速型、减速型、正弦型等),是相对客观的图形学描述;胎儿状态是"据此判读胎儿好不好",是临床结论。前者粒度细、类间界限模糊,后者粒度粗、临床意义明确。数据集因此可以支撑两种研究:细粒度图形识别,或粗粒度临床判读——官方页明说"can be used either for 10-class or 3-class experiments"。

双标签的研究价值:两套标签同时存在,使研究者可以考察"形态学模式与胎儿状态之间的映射关系"——例如某些形态模式是否总是对应正常,某些是否高概率对应病理。这为可解释性研究提供了天然素材(见 §5.3)。

4.2 NSP 分布:严重不平衡

这是使用本数据集最先要面对的事实:

NSP 语义 例数 占比
N 正常(normal) 1655 77.8%
S 可疑(suspect) 295 13.9%
P 病理(pathologic) 176 8.3%
合计 — 2126 100%

(分布数字由 springermedizin 与 IJCSN 2016 两处独立文献互证一致,均给出 1655/295/176。springermedizin 另以"正常 78% / 疑似 14% / 病理 8%"的整数口径复述,与小数口径一致。)

含义:

  1. 基线准确率陷阱:一个把所有样本都判为 Normal 的"懒惰分类器"能拿到约 77.8% 的准确率。因此文献报"accuracy > 95%"时,必须同时看少数类(S、P)的召回率,否则数字可能虚高。
  2. S 与 P 的可分性是真正的难点。文献复现反复指出:Normal 容易识别,Suspect 与 Pathologic 之间界限模糊(IJCSN 2016 明确记录"传统聚类无法区分 Suspicious 与 Pathologic")。这既反映数据难度,也反映临床现实——可疑与病理本就是一个连续谱上的相邻区段。
  3. 建模对策:常见处理包括类别加权、SMOTE 等过采样、代价敏感学习、或改用 F1/宏平均/平衡准确率等指标。数据集本身不提供任何划分,一切重采样都由使用者自理。

4.3 不平衡的成因与伦理含义

为什么病理类这么少?这并非数据缺陷,而是临床现实:真正的胎儿病理状态在产科人群中本就是少数(如果人人都是病理,那才是异常)。这种"重症稀少"的分布特征,正是真实世界医疗数据的普遍形态——大多数患者正常,少数重症。因此 UCI-CTG 的不平衡不是需要"修复"的 bug,而是需要"正视"的真实。

从 AI-Ready 的角度,这种不平衡反而是教学与研究的价值所在:它训练模型开发者面对真实部署场景——临床辅助系统最怕的不是"多数类判错",而是"少数类漏诊"。一个对少数类(病理)召回率低的模型,在临床上可能导致严重后果。因此本数据集是研究"类别不平衡下的小众类召回"的绝佳样本。

4.4 十个形态学类别(CLASS)

CLASS 的官方定义仅是"FHR 形态学模式码 1 到 10",UCI 页面并未逐类列出字母名。社区分析(nathancohenil.github.io)给出的对应解读为:

码 社区解读名 语义线索
1 A 形态学模式 A
2 B 形态学模式 B
3 C 形态学模式 C
4 D 形态学模式 D
5 E 形态学模式 E(社区观察其多为可疑病例)
6 AD 加速-减速型
7 DE 减速型(社区观察其中含较多正常病例)
8 LD 晚减速型(社区观察多为病理)
9 FS 平坦/正弦型(社区观察多为病理)
10 SUSP 可疑型(社区观察绝大多数为可疑)

重要存照:上表字母名与语义线索来自社区分析(UCI 官方未逐类定义),仅作参考;官方权威定义只有"1 到 10"这一层。使用 10 类任务时应以数据中 CLASS 列的实际码值为准,并对字母名为"社区解读"这一事实保持谨慎。此外,社区发现 CLASS 与 NSP 之间并非一一映射——例如"SUSP"类几乎全为可疑、"LD/FS"多为病理、"E"多为可疑而"DE"混合——这正说明形态学模式与胎儿状态是相关但不等价的两个维度。

4.5 两种任务的对比与选择建议

对比项 3 类(NSP) 10 类(CLASS)
粒度 粗(临床结论) 细(图形描述)
文献主流度 绝大多数研究 少数
类间可分性 中等(S/P 混淆) 低(多类重叠)
标签语义清晰度 高(N/S/P 临床明确) 中(字母名系社区解读)
建议用途 临床判读算法、不平衡学习 图形模式识别、多分类探索

选择建议:若目标是"辅助临床判读",选 3 类 NSP;若目标是"研究 CTG 曲线的形态学描述",选 10 类 CLASS。学术论文为了与既往工作可比,通常选 3 类。

2.4 数据质量的实测特征(基于公开统计口径)

依据 PMC12110323(Kaggle 派生版)报告的特征描述性统计,可对 21 个特征的数值分布形成整体印象(下表为主要特征的最小/均值/最大,注意该来源使用 0/1/2 的 NSP 编码,见 §9 存照 2):

特征 均值 标准差 最小 最大
LB(基线 bpm) 133.30 9.84 106 160
AC(加速/秒) 0.0 0.019 — —
FM(胎动/秒) 0.0 0.481 — —
UC(宫缩/秒) 0.0 0.015 — —
ASTV(异常短程变异性 %) 46.9 17.19 12.0 87.0
MSTV(短程变异性均值) 1.33 0.88 0.2 7.0
ALTV(异常长程变异性 %) 9.84 18.39 0.0 91.0
MLTV(长程变异性均值) 8.18 5.62 0.0 50.7
Width(直方图宽度) 70.44 38.95 3.0 180.0
Min(直方图最小) 93.57 29.56 50.0 159.0
Max(直方图最大) 164.02 17.94 122.0 238.0
Nmax(峰值数) 4.06 2.94 0.0 18.0
Nzeros(零值数) 0.32 0.70 0.0 10.0
Mode(众数) 137.45 16.38 60.0 187.0
Mean(均值) 134.61 15.59 73.0 182.0
Median(中位数) 138.09 14.46 77.0 186.0
Variance(方差) 18.80 28.97 0.0 269.0
Tendency(趋势) 0.32 0.61 -1.0 1.0

从统计看出的几点:

  1. LB 基线范围 106-160 bpm,均值约 133 bpm——符合产科胎心基线的常见区间,说明数据整体落在临床合理范围内。
  2. AC/FM/UC 等事件计数的均值接近 0——因为它们是"次数/秒",本身数值很小;同时标准差也极小(AC 为 0.019),说明这些特征大多为 0,只有少数记录出现事件。这类高度稀疏、长尾的特征对模型是典型的挑战。
  3. ASTV 均值约 47%,跨度 12-87%——异常短程变异性占比变化很大,是重要的判别维度。
  4. Tendency 取值 -1/0/1——这是 21 个特征中唯一离散取值的特征,反映直方图趋势方向。
  5. Variance 跨度 0-269——离散度极大,说明不同记录的心率分布差异显著。

数据质量的正面信号:无缺失值、数值范围符合临床常识、无明显的越界异常——这与"经软件规范化处理"的定位一致。SisPorto 在抽取特征时已做了一轮清洗,因此使用者通常不需要再做缺失值填补。

2.5 数据的"信息密度"讨论

一个值得深思的问题:21 个数字能承载多少原始胎心曲线的信息? 从信息论角度,原始 CTG 是长时间的连续信号(可能数百上千个采样点 × 2 通道),而 UCI-CTG 把它压缩成 21 个标量。这种压缩必然有损,但损失的是什么?

保留的:整体心率水平、事件的大致频率、变异性的统计特征、心率分布的形态。

丢失的:事件的时间顺序与位置、减速的具体波形形状、信号的质量与噪声、基线的动态变化轨迹。

这解释了为什么 UCI-CTG 适合"整体判读"类任务(判断这条记录整体属于哪一类),而不适合"事件定位"类任务(找出某次减速发生的确切时刻)。使用者在立项前应明确自己的任务属于哪一类——这是避免"用错数据集"的第一道关卡。

2.6 与"原始 CTG"的概念对照

维度 原始 CTG 波形 UCI-CTG 特征表
形态 连续时序(FHR + UC 双通道) 2126 × 21 数值表
时间信息 完整保留 丢失(压成统计量)
文件大小 数十 MB 至 GB 级 330 KB
需要特征工程 需要 不需要(已完成)
适合任务 信号处理、事件检测、端到端学习 特征分类、不平衡学习、可解释性
代表数据集 ctu-uhb-ctg(库内 870) uci-ctg(本篇)

这张对照表概括了本条目与信号级 CTG 数据集的根本分野,也是 §7、§10 消歧内容的浓缩版。

2.7 数据集的"可教性"设计

从教学视角,UCI-CTG 的形态恰好覆盖了机器学习课程的多数量点:

  • 分类基础:干净的多特征分类问题,可讲逻辑回归、决策树、SVM、随机森林。
  • 类别不平衡:天然的 77.8%/13.9%/8.3% 分布,可讲重采样、代价敏感、评价指标。
  • 特征工程与选择:21 个特征可按临床意义分组,可讲相关性分析、特征重要性。
  • 可解释性:与 FIGO 判读规则对照,可讲模型的临床可解释性。
  • 序数回归:NSP 的次序性,可讲 ordinal 建模。

一个数据集能同时支撑这么多教学点,是它被广泛选作课程案例的深层原因。

§2.8 复现性与"数据血缘"说明

2.8.1 数据血缘链

UCI-CTG 的数据血缘可以清晰地追溯四步:

临床采集(波尔图大学附属医院,产前 CTG 监护)
    ↓ 原始 FHR/UC 波形
SisPorto 2.0 自动分析(21 特征抽取,FIGO 依据)
    ↓ 特征表(21 列)
三位产科专家独立判读 + 共识(CLASS + NSP 两标签)
    ↓ 特征 + 标签
UCI 仓库归档(去标识、开放 CC BY 4.0)
    ↓
使用者下载(CTG.xls)

血缘价值的两个启示:

  1. 每一步都可能引入偏差:采集环节的人群偏差、SisPorto 的算法偏差、专家判读的主观偏差、去标识的信息损失——使用者理解的偏差来源越多,用起来越审慎。
  2. 上游不可及:从第二层往后,原始波形就"断链"了。若研究者想质疑 SisPorto 的某个特征算错了,无法用它自己的数据来验证——这是本数据集结构性局限。

2.8.2 为什么它是"稳定"的基准

一个数据集能否长期当基准,稳定托管是关键。UCI-CTG 在这方面有优势:

  • 托管方稳定:UCI ML Repository 自 1987 年运营至今,是最古老的机器学习数据仓库之一,长期维护。
  • DOI 稳定:10.24432/C51S4N 提供永久标识,便于引用。
  • 无版本漂移:单一版本,不存在"v1/v2 数据不一致"问题。
  • 文件极小:330 KB,可轻松镜像、备份、离线保存。

这四点共同保证了"今天下载的"与"五年前下载的"是同一份数据——可比性的物理基础。相比之下,一些依赖特定网站、频繁更新的数据集,几年后可能连原链接都失效。

2.8.3 使用时的完整检查清单

在把 UCI-CTG 纳入任何项目之前,建议逐条确认:

  • [ ] 我的任务需要"特征"还是"原始信号"?(若后者 → 本数据集不适合)
  • [ ] 我需要 3 类还是 10 类标签?
  • [ ] 我确认了手中数据的标签编码(字母码/数字码)?
  • [ ] 我知道数据无患者 ID,不能做患者级去重?
  • [ ] 我的评价指标考虑了类别不平衡?
  • [ ] 我的实验报告披露了划分方式与随机种子?
  • [ ] 我已核对本条目 §10 的消歧,未把它与 ctu-uhb-ctg 混淆?
  • [ ] 我的引用包含了正确的署名(Campos & Bernardes, 2000 + DOI)?

八条全部通过,才说明你已经"正确地"用上了这个数据集。

§2.9 一个具体的特征相关性与判别力讨论

基于公开的社区分析(nathancohenil.github.io 的相关系数图)与 FIGO 判读体系,可以对特征的判别力做定性讨论:

高判别力候选(临床与统计双重支持):

  • ASTV / ALTV(异常变异性占比):FIGO 判读的核心维度之一;变异性异常与缺氧强相关。社区分析也指出它们是重要的相关特征。
  • DP(延长减速):社区分析明确提到 DP 与 ALTV 是与 NSP 相关性较高的特征之一。延长减速在临床上本就是警示信号。
  • LB(基线):基线水平直接对应正常/可疑/病理的边界划分(§3.2 表)。

中低判别力候选:

  • Mode / Mean / Median:这三个集中趋势度量高度相关(几乎共线),冗余度高,单独判别力有限。
  • Tendency:三值离散特征,信息量较小。
  • Nzeros:多为 0,稀疏,判别力弱。

高度相关的特征簇(可能冗余):

  • {Mode, Mean, Median}——集中趋势簇;
  • {Width, Min, Max, Variance}——离散度簇;
  • {ASTV, ALTV}——异常变异性簇;
  • {DL, DS, DP}——减速簇。

实践建议:建模前可考虑对每个相关簇做特征选择或降维(如 PCA),减少共线性对某些模型(线性模型、逻辑回归)的干扰。但对树模型(随机森林、梯度提升)而言,共线性影响较小,可以保留全部特征。

注意:以上判别力讨论基于定性分析与公开社区观察,非本条目独立实验得出的结论;具体到某一数据集划分,应以实测的特征重要性为准。

§5 任务定义与典型基准

5.1 任务空间

UCI-CTG 支持至少三类研究任务:

任务 标签 难度 常见评价指标
3 类胎儿状态分类 NSP 中等(受不平衡影响大) Accuracy、F1(宏/加权)、平衡准确率、AUC
10 类形态学模式分类 CLASS 高(细粒度、类间模糊) Accuracy、混淆矩阵、Cohen κ
特征重要性 / 可解释性研究 无标签或次要 — 相关系数、关联规则、结构方程模型

其中 3 类 NSP 分类是绝对主流,也是绝大多数论文选择的设定。数据集不预置训练/测试划分,也不提供任何基线脚本——所有划分与调参由使用者自定,这既是自由度也是不可比性的来源(同一数据集、不同划分、结果不可直接横向比较)。

5.2 文献常用成绩与陷阱

  • 主流成绩口径:多篇研究报告基于 UCI-CTG 的 3 类胎儿状态评估 accuracy 高于 95%(springermedizin 引述 [16-19] 的多项机器学习研究)。这个数字常被用作"该数据集已经很容易"的证据。
  • 必须警惕的两点:
    1. 不平衡导致的虚高:如前所述,全判 Normal 即有 77.8% 的基线。95% 的准确率若不伴随少数类召回率的报告,其信息量有限。
    2. 划分泄漏与调参过拟合:数据集规模小(2126 例),若在同一份数据上反复调参再报测试成绩,容易高估泛化能力。看到"99% 准确率"时应追问划分协议。
  • S/P 类可分性的反复复现:IJCSN 2016 的 WEKA 实验明确记录:ANN 对 Normal 与 Pathologic 的识别近乎同等准确,但对 Suspicious 的识别明显偏差;无监督聚类(k-means、Fuzzy C-mean)能分出 Normal,但无法区分 Suspicious 与 Pathologic。这提示:本数据集的核心困难不在"健康 vs 不健康",而在"可疑 vs 病理"的细边界。

5.3 常见方法与代表工作

围绕 UCI-CTG 已形成一套成熟的方法谱系:

  • 监督分类:人工神经网络(ANN)、支持向量机、随机森林、梯度提升等;集成方法(如 AdaBoost,Karabulut 等 2014)被报告优于单一分类器。
  • 无监督/半监督:k-means、Fuzzy C-mean 聚类——多数报告其对少数类(S/P)分离能力弱。
  • 超参优化:如 MDPI Electronics 2024 用自适应人工蜂群(ABC)算法为**正则化极限学习机(R-ELM)**做超参寻优,聚焦 3 类不平衡分类。该研究给出了一个有趣的规模参照:其搜索空间计算中,"UCI Cardiotocography 3-Class Dataset"的 MaxNeurals 取 1701(即约 80% 的样本数),说明 2126 例在传统机器学习里属于"中等规模、可做穷举式超参搜索"的量级。
  • 可解释性/因果研究:如 springermedizin 研究用 Spearman 相关 + 关联规则(前向逐步选择 ARA)+ 结构方程模型,探讨特征与胎儿状态的关联乃至潜在变量的因果关系,目的之一是"补充胎儿监护指南"。

方法论提示:由于数据集是特征表且规模小,本数据集更适合作为"算法快速验证台"与"不平衡学习教材",而不宜作为深度学习的规模支撑。想在它上面证明"新模型更强",需要格外严谨的划分协议与指标报告。

5.4 一个可复现的最小实验协议(建议)

为避免"不可比",建议使用者在报告结果时至少披露以下信息:

  1. 任务设定:3 类(NSP)还是 10 类(CLASS)。
  2. 标签编码:字母码还是 0/1/2 数字码(见 §9 存照 2)。
  3. 划分方式:分层抽样(stratified)还是随机;几折交叉验证或固定 hold-out;随机种子。
  4. 不平衡处理:是否过采样/欠采样/类别加权,具体策略。
  5. 评价指标:除 accuracy 外,是否报告少数类(S/P)的召回率、宏 F1、平衡准确率、混淆矩阵。
  6. 特征处理:是否标准化;是否做特征选择。

数据集给的是"半成品",完整的实验设计必须由使用者补齐——这也是它的实验自由度与不可比风险并存的根源。

§6 许可与获取

6.1 许可证:CC BY 4.0(最宽松档)

UCI 官方页面明确:本数据集采用 Creative Commons Attribution 4.0 International(CC BY 4.0)许可。这意味着:

  • ✅ 可以共享(任意媒介、任意格式复制与再分发)
  • ✅ 可以改编(重混、转换、基于其构建)
  • ✅ 可用于任何目的,包括商业用途
  • ⚠️ 唯一义务:给出适当署名(appropriate credit),提供许可链接,并标明是否做了修改。

署名建议格式(UCI 页面自带引文):Campos, D. & Bernardes, J. (2000). Cardiotocography [Dataset]. UCI Machine Learning Repository. https://doi.org/10.24432/C51S4N

为什么 CC BY 4.0 值得强调? 在医学数据集领域,限制性许可(研究专用、非商业、需申请)远比宽松许可常见。CC BY 4.0 属于"只要署名,随你怎么用"的最宽松档,这对商业应用(如医疗软件厂商想用公开数据做算法原型)意义重大。

与其他 CTG 数据集的许可对比:CC BY 4.0 是本库 CTG 母题下最宽松的许可之一。相比之下,库内 ctu-uhb-ctg(PhysioNet 捷克库)为"免费用于非商业用途"并须引用原始论文——不可商用;这正是两者"同母题、不同源、不同许可"的又一处关键差异(见 §10)。

数据集 许可 可否商用 是否需申请
uci-ctg(本篇) CC BY 4.0 ✅ 可 ❌ 否
ctu-uhb-ctg(库内 870) 免费非商业用途 ❌ 否 ❌ 否(须引用论文)

6.2 获取方式(三条路径)

路径 操作 适用场景
UCI 页直下 访问 archive.ics.uci.edu/dataset/193/cardiotocography,下载 cardiotocography.zip(330.9 KB,内含 CTG.xls) 手动取数、离线保存
Python API pip install ucimlrepo,然后 from ucimlrepo import fetch_ucirepo; c = fetch_ucirepo(id=193); X = c.data.features; y = c.data.targets 直接进入建模流水线
Kaggle 镜像 Kaggle 上广泛存在派生版(如 fetal_health.csv) 与 Kaggle Notebook 生态联动

注意事项:

  1. 无注册、无申请、无 gated:与请求制数据集不同,本数据集零门槛,任何人可即时获取——这正是它被高频复现的结构性原因。
  2. 版本链极简:UCI id=193 是唯一官方版本,无多版本演进。2024 年 UCI 仓库界面改版后,新旧路径(/dataset/193 与 ml/datasets/Cardiotocography)并存,指向同一份数据。
  3. 镜像即派生:Kaggle 版本是社区二次加工(常见改动:把 NSP 字母码重编为 0/1/2、增列派生特征),不属于官方口径,引用时宜以 UCI 原表为准。

6.3 数据文件内涵

官方下载包内为 CTG.xls,单工作表承载全部 2126 行 × 23 列。文件体积小(1.7 MB 页面标注 / 329-331 KB 压缩包),可直接用 Excel、pandas、R 读取。数据不含原始波形、不含患者标识、不含时间戳——是一张纯粹的特征-标签表。

与请求制数据集的对比:库内 panda-plus 等条目的注释掩码需向通讯作者邮件申请(请求制,有摩擦成本);本数据集则是"点开即下"的公开直链。两种获取模式的差异,直接决定了它们被复现的频率——本数据集因零摩擦而成为教学与入门实验的默认选择。

§5.5 使用演练:从下载到建模的完整路径(教学向)

本节给出一条可直接照做的"从零到一"路径,帮助首次使用者快速上手。

第一步:获取数据

# 方式 A:UCI 官方 API
# pip install ucimlrepo
from ucimlrepo import fetch_ucirepo
ctg = fetch_ucirepo(id=193)
X = ctg.data.features   # 21 列特征
y = ctg.data.targets    # CLASS 与 NSP 两列标签
print(ctg.metadata)
print(ctg.variables)
# 方式 B:直接读下载包内的 CTG.xls
import pandas as pd
df = pd.read_excel("CTG.xls", sheet_name="Data")
print(df.shape)          # 期望 (2126, 23)
print(df.isna().sum().sum())  # 期望 0(无缺失)

第二步:核对标签编码(关键一步)

# 确认 NSP 是字母码还是数字码
print(df["NSP"].unique())   # 可能是 ['N','S','P'] 或 [1,2,3] 或 [0,1,2]
print(df["CLASS"].unique()) # 应为 1..10

这一步对应坑点 4——不同来源的编码不同,不确认就建模等于盲人摸象。

第三步:处理类别不平衡

# 常见做法之一:分层划分 + 类别权重
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report, balanced_accuracy_score

# 假设 y 为 NSP,已映射为 0/1/2
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, stratify=y, random_state=42
)

clf = RandomForestClassifier(
    n_estimators=300,
    class_weight="balanced",   # 类别加权,缓解不平衡
    random_state=42,
)
clf.fit(X_train, y_train)
pred = clf.predict(X_test)

# 关键:报告宏平均与平衡准确率,而非仅 accuracy
print(classification_report(y_test, pred, digits=4))
print("balanced_accuracy:", balanced_accuracy_score(y_test, pred))

第四步:报告结果时的自查清单

  • [ ] 是否报告了混淆矩阵(看清 S/P 混淆程度)?
  • [ ] 是否报告了少数类(S/P)召回率?
  • [ ] 是否说明了标签编码(字母码/数字码)?
  • [ ] 是否说明了划分方式与随机种子?
  • [ ] 是否使用了分层抽样(stratify)?

第五步:与临床规则对照(可解释性)

把模型的特征重要性与 §3.2 的 FIGO 判读规则对照:若模型最看重的特征(如 ASTV、ALTV、DP、LB)恰好是临床指南强调的指标,则模型的"理由"具备临床合理性;若模型依赖某个人类无法解释的特征,则需警惕过拟合或伪相关。这一"机器 vs 指南"对照是 UCI-CTG 特别适合做的分析。

§5.6 常见评价指标的取舍

指标 何时用 对本数据集的注意点
Accuracy 类别均衡时 本数据集慎用——77.8% 基线会误导
Balanced Accuracy 类别不平衡时 推荐——对各类召回取平均
Macro-F1 关注少数类时 推荐——各类同等权重
Weighted-F1 关注整体时 会掩盖少数类表现,慎用
各类 Recall 临床安全敏感时 必须报告 P(病理)的召回
AUC(多类 OvR/OvO) 比较排序能力时 可用,但需说明多类聚合方式
Cohen κ 比较与专家一致性时 有趣——可看模型是否接近专家水平

核心建议:本数据集报结果时,至少同时给 accuracy + balanced accuracy + macro-F1 + 混淆矩阵。只给 accuracy 的报告,在这个数据集上几乎无信息量。

§3.6 深度补充:FIGO 判读体系与临床背景

3.6.1 为什么需要"标准化判读"

胎心监护在 1970 年代进入临床后,迅速普及为产科的常规检查,但也带来一个悖论:技术越普及,判读的混乱越凸显。同一条曲线,一位医生看到"变异性减小"判可疑,另一位医生看到"有加速"判正常,最终决策可能南辕北辙。这种混乱既有医疗风险(漏诊缺氧),也有过度医疗风险(不必要的剖宫产)。

为了统一判读,FIGO(国际妇产科联盟)等机构陆续发布判读指南,试图给"什么算正常、什么算可疑、什么算病理"划出明确边界。SisPorto 2.0 的设计哲学正是把 FIGO 的文字判读规范翻译成可执行的算法,从而让判读结果与阅图者无关。

3.6.2 FIGO 判读的几个核心维度

FIGO 判读体系围绕几个核心维度展开,它们与 UCI-CTG 的 21 个特征一一对应:

(1)基线(Baseline)→ 特征 LB
基线是胎心的"平均水位"。正常范围为 110-150(部分版本 110-160)bpm。基线过高(>170)或过低(<100)都提示胎儿可能处于应激状态。特征 LB 直接量化了这个水平。

(2)变异性(Variability)→ 特征 ASTV/MSTV/ALTV/MLTV
变异性是 FIGO 判读中最有信息量的维度之一。短程变异性(STV)反映逐拍波动,长程变异性(LTV)反映较长时间尺度的波动幅度。变异性减小(尤其持续低于 5 bpm 超过 40 秒)是胎儿抑制/缺氧的重要信号。UCI-CTG 用 4 个特征(异常短程变异性占比 ASTV、短程变异性均值 MSTV、异常长程变异性占比 ALTV、长程变异性均值 MLTV)刻画这一维度。

(3)加速(Acceleration)→ 特征 AC
加速是胎心短暂升高,通常是良性信号,提示胎儿反应良好。特征 AC 记录加速频率。

(4)减速(Deceleration)→ 特征 DL/DS/DP
减速是 FIGO 判读的重中之重。按形态与发生时机,减速可分为早减速(早于宫缩,通常良性)、晚减速(晚于宫缩,提示胎盘功能不全,是最凶险的模式)、变异减速(形状多变,多因脐带受压)。特征 DL(轻度)、DS(重度)、DP(延长)从严重程度而非类型上量化减速。

(5)宫缩(Contractions)→ 特征 UC
宫缩频率是判读减速的必要参照——脱离宫缩谈减速是没有意义的。特征 UC 量化宫缩频率。

3.6.3 从判读维度到 21 特征的映射

FIGO 判读维度 对应 UCI-CTG 特征 临床关注
基线 LB 心动过速/过缓
变异性 ASTV, MSTV, ALTV, MLTV 变异性减小(缺氧)
加速 AC 反应性(良性)
减速 DL, DS, DP 晚减速/变异减速(凶险)
宫缩 UC 宫缩频率(判读参照)
胎动 FM 胎儿活跃度
分布形态 Width, Min, Max, Nmax, Nzeros, Mode, Mean, Median, Variance, Tendency 整体分布特征

这张映射表说明了 UCI-CTG 的 21 个特征不是随意堆砌的,而是对临床判读维度的系统量化。理解了这一点,就能明白为什么某些特征(如 ASTV、ALTV、DP)在模型中往往判别力最强——因为它们直接对应临床上最关键的判读依据。

3.6.4 判读的"灰区"难题

FIGO 指南虽然划了边界,但临床现实充满"灰区":一条记录的某个维度落在正常范围,另一个维度落在可疑范围,综合判读该算什么?这正是可疑(Suspect)类存在的意义——它容纳了那些"不完全正常但也不确定是病理"的记录。UCI-CTG 中 Suspect 占 13.9%,恰恰反映了这个灰区的规模。

这也解释了为什么机器学习在 Suspect 类上表现最差:连人类专家都难以一致判读的记录,机器自然也难。这不是算法的失败,而是任务本身的固有难度。对使用者的启示是:与其追求在 Suspect 上刷高准确率,不如诚实地报告这一类的不可分性,并把研究重心放在"如何减少 P 类的漏诊"上。

3.6.5 从判读到数据集:为什么选 3 类

既然 FIGO 判读如此多维,为什么 UCI-CTG 选 3 类(NSP)作为主要标签,而不是更细的类别?答案是临床决策的需要:产科医生的实际决策是三分法——继续观察(N)、密切监测(S)、考虑干预(P)。这个三分法与临床行动直接挂钩,因此最有实用价值。而 10 类(CLASS)的形态学描述虽然更细,但与具体临床决策的对应关系较弱,因此较少被用作主要任务。

§7 在 CTG 数据生态中的位置

7.1 两大类 CTG 数据集

围绕胎心监护,公开数据集大致分成两支,理解这个分野是用好 UCI-CTG 的前提:

维度 特征级(feature-based) 信号级(signal-based)
代表 UCI-CTG(本篇) CTU-UHB(ctu-uhb-ctg)、UCI 的另一 FHR 集合等
内容 软件抽取的统计特征表 原始 FHR/UC 双通道时序
适合 分类器、不平衡学习、判读标准化 信号处理、波形分析、特征重算
优点 干净、即用、可复现 信息完整、可回溯
缺点 信息有损、无法回溯 需自行清洗与特征工程

两者互补而非替代:用信号级数据做特征工程,再用特征级数据做算法对照,是文献里常见的组合。切忌把两者的规模或许可混为一谈——例如 UCI-CTG 是 2126 例 CC BY 4.0,而 ctu-uhb-ctg 是 552 例非商业免费,把它们说成"同一个 CTG 数据集的不同版本"是彻底错误的。

7.2 为什么它能"长寿"

UCI-CTG 发布于 2010 年,数据集所依托的软件论文更早至 2000 年,却至今仍是胎儿状态分类研究的常用基准,原因可归纳为四点:

  1. 零获取成本:CC BY 4.0 + 即时下载,无任何准入门槛。
  2. 零清洗成本:无缺失值、格式规整,拿到即可建模。
  3. 标签可辩护:三位专家共识 + FIGO 依据,比单一标注或众包标注更经得起追问。
  4. 规模"刚好":2126 例不大不小——大到能训练常规模型并做出有意义的对照,小到能用普通电脑在几分钟内跑完实验。这种"教学-研究两相宜"的规模恰是它长盛不衰的隐性优势。

此外还有一个常被忽视的原因:它出现在 UCI 仓库这一"流量入口"。UCI ML Repository 是机器学习教学与研究的默认数据集集散地,许多研究者"先逛 UCI,再选数据集",UCI-CTG 因此获得了天然的曝光优势,被反复引用形成正反馈。

7.3 局限与适用边界

  • 规模与深度:2126 例对现代深度学习偏小,且为特征表,难以支撑端到端表征学习;应定位为"算法验证台"而非"深度学习训练场"。
  • 信息损失:波形被压缩成 21 个数字,丢失了形态细节与时间结构;想研究特定减速的时序模式,本数据集无能为力。
  • 元数据稀薄:无患者 ID、无采集年份、无临床中心信息,外部效度无法评估。
  • 标签语义边界:CLASS 的字母名系社区解读,官方仅给数字码;NSP 的字母码与社区数字码混用是常见错误来源。
  • 单一时相:以产前记录为主,不含产时连续监护的完整时间线(那是信号级数据集的领域)。

7.4 与库内其他条目的关系

库内条目 rid 与 uci-ctg 的关系
ctu-uhb-ctg 870 同 CTG 母题、不同源:捷克 PhysioNet 信号库;与本篇做消歧对照(§10)
focus-fetal 881 胎儿超声影像域;同属产科/胎儿医学大域,主题邻近
fetal-planes-db 538 胎儿超声标准切面分类;同属产科影像,可作"产科 AI 数据集生态"互链

如何构建主题簇:以"产科/胎儿医学 AI 数据集"为主题,本库内已可串联 uci-ctg(CTG 特征)、ctu-uhb-ctg(CTG 信号)、focus-fetal(胎儿超声)、fetal-planes-db(胎儿超声切面)等多个条目。这一主题簇的互链,能显著提升相关条目在检索中的可发现性。

§8 学术影响与生态

8.1 被引与复现

UCI 页面显示该数据集有 5 条论文引用记录(页面 “Papers Citing this Dataset” 面板),涵盖差分隐私机制设计(Chanyaswad 等 2018,arXiv/CCS)、多分部排序算法(Clémençon & Robbiano 2015)、k-means 可复现聚类划分(Lisboa 等 2013,BMC Bioinformatics)、序数标签排序(Clémençon 等 2012,Machine Learning)等——可见其影响力溢出了纯产科 AI,被统计学习、隐私保护等方向引用为"真实世界分类数据"的载体。页面另显示约 3.8 万次浏览,是 UCI 仓库中的高人气条目。

这 5 条引用的意义:它们说明 UCI-CTG 不只是一个产科数据集,更是一个被机器学习方法学界当作"通用测试床"的数据集。差分隐私研究引用它,是因为它提供了一个真实的、类别不平衡的、多特征的分类问题;排序算法研究引用它,是因为它的分类标签天然带有某种序(normal < suspect < pathologic)——这一点尤其值得注意:NSP 三类的语义并非纯名义类别,而是有轻重次序的,因此它也可以被当作**序数回归(ordinal regression)**问题来研究。

8.2 生态组件

  • 软件上游:SisPorto 2.0 / Omniview——特征抽取的来源软件,理解特征的钥匙。
  • 托管平台:UCI Machine Learning Repository——提供稳定的 DOI、引文生成器、ucimlrepo Python 接口。
  • 镜像生态:Kaggle 派生版本(fetal_health 等)——降低了新用户的进入摩擦,但也带来编码口径的混乱(§9)。
  • 教学生态:因规模适中、标签清晰,本数据集被广泛用于机器学习课程的分类/不平衡实验。

8.3 为什么它值得被收录

在千方病案医数集的"AI-Ready"光谱里,UCI-CTG 占据一个独特位置:它是**“特征就绪”**——不经原始数据加工即可直接建模,与本库中以原始信号或影像为主的 CTG/产科条目形成形态互补。它用极小的体量(330 KB)承载了二十余年的方法学积累与专家标注,是"小型高质量结构化临床数据"的典范样本,也是研究类别不平衡与可解释性的天然教材。

更重要的是,它示范了一种数据集设计哲学:用"少而精的成品"降低使用门槛。在原始数据动辄数十 GB 的今天,一张 330 KB 却标签可信、格式干净的表,反而因其"即插即用"而获得了跨越学科的生命力。

§9 存照与待核(双口径冲突逐条列明)

9.1 双口径存照

存照 1 · 特征计数(21 列 vs 23 列):UCI 页面 # Features = 21,但变量表与实际数据为 23 列——差值恰为两个标签列(CLASS、NSP)。口径冲突存档:官方"Features"计数不含标签列,而变量/数据表含。本条目统一表述为「21 特征 + 2 标签」。

存照 2 · NSP 编码(字母码 vs 数字码):UCI 官方变量表写 NSP: N=normal, S=suspect, P=pathologic(字母码);但 Kaggle 派生版及部分论文将其重编为 0/1/2(如 PMC12110323 使用 0=normal、1=suspect、2=pathologic)。两套编码并存,混用会导致标签语义错位,使用者必须先确认手中的列取值。

存照 3 · CLASS 语义(官方数字码 vs 社区字母名):UCI 官方仅定义 CLASS 为 “FHR pattern class code (1 to 10)”,未逐类列出字母名;A/B/C/D/E/AD/DE/LD/FS/SUSP 的对应关系来自社区分析(nathancohenil.github.io)。本条目采用「码值权威、字母名系社区解读」的双层表述。

存照 4 · 数据形态归属(产前 antepartum vs 产时 intrapartum):SisPorto 2.0 论文自述程序可分析 antepartum 与 intrapartum 两类记录,而 springermedizin 将该 UCI 数据集描述为 antepartum(产前,孕周 29-42 周)记录。注意:不要把它与 ctu-uhb-ctg 的**产时(intrapartum)**信号库混淆——两者采集时相不同。

存照 5 · 创建者署名(全名 vs 简写):UCI 页面创建者字段简写为 D. Campos、J. Bernardes;原始论文署名为 Ayres-de-Campos D 等五位作者(Ayres-de-Campos、Bernardes、Garrido、Marques-de-Sá、Pereira-Leite)。UCI 页面仅列前两位,且姓的写法(Campos vs Ayres-de-Campos)不完全一致——归属同一团队,非不同数据集。

存照 6 · 占比口径(小数 vs 整数):NSP 分布 1655/295/176 对应的占比,精确值为 77.8%/13.9%/8.3%,而 springermedizin 正文以整数"78%/14%/8%"复述。两者一致(四舍五入),但报告中若混用小数与整数口径需说明。

9.2 遗留疑点

  1. CLASS 10 类各计数:未在公开一手源找到完整的 10 类逐类计数表(仅有社区可视化线索),无法给出权威分布——遗留疑点。
  2. 采集年份与临床中心:UCI 页未标注数据的具体采集年份与临床中心,仅给出捐赠年份(2010)——外部效度无法从元数据评估,遗留疑点。
  3. 2126 行是否对应 2126 名独立产妇:数据表无患者 ID,无法确认是否存在同一产妇多次记录——遗留疑点。
  4. 文件体积口径:UCI 页面标注 CTG.xls 为 1.7 MB,而下载包 cardiotocography.zip 为 330.9 KB——两者是"解压后"与"压缩后"的关系,非冲突但易被误读。
  5. 特征定义精确定义:21 个特征的具体计算式(尤其 ASTV/MSTV/ALTV/MLTV 的阈值与窗宽)分散在 SisPorto 论文与 FIGO 指南中,UCI 页仅给一行文字说明——复刻特征需回溯原始论文,遗留疑点。

8.4 与同域医学分类数据集的横向对比

把 UCI-CTG 放在更广的"医学表格分类数据集"背景下比较,可以更清楚它的定位:

数据集 领域 规模 标签 不平衡性 形态 许可
UCI Cardiotocography(本篇) 产科胎心 2126 3 类(另 10 类) 高(8:1) 特征表 CC BY 4.0
UCI Heart Disease 心血管 ~920 二分类 中等 特征表 开放
Pima Diabetes 内分泌 768 二分类 中(35% 正) 特征表 开放
UCI Breast Cancer 肿瘤 569 二分类 中等 特征表 开放
Thyroid(UCI) 内分泌 ~7200 3 类 高 特征表 开放

观察:UCI-CTG 的规模在中上,不平衡程度在同类中偏高,且它罕见地同时提供两套粒度不同的标签(3 类 + 10 类)。这使它不仅是分类练习,也是"多粒度标签研究"的素材。相比 Pima/Breast Cancer 等纯二分类数据集,UCI-CTG 的临床语义更丰富(N/S/P 有轻重次序),研究空间更大。

8.5 被跨学科引用的原因

为什么一个产科数据集会被差分隐私、排序学习等领域引用?核心在于它满足了"通用测试床"的几个条件:

  1. 真实:来自真实临床数据,而非合成。
  2. 规整:数值特征、无缺失,任何算法都能直接吃。
  3. 不平衡:天然的长尾分布,正好测试算法在偏斜数据上的表现。
  4. 有序:N/S/P 的次序性,适合排序/序数学习研究。
  5. 免费开放:CC BY 4.0,无法律摩擦。

当这些条件同时满足,数据集就跨越了它的原始领域,成为方法学研究者的"公共试验田"。这是优质数据集的典型命运——始于一域,服务万方。

8.6 对数据集使用者的寄语

UCI-CTG 最容易被误用的方式,是把它当作"证明某个新算法优于旧算法"的竞技场。但在 2126 例、46% 特征高度稀疏、类别严重不平衡的小表上,"刷高准确率"的价值有限。它真正的价值在于:

  • 作为教学样本,让学习者完整走一遍不平衡分类的全流程;
  • 作为可解释性平台,让研究者把"机器学到什么"与"FIGO 指南要求看什么"做对照;
  • 作为跨域测试床,让方法学研究者验证算法在真实偏斜数据上的鲁棒性。

抱着这三个定位来用它,才能发挥这张 330 KB 小表的全部价值。

§14 相关医学与 CTG 分类数据集横向对比

14.1 与库内 CTG/胎儿条目的关系网

条目 rid 领域 数据形态 与本篇的互补性
uci-ctg(本篇) 待定 CTG 胎心 特征表(2126) —
ctu-uhb-ctg 870 CTG 胎心 原始波形(552) 信号级 ↔ 特征级互补;消歧对象
focus-fetal 881 胎儿超声 影像 同为胎儿医学大域
fetal-planes-db 538 胎儿超声 影像 同为胎儿医学大域

关系网的意义:这四个条目共同构成"胎儿医学 AI 数据集"的初步主题簇。检索者从任一入口进入,都能通过互链找到其他相关资源。尤其是 uci-ctg 与 ctu-uhb-ctg 的"特征级 vs 信号级"配对,是一个清晰的"互补数据集"教学案例。

14.2 三类产后/产时/产前 CTG 资源

按采集时相,CTG 相关资源可分为:

时相 说明 代表性资源
产前(antepartum) 妊娠期监护,评估胎儿宫内状态 UCI-CTG(本篇,孕周 29-42 周)
产时(intrapartum) 分娩过程中的连续监护 ctu-uhb-ctg(552 例产时信号)
两者兼有 软件支持两类 SisPorto 2.0(程序层面支持 ante/intrapartum)

为何要区分时相? 产前与产时的临床判读标准、信号特征、风险关注点都不同。产时监护关注的是"分娩过程中胎儿能否耐受宫缩",产前监护关注的是"胎儿整体宫内状态"。把两者混用做模型训练,会造成分布偏移。UCI-CTG 以产前记录为主,这一点在使用时应明确(见 §9 存照 4)。

§15 术语表(中英对照)

中文 英文 说明
胎心宫缩图 Cardiotocography (CTG) 同时记录胎心与宫缩的监护图
电子胎心监护 Electronic Fetal Monitoring (EFM) 用电子设备连续监护胎心与宫缩
胎儿心率 Fetal Heart Rate (FHR) 胎儿心跳频率
子宫收缩 Uterine Contraction (UC) 子宫肌肉收缩
基线 Baseline 胎心的平均水平
加速 Acceleration 胎心短暂升高
减速 Deceleration 胎心短暂下降
短程变异性 Short-Term Variability (STV) 逐拍心率波动
长程变异性 Long-Term Variability (LTV) 较长时间尺度的心率波动
直方图 Histogram FHR 数值的分布统计
形态学模式 Morphologic Pattern CTG 曲线的形状类别
胎儿状态 Fetal State 正常/可疑/病理的判读结论
国际妇产科联盟 FIGO 制定 CTG 判读指南的机构
共识标签 Consensus Label 多位专家一致同意的标签

§8.7 研究机会:这张小表还能挖什么

尽管被研究了二十余年,UCI-CTG 仍留有值得挖掘的空间:

(1)序数回归视角。NSP 的 N < S < P 是明确的序数关系,但绝大多数论文把它当无序分类。把序数回归(ordinal regression)或带序损失的建模方法引入,可能更贴合临床语义,也可能提升 S 类的判别——这是一个相对低竞争的方向。

(2)可解释性与"机器 vs 指南"对照。把模型学到的特征重要性与 FIGO 判读体系(§3.6.3)系统对照,考察"机器是否在看专家认为该看的地方"。若发现模型依赖临床上不重要的特征,可能是数据泄漏或伪相关的信号;若与指南高度一致,则是模型可信度的佐证。这类研究兼具方法学与临床价值。

(3)双标签的映射学习。CLASS(形态学)与 NSP(状态)之间的映射关系本身就是一个课题:某些形态模式是否稳定地对应某类状态?异常映射(如某形态模式混杂多种状态)是否反映了判读的困难区?这为理解 CTG 判读的内在结构提供了窗口。

(4)不平衡学习的鲁棒性测试。2126 例、8:1 的不平衡,是检验过采样/代价敏感/集成方法在"真实偏斜数据"上表现的现成试验田。尤其值得研究的是:不同方法对少数类(P,病理)召回率的影响——这是临床上最关心的指标。

(5)跨数据集迁移。把在 UCI-CTG(特征级,葡萄牙)上训练的模型,迁移/对照到 ctu-uhb-ctg(信号级,捷克)的特征抽取上,考察"不同来源的 CTG 特征空间是否可比"。这类跨域研究能揭示特征定义的软件依赖性问题(§3.1)。

(6)缺失元数据的补全尝试。数据集缺采集年份、临床中心、患者 ID,若能从上游 SisPorto 文献或波尔图团队的后续工作中找到线索,或许能补全部分血缘信息(§9.2 遗留疑点)。

8.7.1 研究时的伦理提醒

  • 不要把"高准确率"当作临床价值的充分证明。分类器在测试集上的高分,不等于临床可用——临床还要考虑漏诊代价、可解释性、工作流整合。
  • 报告少数类表现是伦理要求。医疗 AI 的失败往往发生在少数类(这里是病理性胎儿状态),掩盖少数类表现可能造成对模型能力的误判。
  • 去标识不等于无风险。虽然本数据集隐私风险低(聚合特征、无 ID),但在任何医学数据研究中,仍应遵循数据使用伦理规范。

§8.8 与"AI-Ready 数据集"评估框架的对话

千方病案医数集关注的"AI-Ready",可以理解为:数据集距离’可以直接用于训练/评测 AI 模型’有多近。用这个视角审视 UCI-CTG:

AI-Ready 要素 UCI-CTG 表现 评述
可直接加载 ✅ 极好 单表 XLS,pandas 一行读入
标签现成 ✅ 好 双标签,专家共识
干净无缺 ✅ 极好 零缺失值
规模足够 🟡 中 适合传统 ML,对 DL 偏小
划分标准 ❌ 缺 无预置划分,可比性依赖使用者自律
原始信息 ❌ 缺 无波形,不可回溯
许可宽松 ✅ 极好 CC BY 4.0,可商用
文档完备 🟡 中 特征有定义,元数据稀薄

结论:UCI-CTG 是一个"上手极快、天花板明确"的数据集。它在"可直接用"这一维度上几乎满分,但在"信息深度"与"元数据完备"两个维度上有明显短板。它最舒服的用法,是作为快速验证台与教学素材,而非"终极训练集"。

这也回应了一个更宏观的问题:AI-Ready 不等于"数据越大越原始越好"。有时,一张经过专业加工、干净可信的小表,其"就绪度"反而高于原始大数据——因为它省去了使用者最耗时、最容易出错的清洗与标注环节。UCI-CTG 正是这一论点的有力例证。

§10 消歧与建议互链点

10.1 【重点消歧】uci-ctg ≠ ctu-uhb-ctg

本库已收录 ctu-uhb-ctg(record_id 870,捷克 CTU + 布尔诺大学医院 PhysioNet 数据库)。它与本篇 uci-ctg 是两个完全独立的数据集,源码不同、规模不同、形态不同、许可不同,严禁合并或当作"同一数据集的不同版本"。

对照维度 uci-ctg(本篇) ctu-uhb-ctg(rid 870,已入库)
全称 Cardiotocography(UCI ML Repository id=193) CTU-CHB/CTU-UHB Intrapartum Cardiotocography Database
托管 UCI Machine Learning Repository PhysioNet(v1.0.0)
产地方 葡萄牙·波尔图大学(SisPorto 2.0) 捷克·CTU + 布尔诺大学医院(UHB)
规模 2126 例 552 例
数据形态 21 维特征表(结构化表格) 原始双通道 FHR/UC 波形(4 Hz 时序)
时相 产前(antepartum)为主 产时(intrapartum)
标签 CLASS 10 类 + NSP 3 类(专家共识) FIGO 金标准标注(未发布)+ 脐动脉血气/临床表型
时间线 论文 2000;捐赠 2010 采集 2010-2012;发布 2014
许可 CC BY 4.0(可商用) 免费非商业用途(须引用论文)

一句话记忆:ctu-uhb-ctg 是捷克的原始波形信号库(552 例,非商业),uci-ctg 是葡萄牙的特征表格分类库(2126 例,CC BY 4.0)。共同的只有"CTG 胎心宫缩图"这个母题,不可互换、不可合并。做信号处理找前者,做特征分类找后者。

为什么必须显式消歧? 两者名称都含 “CTG”,都以"胎心宫缩图"为母题,规模数字(2126 vs 552)与产地(葡萄牙 vs 捷克)容易被检索者混淆。若不显式说明,用户可能误以为它们是同一数据集的不同版本,或误用其中的许可条款(把可商用的 CC BY 4.0 错当成非商业免费,或反之)。因此本条目与 ctu-uhb-ctg 条目必须双向互链 + 互相标注消歧。

三条不可混淆的硬差异(速记):

  1. 规模:2126(UCI)≠ 552(CTU-UHB)。
  2. 形态:特征表(UCI)≠ 原始波形(CTU-UHB)。
  3. 许可:CC BY 4.0 可商用(UCI)≠ 非商业免费(CTU-UHB)。

10.2 建议互链点(纯 URL)

库内互链(相关条目):

外部来源(数据与论文):

§11 坑点清单(坑 N:)

坑 1:把"21 特征"当成"21 列"。 UCI 页面写 # Features=21,但实际表是 23 列——少的正是两个标签列(CLASS、NSP)。读数据时若按 21 列解析会直接丢标签。正确理解:21 个特征 + 2 个标签。

坑 2:把 uci-ctg 与 ctu-uhb-ctg 当同一数据集。 两者同母题不同源(见 §10)。一个 2126 例特征表(CC BY 4.0,葡萄牙),一个 552 例信号库(非商业,捷克)。规模、许可、形态无一相同,混用即错。

坑 3:只看 accuracy 就下结论。 NSP 中 Normal 占 77.8%,全判 Normal 即有 ~78% 的基线准确率。报"95% 准确率"时必须同时给出少数类(S、P)的召回率,否则数字可能被多数类"注水"。

坑 4:NSP 编码假设错误。 官方是字母码 N/S/P,Kaggle 派生版常重编为 0/1/2。若代码里按 0/1/2 处理却拿到字母码(或反之),标签语义会整体错位,模型"学得对"但"答错问题"。使用前务必打印唯一值确认。

坑 5:把 CLASS 的字母名当作官方定义。 UCI 官方只给 CLASS 为 1-10 的数字码,A/B/C/D/E/AD/DE/LD/FS/SUSP 的对应来自社区解读。做 10 类任务时应以数据实际码值为准,字母名仅作辅助理解。

坑 6:以为它含原始波形。 本数据集是特征表,波形已被 SisPorto 2.0 抽取为 21 个统计量并丢弃。想做信号级分析(如观察减速的时序形态、重算特征)必须改用信号级数据集(如 ctu-uhb-ctg),本数据集无法回溯。

坑 7:误判为"深度学习的规模支撑"。 2126 例特征表对端到端深度学习偏小,且无原始信号。它的合理定位是"算法快速验证台"与"不平衡/可解释性教材",不是大模型训练语料。

坑 8:忽视"软件判读"的上游偏差。 21 个特征由 SisPorto 2.0 按 2000 年版本的算法与阈值抽取,论文自述系统"仍在研究阶段"。特征定义携带软件版本相关偏差,跨软件/跨版本复现需核对原始论文。

坑 9:把 2126 例当成 2126 名患者。 数据无患者 ID,"例"是记录单位,同一产妇或有多次记录。做患者级统计或去重时须格外谨慎,不可默认一例一人。

坑 10:忽略 NSP 的序数性质。 N/S/P 并非纯名义类别,而是有轻重次序(正常 < 可疑 < 病理)。若当作无序多分类处理,会丢弃这一序信息;序数回归或带序损失的建模可能更贴合临床语义。

坑 11:把"论文 2000 / 捐赠 2010"两个时间搞混。 SisPorto 2.0 论文发表于 2000 年(方法学锚点),数据集捐赠入 UCI 是 2010 年。引用时若写"2000 年数据集"或"2010 年论文"都不准确。

§12 DAIMS 就绪度评估

DAIMS(Data and Analytics Interoperability Maturity Standards)视角下的就绪度自查:

维度 状态 说明
数据可得性(Availability) ✅ 高 CC BY 4.0 即时下载,无门槛;UCI 稳定托管 + DOI
格式规范性(Format) ✅ 高 单表 XLS,规整行列,无缺失值;pandas/R 直读
文档完备性(Documentation) 🟡 中 21 特征逐项有官方定义;但 CLASS 字母名、采集年份、患者去重信息缺失
标签质量(Label Quality) ✅ 高 三位产科专家共识 + FIGO 依据,可辩护性优于众包
可复现性(Reproducibility) 🟡 中 数据本身可复现;但无预置划分、无基线脚本,成绩不可直接横向比较
规模充分性(Scale) 🟡 中 2126 例适用于传统机器学习;对深度学习偏小
类别平衡(Balance) ❌ 低 NSP 77.8%/13.9%/8.3%,严重不平衡,需自行处理
原始信息保真(Fidelity) ❌ 低 仅特征表,无原始波形,信息有损且不可回溯
互操作性(Interoperability) 🟡 中 无标准医学术语编码(如 SNOMED/LOINC),但列名清晰、语义可读
许可清晰度(Licensing) ✅ 高 CC BY 4.0 明确,署名要求清晰

综合定位:“特征就绪(feature-ready)、分类友好、原始信息不可回溯”——最适合作算法验证与教学,不适合作信号级研究或大规模深度训练。

给使用者的匹配建议:

  • 若需求是"快速验证一个分类/不平衡学习算法"→ 高度适配,可立即使用。
  • 若需求是"研究胎心信号形态学/做信号处理"→ 不适配,请改用信号级数据集(如 ctu-uhb-ctg)。
  • 若需求是"训练大规模深度模型"→ 不适配,规模与形态均不满足。
  • 若需求是"医学 ML 教学演示"→ 高度适配,干净、小、标签可信。

§13 参考来源

  1. UCI Machine Learning Repository — Cardiotocography(id=193):https://archive.ics.uci.edu/dataset/193/cardiotocography
  2. 数据集 DOI:https://doi.org/10.24432/C51S4N
  3. Ayres-de-Campos D, et al. SisPorto 2.0: a program for automated analysis of cardiotocograms. J Matern Fetal Med. 2000;9(5):311-318. PMID:11132590:https://europepmc.org/article/MED/11132590
  4. 波尔图大学 sigarra 论文存档:https://sigarra.up.pt/cdup/en/pub_geral.pub_view?pi_pub_base_id=406948
  5. Investigating the interpretability of fetal status assessment using antepartum cardiotocographic records(NSP 分布与 FIGO 依据):https://www.springermedizin.de/investigating-the-interpretability-of-fetal-status-assessment-us/19969854
  6. Classification of Cardiotocography Data with WEKA(IJCSN 2016,2126/1655/295/176 复述):http://ijcsn.org/IJCSN-2016/5-2/Classification-of-Cardiotocography-Data-with-WEKA.pdf
  7. Early Detection of Fetal Health Conditions Using Machine Learning(PMC12110323,派生版编码口径):https://pmc.ncbi.nlm.nih.gov/articles/PMC12110323
  8. MDPI Electronics 2024(R-ELM/ABC 超参优化,3 类口径):https://www.mdpi.com/2079-9292/13/23/4652
  9. Cardiotocography under a microscope(社区 10 类标签名解读):https://nathancohenil.github.io/Cardiotocography

来源互证说明:核心硬数字(2126 例、21 特征、NSP 1655/295/176、CC BY 4.0、DOI 10.24432/C51S4N)均经 ≥2 条独立来源交叉核验;SisPorto 2.0 论文信息经 Europe PMC 与波尔图大学存档双源核验;社区解读类信息(CLASS 字母名)已标注"社区来源"性质。

§16 常见问题(FAQ)

Q:我是临床医生,这个数据集对我有什么用?
它可以帮你理解"自动化判读"的原理与局限。数据集里的 21 个特征,正是软件判读你日常看到的胎心曲线时所依据的量化指标。同时,它展示了专家共识判读的难度——即便三位专家,在可疑类上也难有完全一致,这提醒我们 CTG 判读本身的固有不确定性。

Q:我是数据科学初学者,适合拿它练手吗?
非常适合。它干净(无缺失)、规整(数值特征)、规模适中(2126 行)、标签可信,且自带典型的类别不平衡问题。做完一个完整的分类流水线(EDA → 划分 → 建模 → 评价),你会顺带掌握不平衡学习的核心技能。

Q:我想复现某篇论文的成绩,但数字对不上,怎么办?
先检查三件事:① 标签编码(NSP 是字母还是数字,CLASS 是否映射成 0-9);② 划分方式(是否分层、随机种子);③ 是否做了一致的预处理。数据集不给划分,不同论文的划分不同,成绩本就不可直接比较。

Q:它能用来做深度学习吗?
可以,但价值有限。2126 例的特征表对深度模型偏小,且没有原始信号可供端到端学习。更合理的做法是用它做传统机器学习的基准,或作为"小样本/不平衡"研究的载体。

Q:它有没有隐私问题?
数据集已去标识,无患者 ID、无姓名、无时间戳。它不包含任何可识别个人身份的信息,且以 CC BY 4.0 公开发布。从数据形态看,它是聚合后的特征,隐私风险很低。

Q:为什么叫 “Cardiotocography” 而不是别的名字?
“Cardiotocography” 即"胎心(cardio)宫缩(toco)图(graphy)",它的缩写 CTG 在临床与文献中被广泛使用。UCI 页面以数据集母题命名,简单直接,也因此容易被与同为 CTG 母题的其他数据集混淆(见 §10)。

Q:我能把 21 个特征里的某几个删掉吗?
可以,且常见。特征间存在相关性(如 Mode/Mean/Median 高度相关,Width/Variance 相关),做特征选择能减少冗余。建议结合临床意义(§3.6.3 映射表)与统计方法(相关性/重要性)共同决定。

Q:这两套标签(CLASS 和 NSP)我能同时用吗?
可以。你既能分别做两个独立任务,也能做"多任务学习"或研究两者之间的映射关系。后者(形态学模式 → 胎儿状态)是一个有临床意义的可解释性课题。

Q:数据集会不会有更好的新版本?
从当前信息看,UCI id=193 是稳定且唯一的官方版本,无更新的官方版本发布。Kaggle 派生版是社区加工,不是"新版本"。若担心时效性,可关注 UCI 仓库页面是否有更新。

Q:为什么数据集这么小还能成为基准?
因为"基准"的价值不在规模,而在可比性与可得性。2126 例足够训练常规模型,CC BY 4.0 + UCI 托管保证了人人可复现,二十余年的使用积累了大量对照结果。这三者叠加,使它成为这个方向事实上的公共比尺。

§17 结语:一张小表的二十年

UCI-CTG 的故事,是一个关于"减法"的故事。它没有原始波形,没有患者信息,没有预置划分——它的构造者主动做了一连串减法,把一条复杂的临床监护曲线,削成一张 330 KB 的 2126×21 表格。这些减法让数据集失去了很多信息,却也换来了三样极其珍贵的东西:干净、可复现、零门槛。

二十年过去,这张小表被不同领域的学者用作测试床:产科研究者用它探索胎儿状态分类,方法学研究者用它验证不平衡学习与排序算法,教学者用它演示从 EDA 到建模的完整流程。它证明了一个朴素的道理——数据集的影响力不取决于它有多大,而取决于它有多好用。

对千方病案医数集而言,收录 UCI-CTG 的意义正在于此:它与库内以原始信号、原始影像为主的条目形成互补,代表了"特征就绪"这一被长期低估的 AI-Ready 形态。它提醒我们:在"数据越大越好"的叙事之外,那些小、净、可信的成品数据,同样是医学 AI 生态中不可或缺的基础设施。

同时,本条目特别强调它与其同母题兄弟 ctu-uhb-ctg(库内 rid 870)的消歧——两者虽共享"CTG 胎心宫缩图"这一主题,却是葡萄牙特征表与捷克信号库两个完全不同的数据集。厘清这一分野,是本条目最重要的编辑责任之一。

§18 附:核心事实速记卡

项 值
官方名 Cardiotocography
slug uci-ctg
UCI id 193
DOI 10.24432/C51S4N
规模 2126 例 × 21 特征 + 2 标签
标签 CLASS(10 类)/ NSP(N/S/P,1655/295/176)
缺失值 无
产地方 葡萄牙·波尔图大学(SisPorto 2.0)
论文 J Matern Fetal Med 2000;9(5):311-318(PMID 11132590)
捐赠 2010-09-06
许可 CC BY 4.0(可商用,须署名)
获取 UCI 页 / ucimlrepo(id=193)
库内消歧 ≠ ctu-uhb-ctg(rid 870)
一句话 SisPorto 抽取的 2126 例 CTG 特征表,CC BY 4.0,不平衡分类的经典基准

§19 附录:字段-标签逐列速查

为便于使用者建表与核对,本节把整份数据集的 23 列逐列列出,标注类型与所属组:

序号 列名 类型 组别 角色
1 LB 整数 心率水平 特征
2 AC 连续 事件计数 特征
3 FM 连续 事件计数 特征
4 UC 连续 事件计数 特征
5 DL 连续 事件计数 特征
6 DS 连续 事件计数 特征
7 DP 连续 事件计数 特征
8 ASTV 整数 变异性 特征
9 MSTV 连续 变异性 特征
10 ALTV 整数 变异性 特征
11 MLTV 连续 变异性 特征
12 Width 连续 直方图 特征
13 Min 连续 直方图 特征
14 Max 连续 直方图 特征
15 Nmax 连续 直方图 特征
16 Nzeros 连续 直方图 特征
17 Mode 连续 直方图 特征
18 Mean 连续 直方图 特征
19 Median 连续 直方图 特征
20 Variance 连续 直方图 特征
21 Tendency 整数 直方图 特征
22 CLASS 整数(1-10) — 标签
23 NSP 字母/整数 — 标签

核对要点:第 1-21 列是特征,第 22-23 列是标签。若你的数据只有 21 列,说明标签列被误当作索引或已被剔除,需回原文件核对(对应坑 1)。

§20 附录:本条目写作规范说明

为便于同行审阅,说明本条目的资料来源与处理原则:

  1. 一手来源优先:核心事实(规模、特征、标签分布、许可、DOI)以 UCI 官方页面与 SisPorto 2.0 原始论文为一手来源;辅助来源(springermedizin、IJCSN、MDPI、PMC)用于交叉验证分布与背景。
  2. 三源互证:关键数字(2126、21、1655/295/176、CC BY 4.0)均经 ≥2 条独立来源确认;单一来源的信息已标注。
  3. 社区信息显式标注:CLASS 的字母名、部分特征判别力的讨论,来源为社区分析,已在正文与 §9 明确标注其非官方性质。
  4. 口径冲突存照:凡遇到不同来源口径不一致(如 21 vs 23 列、字母码 vs 数字码),一律在 §9 逐条存照,不擅自取舍。
  5. 消歧优先级:与其同母题的 ctu-uhb-ctg(库内 870)的消歧,是本条目的编辑重点,在 FACTS.md 与正文(§7、§10)双重标注。
  6. 不臆造:无一手来源支持的细节(如 CLASS 10 类各计数、采集年份)一律列为遗留疑点,不做推测性填充。

已知局限:本条目未对数据集做独立的实验验证(如重新跑分类基准),所有方法学讨论均基于公开文献与数据规格,非本条目自测结果。使用者若要引用性能数字,请回溯原始论文。

千方病案医数集 · AI-Ready Wikipedia
本条目为数据集百科条目,内容基于公开来源整理与交叉核验;硬数字均标注出处,冲突口径已在 §9 逐条存照。数据集许可为 CC BY 4.0,条目内所有来源链接仅作引证之用。
最后审阅:2026-10-08 | 编辑:千方病案医学编辑部


相关数据集导航

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

  • circor-digiscope — 共享标签:生理信号 / 图像分类 / 儿科
  • sicdb — 共享标签:生理信号 / 电子健康记录 / 时序数据
  • pic — 共享标签:电子健康记录 / 时序数据 / 儿科
  • chb-mit-scalp-eeg — 共享标签:生理信号 / 时序数据 / 儿科
  • ctu-uhb-ctg — 共享标签:生理信号 / 电子健康记录 / 时序数据
  • pics — 共享标签:生理信号 / 时序数据 / 儿科
  • mimic3wdb — 共享标签:生理信号 / 电子健康记录
  • mimic3wdb-matched — 共享标签:生理信号 / 电子健康记录
  • mimic4wdb — 共享标签:生理信号 / 电子健康记录
  • ptb-xl — 共享标签:生理信号 / 时序数据 / 图像分类

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

返回 AI-Ready 数据集