7 个能直接下载的医疗 AI 数据集:从心电图到重症监护全免费 |千方医数集

一家做心电筛查的初创公司拿到三甲医院的合作意向,甲方要求两个月内出一版原型系统。技术团队发现,模型架构不是瓶颈------Transformer 还是 ResNet 也就一周的事------真正的卡点是数据:公开数据集要么只覆盖心电图一个模态,要么需要提交研究方案、等伦理审批,最快两周最慢三个月。

等审批意味着项目窗口期错过。但不等审批,从哪找能直接下载、质量可靠、足够支撑原型验证的医疗数据?

PhysioNet 是 MIT 维护的开放医疗数据平台,上面的数据集大部分只需要注册一个账号、完成一次在线培训(约 2-3 小时),就能直接下载。没有审批周期,没有等待时间。这意味着从立项到跑通第一个 pipeline,可以从"等三个月"压缩到"今天下班前"。

以下 7 个数据集按模态整理,覆盖心电图、脑电、睡眠、ICU、生理信号五大场景,每一个都标注了数据规模、技术规格、上手要点和代码示例。


总览:7 个数据集按模态分布

数据集 模态 规模 任务类型 下载门槛
MIMIC-IV ICU EHR 36.4 万患者·~7GB CSV 预测建模 注册+CITI培训
MIT-BIH Arrhythmia 心电图 48 条记录·~104MB 心律失常分类 注册即可
PTB-XL 12 导联心电图 2.18 万条 ECG·~3GB 多标签分类 注册即可
CHB-MIT Scalp EEG 脑电图 979 小时连续 EEG·~42.6GB 癫痫发作检测 注册即可
Sleep-EDF 多导睡眠图 197 夜 PSG·~8.1GB 睡眠分期 注册即可
BIDMC-PPG 光电容积脉搏波 53 例 ICU·~208MB 呼吸率估算 注册即可
MIMIC-IV-Waveform ICU 高频波形 198 名患者·~12.8GB 波形分析 注册+CITI培训

前 6 个覆盖了心电图、脑电、睡眠、ICU、生理信号五大模态,足够支撑一个完整的医疗 AI 入门项目。


1. MIMIC-IV --- PhysioNet 的镇馆之宝

MIT 计算生理学实验室维护,36.4 万名 ICU 患者的结构化电子健康记录,从 2008 年到 2022 年覆盖了 BIDMC 医院全部 ICU 收治。

数据组织(模块化)

复制代码
mimiciv/
├── hosp/          # 医院级数据
│   ├── patients        # 患者基本信息
│   ├── admissions     # 入院记录
│   ├── diagnoses_icd  # ICD 诊断
│   ├── prescriptions  # 处方
│   └── labevents      # 化验事件
├── icu/           # ICU 级数据
│   ├── icustays        # ICU 停留记录
│   ├── chartevents     # 生命体征
│   └── inputevents     # 输液/给药
├── ed/            # 急诊科数据
├── note/          # 临床自由文本
└── waveform/      # 高频波形(单独申请)

业务场景:做 ICU 住院时长预测、败血症早期预警、再入院风险评估------这些都是医院信息科最关心的方向。MIMIC-IV 提供了足够大的患者队列和完整的时序事件,可以直接用来验证"AI 能不能帮 ICU 提前 6 小时预判患者恶化"这类业务命题。

快速上手 SQL

sql 复制代码
-- 查询败血症患者的 ICU 停留时长
WITH sepsis_pts AS (
    SELECT hadm_id
    FROM mimiciv_hosp.diagnoses_icd
    WHERE icd_code LIKE 'A41%'
    GROUP BY hadm_id
)
SELECT 
    ie.subject_id, ie.stay_id,
    DATETIME_DIFF(ie.outtime, ie.intime, 'HOUR') AS los_hours
FROM mimiciv_icu.icustays ie
JOIN sepsis_pts sp ON ie.hadm_id = sp.hadm_id
ORDER BY los_hours DESC;

