信息速览
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 表就能开始,标签又来自三位产科专家的共识,兼具可复现性与临床可信度。
导语读法三则:
- 只想下数据跑模型:直奔 §6——CC BY 4.0 无附加条款,
ucimlrepo一行fetch_ucirepo(id=193)即可拿到特征与标签。 - 关心它和别的 CTG 数据集什么关系:直奔 §7 与 §10——本篇(UCI 特征表)与库内
ctu-uhb-ctg(PhysioNet 信号库)不可互换、不可合并,消歧表在 §10。 - 做类别不平衡研究:直奔 §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 的构造逻辑,本质是三次"降压",把一条复杂的连续波形,逐步降压成机器可学的表格:
- 降压一:波形 → 特征。把连续 FHR/UC 曲线交给 SisPorto 2.0,按 FIGO/NIH 指南计算出 21 个诊断特征(心率基线、事件计数、变异性、直方图统计)。这一步消化了时序的复杂性。
- 降压二:主观 → 共识。把每条记录交给三位产科专家独立判读,取其共识作为标签。这一步降低了单人判读的噪声。
- 降压三:识别 → 匿名。移除原始波形与患者标识,只保留特征与标签,开放整张表。
三步降压的收益很明确——可复现:任何团队拿到的都是同一张表、同一套标签、同一个划分空间,模型之间可以横向对比。代价同样明确——不可回溯:原始波形被丢弃,想研究信号形态、想重算特征、想验证软件本身的误差,这张表都帮不上忙。
0.4 在 AI-Ready 光谱中的位置
因此 UCI-CTG 在"AI-Ready 数据集"光谱中的位置很清晰:它不是原始数据,而是经过专业软件预处理与专家标注的成品特征表——属于 “特征就绪(feature-ready)” 一档,而非"原始就绪(raw-ready)“。它的开放许可(CC BY 4.0)、零缺失、双标签设计,使它成为从教学到基准再到临床判读算法原型都适用的"通用水位线”。
对使用者的第一句话建议是:把它当"题库"而非"原始素材"。它擅长回答"某分类算法在胎心判读上能做到多好",不擅长回答"这条胎心曲线具体长什么样"。
§0 读法三则(续):
- 想弄清标签怎么来的,读 §4;想弄清特征怎么来的,读 §3。两者是理解本数据集的左右腿。
- 想避免踩坑,先读 §11 坑点清单——尤其是"21 特征 vs 23 列"“NSP 编码错位”"与 ctu-uhb-ctg 混用"三条。
- 想评估是否能直接用于自己的项目,读 §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、引文生成器与
ucimlrepoPython 接口。 - 判读者:三位产科专家,独立判读后取共识标签。
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%"的整数口径复述,与小数口径一致。)
含义:
- 基线准确率陷阱:一个把所有样本都判为 Normal 的"懒惰分类器"能拿到约 77.8% 的准确率。因此文献报"accuracy > 95%"时,必须同时看少数类(S、P)的召回率,否则数字可能虚高。
- S 与 P 的可分性是真正的难点。文献复现反复指出:Normal 容易识别,Suspect 与 Pathologic 之间界限模糊(IJCSN 2016 明确记录"传统聚类无法区分 Suspicious 与 Pathologic")。这既反映数据难度,也反映临床现实——可疑与病理本就是一个连续谱上的相邻区段。
- 建模对策:常见处理包括类别加权、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 |
从统计看出的几点:
- LB 基线范围 106-160 bpm,均值约 133 bpm——符合产科胎心基线的常见区间,说明数据整体落在临床合理范围内。
- AC/FM/UC 等事件计数的均值接近 0——因为它们是"次数/秒",本身数值很小;同时标准差也极小(AC 为 0.019),说明这些特征大多为 0,只有少数记录出现事件。这类高度稀疏、长尾的特征对模型是典型的挑战。
- ASTV 均值约 47%,跨度 12-87%——异常短程变异性占比变化很大,是重要的判别维度。
- Tendency 取值 -1/0/1——这是 21 个特征中唯一离散取值的特征,反映直方图趋势方向。
- 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)
血缘价值的两个启示:
- 每一步都可能引入偏差:采集环节的人群偏差、SisPorto 的算法偏差、专家判读的主观偏差、去标识的信息损失——使用者理解的偏差来源越多,用起来越审慎。
- 上游不可及:从第二层往后,原始波形就"断链"了。若研究者想质疑 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] 的多项机器学习研究)。这个数字常被用作"该数据集已经很容易"的证据。
- 必须警惕的两点:
- 不平衡导致的虚高:如前所述,全判 Normal 即有 77.8% 的基线。95% 的准确率若不伴随少数类召回率的报告,其信息量有限。
- 划分泄漏与调参过拟合:数据集规模小(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 一个可复现的最小实验协议(建议)
为避免"不可比",建议使用者在报告结果时至少披露以下信息:
- 任务设定:3 类(NSP)还是 10 类(CLASS)。
- 标签编码:字母码还是 0/1/2 数字码(见 §9 存照 2)。
- 划分方式:分层抽样(stratified)还是随机;几折交叉验证或固定 hold-out;随机种子。
- 不平衡处理:是否过采样/欠采样/类别加权,具体策略。
- 评价指标:除 accuracy 外,是否报告少数类(S/P)的召回率、宏 F1、平衡准确率、混淆矩阵。
- 特征处理:是否标准化;是否做特征选择。
数据集给的是"半成品",完整的实验设计必须由使用者补齐——这也是它的实验自由度与不可比风险并存的根源。
§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 生态联动 |
注意事项:
- 无注册、无申请、无 gated:与请求制数据集不同,本数据集零门槛,任何人可即时获取——这正是它被高频复现的结构性原因。
- 版本链极简:UCI id=193 是唯一官方版本,无多版本演进。2024 年 UCI 仓库界面改版后,新旧路径(
/dataset/193与ml/datasets/Cardiotocography)并存,指向同一份数据。 - 镜像即派生: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 年,却至今仍是胎儿状态分类研究的常用基准,原因可归纳为四点:
- 零获取成本:CC BY 4.0 + 即时下载,无任何准入门槛。
- 零清洗成本:无缺失值、格式规整,拿到即可建模。
- 标签可辩护:三位专家共识 + FIGO 依据,比单一标注或众包标注更经得起追问。
- 规模"刚好":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、引文生成器、
ucimlrepoPython 接口。 - 镜像生态: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 遗留疑点
- CLASS 10 类各计数:未在公开一手源找到完整的 10 类逐类计数表(仅有社区可视化线索),无法给出权威分布——遗留疑点。
- 采集年份与临床中心:UCI 页未标注数据的具体采集年份与临床中心,仅给出捐赠年份(2010)——外部效度无法从元数据评估,遗留疑点。
- 2126 行是否对应 2126 名独立产妇:数据表无患者 ID,无法确认是否存在同一产妇多次记录——遗留疑点。
- 文件体积口径:UCI 页面标注
CTG.xls为 1.7 MB,而下载包cardiotocography.zip为 330.9 KB——两者是"解压后"与"压缩后"的关系,非冲突但易被误读。 - 特征定义精确定义: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 被跨学科引用的原因
为什么一个产科数据集会被差分隐私、排序学习等领域引用?核心在于它满足了"通用测试床"的几个条件:
- 真实:来自真实临床数据,而非合成。
- 规整:数值特征、无缺失,任何算法都能直接吃。
- 不平衡:天然的长尾分布,正好测试算法在偏斜数据上的表现。
- 有序:N/S/P 的次序性,适合排序/序数学习研究。
- 免费开放: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 条目必须双向互链 + 互相标注消歧。
三条不可混淆的硬差异(速记):
- 规模:2126(UCI)≠ 552(CTU-UHB)。
- 形态:特征表(UCI)≠ 原始波形(CTU-UHB)。
- 许可:CC BY 4.0 可商用(UCI)≠ 非商业免费(CTU-UHB)。
10.2 建议互链点(纯 URL)
库内互链(相关条目):
- ctu-uhb-ctg:https://www.qianfanghub.com/ai-ready-dataset/ctu-uhb-ctg/0
互链理由:同 CTG 母题、不同源;正文已做显式消歧对照,两条目互链可帮助检索者区分"信号级 vs 特征级"。 - focus-fetal:https://www.qianfanghub.com/ai-ready-dataset/focus-fetal/0
互链理由:同属产科/胎儿医学大域,构成"胎儿 AI 数据集"主题簇。 - fetal-planes-db:https://www.qianfanghub.com/ai-ready-dataset/fetal-planes-db/0
互链理由:同属产科影像/胎儿评估,与本篇共同支撑"产科 AI 数据集生态"。
外部来源(数据与论文):
- UCI 官方数据集页:https://archive.ics.uci.edu/dataset/193/cardiotocography
- 数据集 DOI:https://doi.org/10.24432/C51S4N
- SisPorto 2.0 原始论文(Europe PMC):https://europepmc.org/article/MED/11132590
§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 参考来源
- UCI Machine Learning Repository — Cardiotocography(id=193):https://archive.ics.uci.edu/dataset/193/cardiotocography
- 数据集 DOI:https://doi.org/10.24432/C51S4N
- 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
- 波尔图大学 sigarra 论文存档:https://sigarra.up.pt/cdup/en/pub_geral.pub_view?pi_pub_base_id=406948
- 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
- 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
- Early Detection of Fetal Health Conditions Using Machine Learning(PMC12110323,派生版编码口径):https://pmc.ncbi.nlm.nih.gov/articles/PMC12110323
- MDPI Electronics 2024(R-ELM/ABC 超参优化,3 类口径):https://www.mdpi.com/2079-9292/13/23/4652
- 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 附录:本条目写作规范说明
为便于同行审阅,说明本条目的资料来源与处理原则:
- 一手来源优先:核心事实(规模、特征、标签分布、许可、DOI)以 UCI 官方页面与 SisPorto 2.0 原始论文为一手来源;辅助来源(springermedizin、IJCSN、MDPI、PMC)用于交叉验证分布与背景。
- 三源互证:关键数字(2126、21、1655/295/176、CC BY 4.0)均经 ≥2 条独立来源确认;单一来源的信息已标注。
- 社区信息显式标注:CLASS 的字母名、部分特征判别力的讨论,来源为社区分析,已在正文与 §9 明确标注其非官方性质。
- 口径冲突存照:凡遇到不同来源口径不一致(如 21 vs 23 列、字母码 vs 数字码),一律在 §9 逐条存照,不擅自取舍。
- 消歧优先级:与其同母题的 ctu-uhb-ctg(库内 870)的消歧,是本条目的编辑重点,在 FACTS.md 与正文(§7、§10)双重标注。
- 不臆造:无一手来源支持的细节(如 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 — 共享标签:生理信号 / 时序数据 / 图像分类
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