下载方式:PhysioNet 官网注册账号 → 完成 CITI 培训认证(约 2-3 小时)→ 获得 PhysioNet 凭证 → 直接下载 CSV 文件。CITI 培训一次通过后,以后申请其他 PhysioNet 数据集通用。


2. MIT-BIH Arrhythmia --- 心律失常检测的"MNIST"

48 条 30 分钟双通道 Holter 记录,11 万次心拍标注,波士顿儿童医院和 MIT 联合发布。规模虽小(仅 104MB),但它是心律失常自动检测领域的标准基准------几乎所有心电图 AI 论文都会跑这个数据集做 baseline。

技术规格

  • 采样率:360 Hz
  • 分辨率:11-bit
  • 导联:双通道(MLII 和 V5)
  • 标注:MIT-BIH 心律失常实验室的心脏病专家逐拍标注

业务场景:做可穿戴心电贴片的实时心律失常筛查,需要快速验证算法可行性。MIT-BIH 规模小、标注全、社区代码多,是最快的"跑通 pipeline"路径。从原型到论文发表都能复用同一套数据。

数据加载与可视化

python 复制代码
import wfdb
import matplotlib.pyplot as plt

# 读取 MIT-BIH 记录(以 100 号记录为例)
record = wfdb.rdrecord('100', pn_dir='mitdb')
annotation = wfdb.rdann('100', 'atr', pn_dir='mitdb')

print(f"信号 shape: {record.p_signal.shape}")  # (650000, 2)
print(f"采样率: {record.fs} Hz")
print(f"导联名: {record.sig_name}")

# 可视化前 10 秒
fig, ax = plt.subplots(figsize=(14, 4))
ax.plot(record.p_signal[:3600, 0])  # MLII 导联
ax.set_title('MIT-BIH Record 100 - MLII Lead (First 10s)')
ax.set_xlabel('Samples (360 Hz)')
ax.set_ylabel('Amplitude (mV)')
plt.tight_layout()
plt.savefig('mitbih_100.png', dpi=150)

下载方式 :PhysioNet 注册账号后直接下载,无需培训认证。wfdb 库内置 pn_dir 参数,可直接从 PhysioNet 在线读取。


3. PTB-XL --- 大规模 12 导联心电图基准

2.18 万条 12 导联心电图,德国联邦物理技术研究院(PTB)和 Fraunhofer HHI 联合发布。SCP-ECG 标准标注,5 大类 44 小类诊断标签。

和 MIT-BIH 的区别:MIT-BIH 是双通道 Holter,PTB-XL 是标准 12 导联临床心电图------后者更接近真实临床场景,且数据量大了两个数量级。做心电图多标签分类,PTB-XL 是当前主流基准。

业务场景:做院内心电图智能诊断辅助系统(CDSS),需要和医院心电图机输出的标准 12 导联格式对齐。PTB-XL 用 SCP-ECG 标准标注,直接对接临床工作流。2.18 万条的规模足够训练一个可商用的初版模型。

技术规格

  • 采样率:500 Hz / 100 Hz 两档
  • 导联:标准 12 导联
  • 标注:SCP-ECG 标准的 44 种诊断标签
  • 格式:WFDB 兼容

多标签分类训练

python 复制代码
import wfdb
import pandas as pd
import torch
import torch.nn as nn
from torch.utils.data import Dataset, DataLoader

class PTBXLDataset(Dataset):
    def __init__(self, csv_path, data_dir, sampling_rate=100):
        self.df = pd.read_csv(csv_path)
        self.data_dir = data_dir
        self.sampling_rate = sampling_rate
        # 5 大类诊断标签
        self.labels = ['NORM', 'MI', 'STTC', 'CD', 'HYP']
    
    def __len__(self):
        return len(self.df)
    
    def __getitem__(self, idx):
        row = self.df.iloc[idx]
        # 读取 12 导联 ECG 信号
        record = wfdb.rdrecord(f"{self.data_dir}/{row.filename_lr}")
        signal = torch.tensor(record.p_signal, dtype=torch.float32)  # (1000, 12)
        # 多标签编码
        label = torch.tensor(
            [1 if l in row.scp_codes else 0 for l in self.labels],
            dtype=torch.float32
        )
        return signal, label

# 简单的 1D CNN 分类器
class ECGClassifier(nn.Module):
    def __init__(self, in_channels=12, num_classes=5):
        super().__init__()
        self.features = nn.Sequential(
            nn.Conv1d(in_channels, 32, kernel_size=7, stride=2, padding=3),
            nn.BatchNorm1d(32), nn.ReLU(), nn.MaxPool1d(2),
            nn.Conv1d(32, 64, kernel_size=5, stride=2, padding=2),
            nn.BatchNorm1d(64), nn.ReLU(), nn.MaxPool1d(2),
            nn.Conv1d(64, 128, kernel_size=3, stride=1, padding=1),
            nn.BatchNorm1d(128), nn.ReLU(), nn.AdaptiveAvgPool1d(1)
        )
        self.classifier = nn.Sequential(
            nn.Linear(128, 64), nn.ReLU(), nn.Dropout(0.3),
            nn.Linear(64, num_classes), nn.Sigmoid()
        )
    
    def forward(self, x):
        # x: (batch, 12, 1000) → Conv1d 需要 (batch, channels, length)
        x = x.permute(0, 2, 1)
        x = self.features(x).squeeze(-1)
        return self.classifier(x)

下载方式:PhysioNet 注册账号后直接下载,无需培训认证。


4. CHB-MIT Scalp EEG --- 儿童癫痫脑电波形

23 名患儿,979 小时连续 EEG,198 次癫痫发作,42.6GB。波士顿儿童医院和 MIT 联合发布。

业务场景:做癫痫预警可穿戴设备或 ICU 癫痫监测系统,需要足够长的连续基线数据和明确的发作事件标注。CHB-MIT 的 979 小时连续记录恰好满足这个需求------既能训练"检测发作"的模型,也能统计"误报率"(基线时长够长才有意义)。

常见坑:数据量大(42.6GB),单次下载耗时较长。建议先下载单个受试者数据试跑:

python 复制代码
import wfdb
import numpy as np

# 读取 chb01 的第一段记录
record = wfdb.rdrecord('chb01_03', pn_dir='chbmit')
signal = record.p_signal  # (921600, 23) --- 23 导联
print(f"信号 shape: {signal.shape}")
print(f"采样率: {record.fs} Hz")
print(f"时长: {signal.shape[0] / record.fs / 3600:.1f} 小时")

# 读取发作标注
ann = wfdb.rdann('chb01_03', 'seizures', pn_dir='chbmit')
print(f"标注样本位置: {ann.sample}")

下载方式:PhysioNet 注册账号后直接下载,无需培训认证。


5. Sleep-EDF --- 睡眠分期基准

197 夜多导睡眠图(PSG)记录,8.1GB,ODC-By 开放许可。PhysioNet 和荷兰 MCH-Westeinde 医院 Bob Kemp 联合发布。

技术规格

  • 信号:EEG(Fpz-Oz 和 Pz-Oz)、EOG、颏 EMG、体温
  • 采样率:100 Hz
  • 标注:30 秒为一个 epoch,W/REM/N1/N2/N3 五分类
  • 许可:ODC-By(标注来源即可使用)

业务场景:做消费级睡眠监测设备(智能戒指/睡眠贴片),需要将设备采集的 EEG 信号自动分期。Sleep-EDF 的 30 秒 epoch 标注和五分类体系,是整个睡眠 AI 领域的通用标准。用它训练的模型可以直接和学术界的基线对比。

python 复制代码
import mne
import numpy as np
from sklearn.ensemble import GradientBoostingClassifier

# 读取 Sleep-EDF 数据
raw = mne.io.read_raw_edf('SC4001E0-PSG.edf', preload=True)
eeg = raw.get_data(picks=['EEG Fpz-Oz'])  # (1, n_samples)
print(f"EEG 信号 shape: {eeg.shape}")

# 读取分期标注
ann = mne.read_annotations('SC4001EC-Hypnogram.edf')
labels = ann.description  # ['W', 'N1', 'N2', 'N3', 'REM', ...]

# 将信号切分为 30 秒 epoch
epoch_len = 30 * 100  # 30s × 100Hz = 3000 samples
n_epochs = eeg.shape[1] // epoch_len
features = []
for i in range(n_epochs):
    epoch = eeg[0, i*epoch_len:(i+1)*epoch_len]
    # 提取频域特征
    fft = np.abs(np.fft.rfft(epoch))
    features.append(fft[:50])  # 取前 50 个频域点
X = np.array(features)
print(f"特征 shape: {X.shape}")

下载方式:PhysioNet 注册账号后直接下载,ODC-By 许可。


6. BIDMC-PPG --- 光电容积脉搏波呼吸率基准

53 例 ICU 患者,125 Hz 采样率,208MB。牛津大学和 BIDMC 联合发布。双标注者逐拍呼吸标注。

业务场景:做可穿戴健康监测(智能手表/手环),PPG 信号是最容易获取的生理信号------不需要电极贴片,一个绿光 LED 就行。BIDMC-PPG 提供了从 PPG 估算呼吸率的标注数据,适合验证"手表能不能测呼吸率"这类产品级命题。数据量仅 208MB,半天跑通完整 pipeline。

python 复制代码
import wfdb
import numpy as np

# 读取 BIDMC-PPG 数据
record = wfdb.rdrecord('bidmc_01', pn_dir='bidmc')
ppg = record.p_signal[:, record.sig_name.index('PLETH')]
print(f"PPG 信号 shape: {ppg.shape}")
print(f"采样率: {record.fs} Hz")

# 呼吸率标注
resp_ann = wfdb.rdann('bidmc_01', 'resp', pn_dir='bidmc')
print(f"呼吸标注数: {len(resp_ann.sample)}")

下载方式:PhysioNet 注册账号后直接下载,文件仅 208MB。


7. MIMIC-IV-Waveform --- ICU 高频生理波形

198 名 ICU 患者的高频波形数据,12.8GB,WFDB 标准格式。MIMIC-IV 的波形子库。

业务场景:做 ICU 实时监护预警系统,需要高频波形信号(每秒数百个采样点)来做即时异常检测。MIMIC-IV 临床数据库是结构化表格(每分钟一条),而 Waveform 提供秒级甚至毫秒级精度。两者可以通过 subject_id 关联,做"表格+波形"的多模态融合------这正是 ICU 预警系统从"事后分析"走向"实时预警"的关键。

下载方式:PhysioNet 注册账号 + CITI 培训认证后直接下载。


按业务方向选数据集

业务方向 推荐数据集 理由
ICU 住院时长/败血症预警 MIMIC-IV 36 万患者队列,事件时序完整
可穿戴心电筛查 MIT-BIH + PTB-XL 经典基准 + 12 导联临床基准
癫痫监测设备 CHB-MIT 979 小时连续 EEG,发作事件充足
睡眠监测产品 Sleep-EDF 五分类标注、开放许可、数据量适中
智能手表呼吸率 BIDMC-PPG 轻量级、PPG 信号易获取
ICU 实时预警 MIMIC-IV + Waveform 表格+波形多模态融合

技术总结

PhysioNet 的优势在于"低门槛 + 高质量":

  1. 统一入口:一个账号 + 一次 CITI 培训,解锁全部数据集。不需要分别向不同机构提交申请。
  2. 数据格式统一 :心电图、脑电、睡眠图全部使用 WFDB 格式,wfdb 库一套 API 通吃。
  3. 代码生态成熟 :MIMIC 有官方 SQL 教程,wfdb 有 Python 官方库,社区有大量示例代码。

对于从"看到业务机会"到"跑通原型验证"这段最关键的窗口期,PhysioNet 能把数据准备周期从三个月压缩到一天。

扩展阅读

  • GitHub 项目top100-medical-datasets --- 全球 Top100 AI-Ready 医疗数据集索引,按 8 大主题分类
  • 数据集目录AI-Ready 医疗数据集目录 --- 每个数据集附双语百科式详情页,含字段说明、基线模型、license 信息和下载入口

更多医疗疾病类数据集,也可以到千方医数集。