信息速览
INFOBOX — Chronic Kidney Disease (UCI) 一屏速览
维度 内容 本质 400 例肾内科患者的 24 项临床检验/体格检查指标 + 1 个二分类标签(ckd/notckd)的表格数据集 出处 UCI Machine Learning Repository ID 336;DOI 10.24432/C5G020;license CC BY 4.0 捐赠 L. Rubini、P. Soundarapandian、P. Eswaran,2015-07-02 捐赠;2024-03-04 元数据更新 医院 Apollo Hospitals(印度泰米尔纳德邦);城市三源三口径(Managiri/Manamadurai/Karaikudi,见坑 6) 规模 401 行×25 列 CSV(45,092 字节);24 特征+class;五组特征体系(人口学/尿液/血生化/血液学/合并症) 标签 ckd 250 / notckd 150(归一口径 62.5%/37.5%,中度不平衡);原样含 2 例 ckd\t脏标签缺失 1012/10000 格 = 10.12%;24 列全有缺失;零缺失完整行仅 158(39.5%);重复行 0 极端值 bgr 22 mg/dl、sc 76 mg/dl、pot 47 mEq/L 等(疑小数点错位,官方未注,见坑 7) 基准 无官方伴生论文、无官方榜单;社区基准 Qin 2019 RF 99.75%/集成 99.83%(被引 379+)、Chittora 2021 DNN 99.6%、ANFIS-PSO 2026 单分割 100% vs 5 折 CV 87.00% 数据学真相 150 例 notckd 在 al/su/htn/dm/cad/appet/pe/ane 等 9 列上取值完全规则——任务近乎规则可分,是 99%+ 论文扎堆的根源(§5.4) 获取 官方页/API/ data.csv三通道全通(§6);旧版 .arff 路径全 404,官方 zip 内是 .rar(坑 5)教学定位 与 Iris、Heart Disease、Pima 同级的教科书级小数据;"缺失值+不平衡+特征工程"三合一教学样本 库内互链 parkinsons-voice-uci (444)、drug-reviews-uci (485)、mimic-iv-clinical-database (4)、mimic-iii (106)、stroke-scale-mimic-iii (596)
Chronic Kidney Disease 是一个"被引用了数千次、却连一份官方论文都没有"的传奇小数据集:印度泰米尔纳德邦 Apollo Hospitals 的 400 名肾内科患者,24 项常规检验指标,加一个"是/否慢性肾病"的诊断标签,2015 年 7 月捐赠给 UCI 机器学习仓库。它体积不到 45 KB,却在谷歌学术上支撑了至少一篇被引 379+ 的 IEEE Access 论文,衍生文献总量以千计。它同时是机器学习教学里最锋利的反面教材之一——10.12% 的缺失率、只剩 39.5% 的完整行、2 例带着隐藏制表符的脏标签、几个疑似小数点错位的极端值,以及"随便跑个模型就 99%"的基准通胀奇观,全都在这 400 行数据里。
导语读法五则:
- 只想下数据:直奔 §6 获取与许可——认准
data.csv一条路,教程里的旧版 .arff 链接全是死路(坑 5)。 - 想跑出"像论文里那样"的高准确率:先读 §5.4 的 notckd 判别模式分析再动手——你会明白 99% 从哪里来、又为什么不可信。
- 做缺失值/不平衡方法研究:直奔 §3 与 §4——10.12% 的非随机缺失加 62.5%/37.5% 的类分布,是天然的方法学试验田。
- 不确定从哪开始:直奔 §9 使用指南——教学者、方法研究者、临床信息学入门者、数据工程师四类读者各有现成的行动清单。
- 要引用或再分发:直奔 §6.4 引用格式与附录 O 数据卡模板——CC BY 4.0 的义务只有署名,但署名要署对。
§0 导读:这个数据集解决什么问题
慢性肾病(Chronic Kidney Disease, CKD)是全球性的公共卫生负担:起病隐匿、早期几无症状、一旦进入终末期即需透析或移植。临床识别 CKD 靠的不是单一金指标,而是一组常规检查的组合信号——尿常规里的蛋白尿与血尿、血生化里的肌酐与尿素、血常规里的血红蛋白与红细胞压积,再加上高血压、糖尿病等合并症史。这套"多指标组合判别"恰好是机器学习二分类的原型场景:特征都是表格里的数值或等级,标签是临床医生给出的二值结论,任务清晰、指标可算、结果可解释。
Chronic Kidney Disease 数据集(下文简称 CKD-UCI)把上述场景压缩进了一张 400 行的表格。它是 UCI Machine Learning Repository 中与 Iris、Heart Disease、Pima Indians Diabetes 并列的"教科书级"医疗小数据:每个学过机器学习的人几乎都见过它,每个讲"缺失值处理"或"分类不平衡"的教程都爱用它。2015 年 7 月 2 日由 L. Rubini、P. Soundarapandian、P. Eswaran 三人捐赠,采集医院为 Apollo Hospitals(印度泰米尔纳德邦),官方摘要称采集期约两个月。数据本体是 25 列 CSV:24 个特征列横跨人口学(age、bp)、尿液检查(sg、al、su、rbc、pc、pcc、ba)、血生化(bgr、bu、sc、sod、pot)、血液学(hemo、pcv、wbcc、rbcc)、合并症与症状(htn、dm、cad、appet、pe、ane)五组,第 25 列 class 是二分类标签。
但 CKD-UCI 的真正价值,一半在数据本身,一半在它无意间成为的"方法学显微镜"。
第一重显微镜照向缺失数据。400 例 × 24 特征 = 9600 个特征格,加上 400 个标签格共 10000 格,其中 1012 格缺失(10.12%)。缺失不是均匀的:尿液镜检的红细胞(rbc,38.0% 缺失)、红细胞计数(rbcc,32.75%)、白细胞计数(wbcc,26.5%)缺得最狠,而食欲(appet)、足部水肿(pe)、贫血(ane)只缺 1 格。这意味着"删除含缺失行"的朴素策略会把样本砍到只剩 158 例(39.5%)——六成信息灰飞烟灭;而"均值插补"则会把 38% 缺失的 rbc 列插成一个常数柱。CKD-UCI 因此成为缺失机制讨论(MCAR/MAR/MNAR)与插补方法评测(KNN 插补、MICE、迭代插补)的天然演武场。
第二重显微镜照向基准通胀。这个数据集没有官方伴生论文、没有官方训练/测试划分、没有榜单——但社区基准论文数量惊人:随机森林 99.75%(Qin et al. 2019,IEEE Access,被引 379+)、DNN 99.6%(Chittora et al. 2021)、单次分割 100%(Sossi et al. 2019 XGBoost、ANFIS-PSO 2026)……而 ANFIS-PSO 2026 同一模型在 5 折交叉验证下只有 87.00%±3.59%——单分割与交叉验证之间隔着 13 个百分点。§5.4 会给出数据学解释:150 例 notckd 患者在 9 个特征列上取值完全规则(尿蛋白全 0、尿糖全 0、无高血压、无糖尿病……),这个任务在很大程度上是"规则可分"的,高准确率是数据构造的产物,而非模型智能的证明。
第三重显微镜照向数据卫生。官方 data.csv 的 class 列里藏着 2 例 ckd\t——末尾一个制表符,足以让不清洗的脚本把二分类变成三分类;dm 列里藏着 1 例 \tno;缺失值以字面量字符串 “NaN” 表示,手写 CSV 解析器会把它当成合法取值。这些"地雷"分布在具体行上(行 37、行 230、行 188),本条目逐一存照(§4 坑 1、坑 2、坑 3),让后来者不必再踩。
§0 读法三则:
- 这个条目是"数据+基准史+方法学批判"三合一:本体是 400 行 CSV,衍生物是数百篇基准论文与数千个教学 notebook,副产品是关于"数据质量决定结论上限"的一整套警示。
- 全文统计数字均出自本编辑部对官方 data.csv 的实测(45,092 字节版本,2026-09-29 下载);论文自报数字一律标注出处与"自报口径"。
- 检索时注意:“chronic-kidney-disease” 在不同平台指向不同资源——UCI 旧版页面、Kaggle 镜像、各大学课程镜像的内容与脏值可能互不一致,本条目一切以 UCI ID 336 的官方 data.csv 为准(坑 5)。
§1 数据集速览:十问十答
Q1:这份数据里到底有什么?
400 名肾内科患者,每人 24 项检查结果加 1 个诊断标签。24 项分五组:人口学与体格 2 项(年龄、血压)、尿液检查 7 项(比重、白蛋白、糖、红细胞、脓细胞、白细胞团、细菌)、血生化 5 项(随机血糖、尿素、肌酐、钠、钾)、血液学 4 项(血红蛋白、红细胞压积、白细胞计数、红细胞计数)、合并症与症状 6 项(高血压、糖尿病、冠脉疾病、食欲、足部水肿、贫血)。标签 class 取值 ckd(慢性肾病)或 notckd(非慢性肾病)。
Q2:400 例里病人和健康人各占多少?
归一后 ckd 250 例(62.5%)、notckd 150 例(37.5%)——中度不平衡。注意"归一"二字:官方 data.csv 原样是 ckd 248 例 + ckd\t 2 例 + notckd 150 例,那 2 例只是标签末尾多了个制表符(data.csv 行 37 与行 230),不清洗的话你的 value_counts 会数出 3 个类别(坑 1)。
Q3:数据是谁、在哪里、什么时候采的?
采集医院为 Apollo Hospitals——印度最大的私立医院集团之一,位于泰米尔纳德邦。捐赠者/创建者为 L. Rubini、P. Soundarapandian、P. Eswaran 三人(UCI API creators 字段原样),2015 年 7 月 2 日捐赠 UCI。官方摘要原文称采集"nearly 2 months of period",即采集期约两个月。至于 Apollo 具体在泰邦哪座城市——三份文献给出三个答案,官方未载(坑 6)。
Q4:特征都是什么类型?
官方 data.csv 里只有两种存储形态:数值列 11 个(age、bp、bgr、bu、sc、sod、pot、hemo、pcv、wbcc、rbcc)与字符串/等级列 14 个。但语义上更细:sg(比重)名义上是连续量、实际只取 1.005/1.010/1.015/1.020/1.025 五个离散值;al(尿白蛋白)与 su(尿糖)是 0-5 的六个等级;rbc/pc/pcc/ba/htn/dm/cad/appet/pe/ane 是二值类别;class 是目标。UCI 官方把 feature_types 统一标为 “Real”,这是平台级的粗粒度口径,别照抄进你的预处理代码。
Q5:缺失有多严重?缺在哪?
全表 10000 格缺 1012 格(10.12%),而且 24 个特征列无一幸免全有缺失。最缺的三列都在检验科室:rbc 缺 152 格(38.0%)、rbcc 缺 131 格(32.75%)、wbcc 缺 106 格(26.5%);最不缺的是症状三兄弟:appet/pe/ane 各缺 1 格。整行零缺失的"完整病例"只有 158 例(39.5%)——你的 dropna() 会把这 400 例砍成 158 例(坑 4)。
Q6:缺失值在文件里长什么样?
官方 data.csv 用字面量字符串 “NaN” 表示缺失。pandas read_csv 默认会把 “NaN” 解析成浮点 NaN,所以用 pandas 的人感觉不到它的存在;但手写 CSV 解析器、或把 CSV 先转成其他格式再读的工具链,会把 “NaN” 当成一个合法的字符串取值——于是你的名义列会多出一个 “NaN” 类别(坑 3)。
Q7:标签是怎么定的?
标签即临床诊断结论(ckd/notckd),但判定标准官方未注明——是否按 KDIGO 指南、是否用 eGFR 与分期口径、诊断由谁复核,UCI 页面与 API 均无一字。这是本数据集最大的悬案之一:意味着"ckd"标签的操作化定义不可追溯,也意味着它不适合做 CKD 分期或多级分类研究(它只有二分类,没有分期)。
Q8:为什么这么多论文报告 99%+ 的准确率?
因为 150 例 notckd 患者在 9 个特征列上取值完全规则:尿白蛋白全部为 0、尿糖全部为 0、无高血压、无糖尿病、无冠脉疾病、食欲全部 good、无足部水肿、无贫血、红细胞与脓细胞形态全部正常,尿比重只取 1.020/1.025 两档。换句话说,notckd 类近乎"规则可分",任何能学会"这些列全正常→notckd"的模型都能拿高分。这是数据构造的产物(§5.4 详析),拿它证明"我的模型比你的强"没有意义。
Q9:许可与获取方式?
UCI 官方口径 CC BY 4.0——商用允许、需署名,对 AI 训练与再分发非常友好。获取认准一条正路:UCI 官方页(ID 336)→ data.csv(45,092 字节,唯一官方机读格式)。旧版 .arff 文件时代的一切路径已 404;官方下载包里的 zip 解开后是个 .rar(官方页面自己也这么标),Linux 默认没有 unrar——直接走 data.csv,别跟压缩包纠缠(坑 5)。
Q10:引用格式是什么?
UCI 官方口径:Rubini, L., Soundarapandian, P., & Eswaran, P. Chronic Kidney Disease [Dataset]. UCI Machine Learning Repository. https://doi.org/10.24432/C5G020 。注意三点:DOI 10.24432/C5G020 是 2023 年平台改版后分配的;引用体量最大的社区基准论文是 Qin et al. 2019(IEEE Access,被引 379+),但它不是官方伴生论文——本数据集压根没有官方伴生论文(UCI API intro_paper: null)。
§2 数据构成:25 列逐列详解
2.0 总体档案
| 指纹项 | 实测值(2026-09-29,UCI 官方 data.csv) |
|---|---|
| 文件 | data.csv(https://archive.ics.uci.edu/static/public/336/data.csv) |
| 体积 | 45,092 字节 |
| 行数 | 401 行 = 1 表头 + 400 数据行 |
| 列数 | 25 列 = 24 特征 + 1 标签(UCI API num_features: 24;不少论文写"25 attributes"是把 class 也算进去了——两口径都存照) |
| 缺失表示 | 字面量字符串 “NaN”(坑 3) |
| 全表缺失 | 1012 / 10000 格 = 10.12% |
| 零缺失完整行 | 158 例(39.5%) |
| 重复行 | 0 |
| 主键 | 无患者 ID 列,行序即唯一标识 |
| 分隔符 | 英文逗号;无引号包裹字段;脏值 ckd\t、\tno 内嵌制表符(坑 1、坑 2) |
UCI 官方元数据口径:area=Other;tasks=Classification;characteristics=Multivariate;feature_types=Real;demographics=Age;target_col=class。其中 “feature_types=Real” 是平台级粗口径——实际只有 11 列是真数值,14 列是字符串/等级(§2.2 起逐列辨析);“demographics=Age” 也只登记了年龄,未登记性别——本数据集没有性别列,这也是常被文献忽略的一点(不少论文臆测"男女比例",实无此列可算)。
2.1 特征体系总览:五组 24 列
| 组 | 列 | 类型(实测) | UCI API 单位 | 缺失(格 / %) |
|---|---|---|---|---|
| 人口学与体格 | age | 数值-整数 | 无(demographic=Age) | 9 / 2.25% |
| 人口学与体格 | bp | 数值-整数 | mm/Hg | 12 / 3.0% |
| 尿液检查 | sg | 等级(5 档离散值) | 无(Categorical) | 47 / 11.75% |
| 尿液检查 | al | 等级(0-5) | 无(Categorical) | 46 / 11.5% |
| 尿液检查 | su | 等级(0-5) | 无(Categorical) | 49 / 12.25% |
| 尿液检查 | rbc | 二值 | 无(Binary) | 152 / 38.0% |
| 尿液检查 | pc | 二值 | 无(Binary) | 65 / 16.25% |
| 尿液检查 | pcc | 二值 | 无(Binary) | 4 / 1.0% |
| 尿液检查 | ba | 二值 | 无(Binary) | 4 / 1.0% |
| 血生化 | bgr | 数值-整数 | mgs/dl | 44 / 11.0% |
| 血生化 | bu | 数值(含小数) | mgs/dl | 19 / 4.75% |
| 血生化 | sc | 数值-连续 | mgs/dl | 17 / 4.25% |
| 血生化 | sod | 数值(含小数) | mEq/L | 87 / 21.75% |
| 血生化 | pot | 数值-连续 | mEq/L | 88 / 22.0% |
| 血液学 | hemo | 数值-连续 | gms | 52 / 13.0% |
| 血液学 | pcv | 数值-整数 | 无 units 字段(坑 9) | 71 / 17.75% |
| 血液学 | wbcc | 数值-整数 | cells/cmm | 106 / 26.5% |
| 血液学 | rbcc | 数值-连续 | millions/cmm | 131 / 32.75% |
| 合并症与症状 | htn | 二值 | 无(Binary) | 2 / 0.5% |
| 合并症与症状 | dm | 二值(含 1 脏值) | 无(Binary) | 2 / 0.5% |
| 合并症与症状 | cad | 二值 | 无(Binary) | 2 / 0.5% |
| 合并症与症状 | appet | 二值 | 无(Binary) | 1 / 0.25% |
| 合并症与症状 | pe | 二值 | 无(Binary) | 1 / 0.25% |
| 合并症与症状 | ane | 二值 | 无(Binary) | 1 / 0.25% |
| 目标 | class | 二值(含 2 脏值) | — | 0 |
元数据与实测的两处小不符(本编辑部实测,供较真者参考):UCI API 把 bu、sod 标为 Integer,但实测 bu 最小值 1.5、sod 最小值 4.5,均存在小数取值——API 类型标注同样是粗口径。下列逐列详解中,"实测"均指对官方 data.csv 的直接统计。
2.2 人口学与体格组(2 列)
age — 年龄
数值列,实测 n=391(缺 9),均值 51.48±17.17,范围 [2, 90]。以中老年为主体的分布,与 CKD 的流行病学画像吻合;但最小值 2 岁、最大值 90 岁说明样本并未设年龄下限——data.csv 行 188 是一名 8 岁患儿(hemo 12.2,dm 列脏值 \tno 的所在行,见坑 2),2 岁患者亦在列。做"成人 CKD"叙事的论文请先查自己有没有把儿科病例一起算进去。UCI demographics 字段仅登记 Age,无性别列。
bp — 血压(mm/Hg)
数值列,实测 n=388(缺 12),均值 76.47±13.68,范围 [50, 180]。按临床惯例 bp 在这里指舒张压(diastolic),正常参考约 60-90;max 180 已达高血压急症级别。双口径存照:PLOS ONE 2024 论文(DOI 10.1371/journal.pone.0295234)报告 bp 均值 76.175,与本编辑部实算 76.47 差 0.295——推测系论文侧做过清洗或插补后重算;本条目正文按官方 data.csv 实算口径 76.47 书写。该列缺失仅 3.0%,是体格检查里记录最完整的一项。
2.3 尿液检查组(7 列)
sg — 尿比重(specific gravity)
名义上连续、实测离散:1.005×7 / 1.010×84 / 1.015×75 / 1.020×106 / 1.025×81,NaN 47(缺 11.75%)。五档取值对应尿液浓缩能力的梯度——肾脏浓缩功能受损时比重趋向低档固定。CKD 患者常见 1.005-1.015 的低固定比重,而 notckd 子集只取 {1.020, 1.025} 两档(§5.4)。建模时当序数变量处理比当连续变量更稳。
al — 尿白蛋白(albumin),0-5 等级
等级列,实测计数:0×199 / 1×44 / 2×43 / 3×43 / 4×24 / 5×1,NaN 46(缺 11.5%)。0=无蛋白尿,5=最重。这是 CKD 判别的核心特征之一:ckd 组 al 均值显著偏高,而 notckd 组 150 例全部为 0。等级取 5 的只有 1 例,建模时注意尾部分类稀疏。
su — 尿糖(sugar),0-5 等级
等级列,实测计数:0×290 / 1×13 / 2×18 / 3×14 / 4×13 / 5×3,NaN 49(缺 12.25%)。与 al 同构的六级等级,反映尿中葡萄糖;notckd 组 150 例同样全部为 0。分布高度右偏(0 占非缺失的 82.6%),做统计检验时注意其本质是序数而非连续。
rbc — 尿红细胞(red blood cells)
二值列:normal 201 / abnormal 47,NaN 152(缺 38.0%,全表缺失冠军)。血尿(abnormal)是肾小球损伤的经典信号,但近四成缺失使它更像一张"做了镜检才有"的检查单——缺失机制大概率与临床决策相关(非随机缺失,MNAR 嫌疑),插补前先想清楚"为什么缺"。
pc — 尿脓细胞(pus cell)
二值列:normal 259 / abnormal 76,NaN 65(缺 16.25%)。脓尿提示尿路感染或炎症;与 pcc(白细胞团)临床相关但缺失率相差四倍(16.25% vs 1.0%),推测二者分属不同检验子项的记录习惯。
pcc — 尿白细胞团(pus cell clumps)
二值列:notpresent 354 / present 42,NaN 4(缺 1.0%)。记录极其完整,与 ba 一样属于"医生问诊/化验单必填"风格的字段。
ba — 尿细菌(bacteria)
二值列:notpresent 374 / present 22,NaN 4(缺 1.0%)。细菌尿阳性仅 22 例,类分布极端偏斜(94.4% notpresent),单独用作特征的信息量有限,但与 pcc/pc 组合后构成"感染证据链"。
2.4 血生化组(5 列)
bgr — 随机血糖(blood glucose random,mgs/dl)
数值列,实测 n=356(缺 44),均值 148.04±79.28,范围 [22, 490]。均值落在糖尿病偏高区间,max 490 为重度高血糖;而 min 22 mg/dl 是生理上几乎不可能存活的严重低血糖——大概率是录入错误(如漏敲首位数字,22 或为 122/220 之误),官方无说明(坑 7)。该列与 dm(糖尿病合并症)临床呼应,是"代谢轴"的主特征。
bu — 血尿素(blood urea,mgs/dl)
数值列,实测 n=381(缺 19),均值 57.43±50.50,范围 [1.5, 391]。尿素氮升高是肾功能失代偿的直接标志(正常参考约 7-20 mg/dl);max 391 对应终末期肾病水平,min 1.5 偏低但非不可能。注意 UCI API 类型标 Integer 而实测含 1.5 这类小数——又一处元数据粗口径。标准差 50.50 超过均值,右偏极重,建模建议先取对数。
sc — 血清肌酐(serum creatinine,mgs/dl)
数值列,实测 n=383(缺 17),均值 3.07±5.74,范围 [0.4, 76]。肌酐是 CKD 分期基石(eGFR 由它算起):正常约 0.6-1.2 mg/dl,ckd 组均值 4.41 vs notckd 组 0.87——本数据集里判别力最强的单变量之一。max 76 mg/dl 生理上近乎离谱(终末期通常也就 10-20 量级),疑似小数点错位(76 或为 7.6 之误),官方未注(坑 7);std 5.74 被这一个点大幅拉高。与 bu 一样强烈建议对数变换后再用。
sod — 血钠(sodium,mEq/L)
数值列,实测 n=313(缺 87),均值 137.53±10.41,范围 [4.5, 163]。正常参考 135-145;ckd 组 133.90 vs notckd 组 141.73,低钠血症倾向与肾功能减退相关。min 4.5 mEq/L 为严重电解质紊乱不可能存活值,疑小数点错位(45 之误?),同样无官方说明(坑 7)。API 类型标 Integer 而实测有 4.5——类型标注失真第三例。
pot — 血钾(potassium,mEq/L)
数值列,实测 n=312(缺 88),均值 4.63±3.19,范围 [2.5, 47]。高钾血症是 CKD 的致命并发症(正常参考 3.5-5.0);max 47 mEq/L 远超心搏骤停阈值(约 8-10),疑为 4.7 之误的小数点错位,官方未注(坑 7)。std 3.19 同样被极端值主导。这一列是"极端值清洗必要性"的最佳教具:留着 47,你的标准化会把健康人的 4.5 全压成零附近。
2.5 血液学组(4 列)
hemo — 血红蛋白(hemoglobin,gms)
数值列,实测 n=348(缺 52),均值 12.53±2.91,范围 [3.1, 17.8]。肾性贫血是 CKD 进展的标志事件(促红细胞生成素分泌不足);ckd 组均值 10.65 vs notckd 组 15.19,组间落差近 4.5 gms,判别力仅次于 sc。min 3.1 为极重度贫血(可危急),但临床上确可出现,未必是错值。
pcv — 红细胞压积(packed cell volume)
数值列,实测 n=329(缺 71),均值 38.88±8.99,范围 [9, 54]。与 hemo 物理上强相关(压积≈血红蛋白×约 3 倍关系),共线性预警:同时喂给线性模型时二者近乎冗余。UCI API 对该列没有 units 字段——24 列中唯一缺单位标注的一列(坑 9);临床惯例 PCV 以百分比报告(正常约 36-50%),实测范围 [9, 54] 与百分比口径吻合。ckd 组 32.94 vs notckd 组 46.34。
wbcc — 白细胞计数(white blood cell count,cells/cmm)
数值列,实测 n=294(缺 106),均值 8406.12±2944.47,范围 [2200, 26400]。正常参考约 4000-11000;max 26400 提示重度感染/白血病样反应,生理上仍属可能区间,但需结合 pcc/ba 判断是否真有感染佐证。缺失 26.5%,与 rbc/rbcc 同属"血常规缺失三兄弟"。
rbcc — 红细胞计数(red blood cell count,millions/cmm)
数值列,实测 n=269(缺 131,缺 32.75%),均值 4.71±1.03,范围 [2.1, 8]。ckd 组 3.95 vs notckd 组 5.38——贫血轴的又一员。与 rbc(形态学二值列)是两个不同变量:一个数数量、一个看形态,建模时别把二者混淆。社区教程盛传旧版 .arff 的 pcv/wbcc/rbcc 列存在 \t? 型制表符脏值("17 处"之说),旧版已 404 无法实证,本条目仅对官方 data.csv 负责:实测数值列除 NaN 外无任何非数值脏值(附录 D 存照)。
2.6 合并症与症状组(6 列)
htn — 高血压(hypertension)
二值列:no 251 / yes 147,NaN 2。高血压既是 CKD 的因也是果;ckd 组 yes 占比显著更高。notckd 组 150 例全部 no(§5.4 规则可分链条的一环)。双口径存照:一些教程写"htn 列出现过 2.5"——那是误把 data.csv 行 37 的 rbcc=2.5 读到 htn 列上(0 基索引 r[17]=rbcc 而非 htn,htn 在 r[18]);实测 htn 列除 NaN 外只有 yes/no。
dm — 糖尿病(diabetes mellitus)
二值列:no 260 / yes 137,NaN 2,外加 1 例脏值 \tno(data.csv 行 188,age=8 的患儿行)——把"no"写成了制表符+no(坑 2)。与前述 bgr/su 构成糖代谢证据链。notckd 组 150 例同样全部为 no。
cad — 冠脉疾病(coronary artery disease)
二值列:no 364 / yes 34,NaN 2。极度偏斜(yes 仅 8.5%);心血管合并症与 CKD 互为危险因素,但本列信息密度受偏斜限制。notckd 组全部 no。
appet — 食欲(appetite)
二值列:good 317 / poor 82,NaN 1。全表记录最完整的列之一(仅缺 1 格)。尿毒症毒素蓄积导致食欲减退是 CKD 的经典非特异症状;notckd 组全部 good。
pe — 足部水肿(pedal edema)
二值列:no 323 / yes 76,NaN 1。水钠潴留的体表征象;notckd 组全部 no。与 hemo/pcv 的贫血轴、sc/bu 的肾功轴并列,构成"症状轴"。
ane — 贫血(anemia,问诊判定)
二值列:no 339 / yes 60,NaN 1。注意与 hemo/rbcc 的区别:ane 是临床问诊判定(是否诊断贫血),hemo/rbcc 是化验数值——同一轴上的"定性+定量"双记录。notckd 组全部 no。
2.7 目标列 class
原样取值计数:ckd 248 / notckd 150 / ckd\t 2(data.csv 行 37 与行 230,见坑 1);归一后 ckd 250(62.5%)/ notckd 150(37.5%)。零缺失。中度不平衡比 5:3——用准确率单指标评测时要配合灵敏度/特异度与混淆矩阵(ckd 是正类时应看漏诊率)。标签的医学判定标准官方未注明(§1 Q7),一切"ckd"标签均应理解为"该患者被接诊医生判定为慢性肾病"这一黑箱结论。
2.8 ckd vs notckd 分组均值速览(自算口径)
| 列 | ckd 组(n=250) | notckd 组(n=150) | 组间落差解读 |
|---|---|---|---|
| sc 血清肌酐 (mg/dl) | 4.41 | 0.87 | 最强单变量:肾滤过功能直接证据 |
| hemo 血红蛋白 (g) | 10.65 | 15.19 | 肾性贫血轴 |
| pcv 红细胞压积 (%) | 32.94 | 46.34 | 与 hemo 同轴冗余 |
| bgr 随机血糖 (mg/dl) | 175.42 | 107.72 | 代谢/合并症轴 |
| rbcc 红细胞计数 (M/cmm) | 3.95 | 5.38 | 贫血轴定量侧 |
| sod 血钠 (mEq/L) | 133.90 | 141.73 | 电解质调节能力 |
六列均呈现 ckd 恶化方向的一致位移;但请注意这些均值本身已被极端值(坑 7)污染——比如 sc 组间差部分来自 76 这个疑错点。均值差异显著 ≠ 单列可独判:真正把两类分开的是 §5.4 揭示的"notckd 规则可分"结构。
2.9 临床参考区间对照:把数值放回医学刻度
前面各节是"数据侧"的画像;本节把关键数值列放回临床参考区间,给读者一面"医学侧"的镜子。表中参考区间均经至少三个独立来源交叉确认(Medscape 参考区间表、MedlinePlus 医学百科、Kidney Education 临床教材;见尾注 11-12),用途是帮助读者快速判断"这个值在临床上意味着什么"——它们不是诊疗依据,也不替代任何临床指南。
| 列 | UCI 官方单位 | 实测范围(本条目实算) | 临床参考区间(三源口径) | 区间外实测点的临床解读 |
|---|---|---|---|---|
| age | 岁 | [2, 90] | 成人参照为主,儿科须单独口径 | 行 188 为 8 岁患儿(附录 A);无性别列使成人/儿科细判受限 |
| bp | mm/Hg | [50, 180] | 舒张压 60-90(Bristol 注释版口径:本列 “presumably diastolic”,UCI 官方未注明缩/舒) | min 50 低血压;max 180 高血压急症级别 |
| bgr | mgs/dl | [22, 490] | —(本条目未三源复核随机血糖区间,不列) | min 22 生理不可存活(坑 7);max 490 重度高血糖 |
| bu | mgs/dl | [1.5, 391] | 见下方警示框一:bu≠BUN,勿直接套 BUN 区间 | max 391 终末期量级 |
| sc | mgs/dl | [0.4, 76] | 男 0.6-1.3 / 女 0.5-1.2 | ckd 组均值 4.41 已远超上限;max 76 疑错位(坑 7) |
| sod | mEq/L | [4.5, 163] | 135-145 | min 4.5 不可存活疑错位;max 163 严重高钠 |
| pot | mEq/L | [2.5, 47] | 3.5-5.0 | max 47 超心搏骤停阈值(约 8-10),疑错位 |
| hemo | gms | [3.1, 17.8] | 约 12-17(性别而异) | min 3.1 极重度贫血(危急但临床确可出现) |
| pcv | 无官方单位(按 % 解读,坑 9) | [9, 54] | 约 36-50%(临床惯例口径) | min 9 极重度;与 hemo 经验比例约 3:1 |
| wbcc | cells/cmm | [2200, 26400] | 5000-10000 | max 26400 重度感染样反应;min 2200 白细胞减少 |
| rbcc | millions/cmm | [2.1, 8] | 约 4.0-6.0(性别而异) | min 2.1 与肾性贫血轴吻合 |
警示框一:bu 不是 BUN——本数据集最常见的单位错位。 UCI 官方变量表把 bu 标注为 “blood urea”(血尿素,单位 mgs/dl),而临床惯用指标是 BUN(blood urea nitrogen,血尿素氮)。尿素分子含两个氮原子,BUN ≈ 尿素 × 0.467,反过来尿素 ≈ BUN × 2.14。因此"BUN 正常 7-20 mg/dL"翻译到本数据集的 bu 口径约为 15-40。大量教程直接把 bu 当 BUN 并套用 7-20 的参考区间,等于把参考上限压低了一半以上——一批肾功能正常者的 bu 值会被误读为"显著升高"。实测 bu 全体均值 57.43(ckd 组更高):按尿素口径解读,与 CKD 人群的构成吻合;若误按 BUN 口径解读,则"严重得离谱"。读任何一篇用本数据集的文献时,先看作者把 bu 当成了哪个指标。
警示框二:sg 的低档与"等渗尿"。 尿比重临床参考:随机尿 1.003-1.035,晨尿 1.015-1.025;比重固定于 1.010±0.003 的"等渗尿"提示肾浓缩与稀释功能严重受损。ckd 组的 sg 分布向 1.005-1.015 低档集中(§2.3),与该临床画像吻合;notckd 组只取 1.020/1.025 两档(§5.4)。这也是 §2.3 建议"按序数处理"的临床依据:档位本身就是浓缩能力的等级。
警示框三:al 的 0-5 等级 ≠ KDIGO 的 ACR 分级。 本数据集 al 是 0-5 的半定量等级(试纸法/镜检传统的分级口径);KDIGO 2024 指南的白蛋白尿分级用的是 ACR(尿白蛋白/肌酐比值)定量体系:A1 <30、A2 30-300、A3 >300 mg/g。二者测量对象相关但不可互相换算——把"al=3"写成"A3 期"是审稿中真实出现过的错误类型。
背景知识框:KDIGO 2024 CGA 分期与本数据集的距离。 KDIGO 2024 官方口径:CKD 定义为肾脏结构或功能异常持续 ≥3 个月且影响健康;分期按 CGA 三轴——病因(Cause)、GFR 分期 G1(≥90)/G2(60-89)/G3a(45-59)/G3b(30-44)/G4(15-29)/G5(<15,单位 mL/min/1.73m²)、白蛋白尿分级 A1(<30)/A2(30-300)/A3(>300 mg/g)。NIDDK 补充口径:G2 期若无肾损伤标志物(蛋白尿、血尿、影像学异常等)不视作 CKD。本数据集无 eGFR 列、无病程时间维度、无 ACR 定量——无法映射到该分期体系,它能支撑的只是"疑似 CKD vs 非 CKD"的二分类判别(§1 Q7、FAQ F22)。
另注:无性别列不仅让"男女比例"叙事无源(§1 Q4),也使 eGFR 复算不可行——主流 eGFR 公式(CKD-EPI 等)需要性别与年龄作为输入,本数据集只有年龄。这意味着读者无法从 sc 列自行推算 eGFR 来对齐 KDIGO 分期,"标签判定是否按 KDIGO"的悬案(附录 E 第 1 条)也因此无法用数据侧手段侧面验证。
§3 缺失值体系:10.12% 缺失的完整解剖
3.1 全表缺失账本
400 行 × 24 特征 = 9600 个特征格;加上 400 个标签格共 10000 格;缺失 1012 格,缺失率 10.12%。标签列 class 零缺失,全部缺失集中在特征侧。24 个特征列每一列都有缺失——不存在"至少有这一列是全的"的安慰。与此对照,行方向的账更触目:零缺失完整行仅 158 例(39.5%),即六成患者至少漏了一项检查(坑 4)。
3.2 逐列缺失降序表(实测)
| 排名 | 列 | 缺失格数 | 缺失率 | 临床语义 |
|---|---|---|---|---|
| 1 | rbc 尿红细胞 | 152 | 38.0% | 镜检子项,做不做看医生 |
| 2 | rbcc 红细胞计数 | 131 | 32.75% | 血常规子项 |
| 3 | wbcc 白细胞计数 | 106 | 26.5% | 血常规子项 |
| 4 | pot 血钾 | 88 | 22.0% | 生化子项 |
| 5 | sod 血钠 | 87 | 21.75% | 生化子项 |
| 6 | pcv 红细胞压积 | 71 | 17.75% | 血常规子项 |
| 7 | pc 尿脓细胞 | 65 | 16.25% | 镜检子项 |
| 8 | hemo 血红蛋白 | 52 | 13.0% | 血常规子项 |
| 9 | su 尿糖 | 49 | 12.25% | 尿干化学子项 |
| 10 | sg 尿比重 | 47 | 11.75% | 尿干化学子项 |
| 11 | al 尿白蛋白 | 46 | 11.5% | 尿干化学子项 |
| 12 | bgr 随机血糖 | 44 | 11.0% | 生化子项 |
| 13 | bu 血尿素 | 19 | 4.75% | 生化子项 |
| 14 | sc 血清肌酐 | 17 | 4.25% | 生化子项 |
| 15 | bp 血压 | 12 | 3.0% | 体格检查 |
| 16 | age 年龄 | 9 | 2.25% | 登记 |
| 17 | pcc 白细胞团 | 4 | 1.0% | 镜检子项 |
| 17 | ba 尿细菌 | 4 | 1.0% | 镜检子项 |
| 19 | htn 高血压 | 2 | 0.5% | 问诊 |
| 19 | dm 糖尿病 | 2 | 0.5% | 问诊 |
| 19 | cad 冠脉疾病 | 2 | 0.5% | 问诊 |
| 22 | appet 食欲 | 1 | 0.25% | 问诊 |
| 22 | pe 足部水肿 | 1 | 0.25% | 问诊 |
| 22 | ane 贫血 | 1 | 0.25% | 问诊 |
榜单自上而下几乎就是"检验科室的层级":越是需要专门仪器与人工镜检的项目缺得越多,越是问诊桌面上一句话能问出来的项目缺得越少。这个梯度本身就是缺失机制的线索(3.4)。
3.3 行级视角:缺失不是散点,是整块
从行方向看,缺失高度聚集:rbc 缺的 152 格并非均匀散布在 152 个不同行——大量行是"镜检整项没做"(rbc 与 pc 同缺)或"血常规整项没做"(wbcc/rbcc/pcv/hemo 成片同缺)。这意味着插补时要警惕"同一行多个格子同时编造"造成的虚假样本:用 KNN 插补 rbc 时,如果它的近邻恰好也是靠插补补出来的行,你就是在用编造数据校准编造数据。一个朴素但有效的自查:对"缺失列组合"(missingness pattern)做去重计数,观察前几大模式各占多少行,再决定插补策略——本编辑部实测缺失模式高度集中于少数几种"整块缺"组合,而非数百种随机组合。
3.4 缺失机制讨论:大概率不是 MCAR
统计学把缺失分三型:MCAR(完全随机)、MAR(依可观测变量而定)、MNAR(依缺失值本身而定)。CKD-UCI 的缺失梯度(镜检>血生化>问诊)与"整块缺失"结构强烈暗示这不是 MCAR:
- 检查项目缺失与病情轻重相关——轻症/复诊患者可能只做基础盘,重症才上全套,也可能是早期录入时段检验项目不全;缺 rbc 的行是不是系统性地更"健康"或更"重"?值得用"缺失指示变量与 class 的相关"快速检验。
- 问诊字段近乎全记录(appet/pe/ane 各缺 1 格)说明表格的问诊部分经过了较认真的填写,而检验部分是从化验单批量转录——两段数据的采集动机不同。
对建模者的含义:任何把缺失当随机的插补(朴素均值/中位数)都会系统性地扭曲组间分布;更稳的做法是把"是否缺失"本身当特征(缺失指示列),或使用能原生处理缺失的树模型(XGBoost/LightGBM 的 NaN 通道),让模型自己学缺失的含义。Qin et al. 2019 用 KNN 插补后拿到 99.75%——插补方法在这里对最终指标的影响,远小于 §5.4 揭示的任务可分性。
3.5 处理策略菜单(按保守到激进)
- 删除派:
dropna()一刀切 → 剩 158 例(39.5%),且删剩的子集分布偏斜(整块缺的行被系统性剔除)。除非你明确要"检验齐全子集"的结论,否则不推荐。 - 单插补派:均值/中位数/众数插补 → 快,但把 rbc 这种 38% 缺失的列插成一根常数柱,方差被系统性低估。
- 模型插补派:KNN 插补(Qin 2019 口径)、MICE/迭代插补、missForest → 效果通常更好,但要小心 3.3 的"编造套编造",并对插补后的样本做分布对照。
- 缺失即特征派:加缺失指示列,或用 XGBoost/LightGBM 原生 NaN 通道 → 表格数据上最省心且诚实的做法,树模型会自动学到"缺 rbc 本身有没有信息"。
- 分而治之派:问诊块(缺失≈0)与检验块(高缺失)分别处理,或在完整行子集(158 例)上做敏感性分析,与全样本结果对照报告。
无论选哪派,请在论文里报告插补前后的类别分布与特征分布对照——CKD-UCI 的缺失梯度意味着不同插补策略可能产生可观测的指标差异,这正是它作为方法学教学样本的价值。
§4 数据质量坑点清单:九坑全景
以下九坑全部经本编辑部对官方 data.csv 实测确认(除坑 6 为文献口径问题、坑 8 为文献方法学问题外),每坑给出"踩法—后果—躲法"。
坑 1:class 列的 2 例 ckd\t 脏标签(行 37 与行 230)
踩法:df['class'].value_counts() 直接看结果,或用 if x == 'ckd' 做标签映射。
实测存照:data.csv 行 37(age=72, rbcc=2.5, htn=yes, class=ckd\t)与行 230(age=65, hemo/pcv/rbcc 均 NaN, class=ckd\t)——标签末尾各藏一个制表符。原样计数 ckd 248 / ckd\t 2 / notckd 150。
后果:不清洗则类别数从 2 变 3;LabelEncoder 会给 ckd\t 单独编号;若你把 ckd\t 行整行丢弃,等于白扔 2 例正类;更隐蔽的是某些 train/test 切分脚本按类别分层时会因 3 类而报错或产生畸变折。
躲法:读入后第一时间 df['class'] = df['class'].str.strip(),顺手把全表所有 object 列都 strip 一遍(坑 2 同源)。归一后口径 ckd 250 / notckd 150。
坑 2:dm 列的 1 例 \tno 脏值(行 188,8 岁患儿行)
踩法:假设 dm 列只有 {yes, no} 两个取值,做 map({'yes':1,'no':0})。
实测存照:data.csv 行 188——age=8 的患儿(hemo 12.2),dm=\tno(制表符+no)。原样计数 no 260 / yes 137 / \tno 1 / NaN 2。
后果:map 后该行变 NaN(若 map 未指定其他值),一行数据无声损失;或被当作第三类别喂进独热编码,多出一列常数 0/1 特征。
躲法:同坑 1 的全表 strip 即可归一为 no。注意这行同时是儿科样本(8 岁)——如果你做的是成人研究,这行要按年龄标准剔除而非当异常值丢。
坑 3:缺失以字面量字符串 “NaN” 表示
踩法:手写 CSV 解析器逐字段 split;或把 CSV 导入不认识 “NaN” 字面量的数据库/BI 工具后再分析。
实测存照:官方 data.csv 中缺失单元格写作字符串 NaN(不是空串、不是 ?、不是 NA)。pandas read_csv 默认识别,使用者无感;其他工具链则可能把它当合法取值。
后果:名义列多出 “NaN” 类别(独热编码多一列);数值列类型推断失败整列变 object;"缺失率 10.12%"在你手里变成 0%。
躲法:pandas 用户无感可跳过;其他工具链请显式声明 NaN 为缺失标记(如 SQL 导入时 NULLIF(val,'NaN')),或先经 pandas 清洗再落库。
坑 4:零缺失完整行仅 158 例(39.5%),dropna() 灰飞烟灭
踩法:df.dropna() 后开始训练,并在论文里写"n=158"或干脆不写 n。
实测存照:400 例中整行零缺失仅 158 例;被删的 242 行里包含大量"仅缺 1-2 格"的高价值样本。
后果:样本量蒸发六成;更糟的是被删行不是随机的——整块缺检验的行有自己的临床画像(3.3),删完后你的"158 例结论"不再代表原始人群;部分论文的"高准确率"正是在这个小而偏的子集上刷出来的。
躲法:永远报告 dropna 前后的 n 与类别分布;优先用 §3.5 的 4 号策略(缺失即特征/树模型原生通道)。
坑 5:旧版 .arff 时代路径全 404,官方 zip 里是 .rar
踩法:从 2015-2022 年间的教程、书籍或博客复制下载链接(chronic_kidney_disease.arff、chronic_kidney_disease_full.arff、Chronic_Kidney_Disease.csv 等),或下载官方 zip 后在 Linux 上 unzip 完卡住。
实测存照(2026-09-29):上述旧版路径全部 404;UCI 2023 平台改版后官方分发仅剩 data.csv(45,092 字节);官方下载包 zip 解开后是 Chronic_Kidney_Disease.rar(18.8 KB),与官方页面自标一致——Linux/macOS 默认无 unrar。
后果:链接失效浪费半小时是小事;大事是部分教程自带"清洗过的"镜像 CSV,与官方 data.csv 内容不一定一致(有的镜像已把脏值洗掉、有的反而引入新问题),你在镜像上跑出的数字无法与官方口径对话。
躲法:认准 https://archive.ics.uci.edu/static/public/336/data.csv 一条路;引用数字时注明"data.csv 口径"。
坑 6:Apollo 医院的城市三口径(Managiri / Manamadurai / Karaikudi)
踩法:在论文或报告里写"Apollo Hospitals, Karaikudi"(或其他任一城市)并当作确证事实。
实测存照:UCI 官方页只写 Apollo Hospitals(泰米尔纳德邦),不写城市;三份二手来源各执一词——PLOS ONE 2024(DOI 10.1371/journal.pone.0295234)写 Managiri;ANFIS-PSO 2026(DOI 10.62762/bish.2026.692582)写 Manamadurai;Bristol 大学课程页(uob-ds.github.io,Matthew Brett 维护)写 “Karaikudi (maybe)”,作者自己加注不确定。
后果:地理信息错误本身危害有限,但它是本数据集"元数据可靠性"的缩影——连采集城市都三说不一,更别提标签判定标准、抽样方式这类真正要紧的元数据。
躲法:正文只写"Apollo Hospitals(印度泰米尔纳德邦)";需要城市时三口径并列存照并注明来源。
坑 7:生理可疑的极端值(pot 47 / sc 76 / bgr 22 / sod 4.5)
踩法:数据直接标准化/训练,或反过来看到极端值就删行。
实测存照:pot 最大 47 mEq/L(心搏骤停阈值量级的 5 倍,疑 4.7 错位)、sc 最大 76 mg/dl(终末期罕见量级,疑 7.6 错位)、bgr 最小 22 mg/dl(致死性低血糖,疑 122/220 漏位)、sod 最小 4.5 mEq/L(不可存活,疑 45 错位);另有 bu 391、wbcc 26400 等生理上勉强可解释的高值。官方对这些值无任何注释。
后果:一个 47 就能把 pot 列的标准差拉大到失真(实测 std 3.19,均值 4.63),z-score 后健康人全被压成一团的零附近;树模型对它不敏感但线性模型与神经网络会被带偏;而"看到大数就删"则会误删真病人(sc 76 若为真值,那是必须透析的危重患者——医疗数据里极端值常常是病情本身)。
躲法:区分"不可能值"(违反生理存活底线的 pot 47、sod 4.5——按疑错处理或按缺失处理并注明)与"罕见但可能值"(sc 10+、bu 391——保留并可加稳健变换);一切处理在论文中逐值列出并给理由。医疗数据里,"离群值=录入错误"的假设必须逐例辩护。
坑 8:单分割 100% 的论文通胀 vs 5 折 CV 87%
踩法:train_test_split(test_size=0.3) 一次,跑出 100% 准确率,写成论文标题。
实测存照:Sossi et al. 2019(XGBoost)与 ANFIS-PSO 2026 均报单分割 100%;ANFIS-PSO 2026 同一方法改 5 折交叉验证即降为 87.00%±3.59%——13 个百分点的落差发生在同一篇论文里。更广的图景见 §5:单分割 99-100% 与认真交叉验证后 87-99% 并存,是本数据集文献的一体两面。
后果:数据集近乎规则可分(§5.4)+ 单次随机分割 → 测试集里尽是"规则样本",任何不坏的平台模型都能满分;100% 从此成为"此人没做交叉验证"的强信号。
躲法:分层 k 折交叉验证(k≥5)+ 多随机种子重复,报告均值±标准差;与文献对比时先确认对方口径(单分割还是 CV、是否 SMOTE 后再切分——后者是另一类泄漏,见 §5.3)。
坑 9:元数据粗口径三连——pcv 无单位字段、属性数 24 vs 25、API 类型失真
踩法:盲信 UCI API 的元数据字段做自动化的 schema 生成或数据字典。
实测存照:三处失真——其一,UCI API 变量表中 pcv 是 24 列里唯一没有 units 字段的列(临床惯例为百分比);其二,API num_features=24(不含 class),大量论文写"25 attributes"(含 class),两口径长期并存;其三,API 把 bu、sod 标为 Integer,实测却各有小数取值(1.5 与 4.5),把 sg、al、su 标为 Categorical 倒是对的,但 feature_types 汇总字段又写 “Real”。
后果:自动化管线生成的数据字典出现"无单位列"与错误类型;论文间"24 还是 25 个属性"的无谓之争;新手按 “Real” 把等级列 al/su/sg 当连续变量送进线性模型。
躲法:以本条目 §2.1 的实测五组表为数据字典基线(并回溯官方 API 复核);属性数首次出现时注明"24 特征+1 标签";等级列按序数处理。
§5 机器学习基准综述:一个"没有官方基准"的数据集如何被基准化
5.0 先说清楚:本数据集没有官方基准
UCI API 的 intro_paper 字段为 null——CKD-UCI 是"直接捐赠"型数据集,没有伴生论文、没有官方推荐的训练/测试划分、没有榜单、没有固定评测协议。你在文献里看到的每一个"基准数字",都是作者自己选择预处理、分割与指标的结果,互相之间不可直接比较。这一节按时间线梳理被引最高的几篇社区基准论文,再给出数据学解释(5.4)与使用守则(5.5)。
5.1 社区基准代表论文全景表(数字均为论文自报口径)
| 论文 | 出处/DOI | 方法要点 | 自报最佳成绩 | 备注 |
|---|---|---|---|---|
| Qin et al. 2019 | IEEE Access 8:20991-21002;10.1109/ACCESS.2019.2963053 | KNN 插补缺失;六算法对比;LR+RF 感知机集成,十次仿真平均 | RF 99.75%;集成 99.83% | 被引 379+(2026-09 Google Scholar 口径),本数据集被引最高文献 |
| Chittora et al. 2021 | IEEE Access 9:17312-17334;10.1109/ACCESS.2021.3053763 | 七分类器 × 六种特征选择/SMOTE 组合的系统网格 | DNN 99.6%;LSVM-L2 98.86%(SMOTE+全特征)/ 98.46%(SMOTE+LASSO) | 预处理组合矩阵做得最系统的一篇 |
| ANFIS-PSO 2026 | 10.62762/bish.2026.692582 | ANFIS + PSO 调参;SMOTE 平衡 | 单分割 100%;5 折 CV 87.00%±3.59% | 同文两口径相差 13 个百分点,基准通胀活标本(坑 8);其医院口径写 Apollo Manamadurai |
| Sossi et al. 2019 | (转引口径) | IBM SPSS XGBoost(linear booster) | 100%(单分割) | 单分割满分阵营 |
| Gunarathne et al. 2017 | (转引口径) | Azure ML Decision Forest | 99.1% | 云平台流水线代表 |
| Al Imran et al. 2019 | (转引口径) | FF-ANN 前馈神经网络 | f1 0.99 | 报 f1 而非 accuracy 的少数派 |
| Sharma et al. 2016 | (转引口径) | 决策树 | 98.60% | 早期树模型代表 |
| Charleonnan et al. 2016 | (转引口径) | SVM | 98.3%(灵敏度 0.99 / 特异度 0.98) | 早期 SVM 代表 |
| PLOS ONE 2024 | 10.1371/journal.pone.0295234 | SMOTE 平衡 + 常规分类器组合 | — | 其描述统计口径 bp 均值 76.175(vs 本条目实算 76.47,见 §2.2 双口径存照);医院口径写 Apollo Managiri |
注:标注"转引口径"的五篇,其数字系经由综述性文献的 related work 章节转引获得,本编辑部未逐篇复核原文,引用时请回溯原文确认;Qin/Chittora/ANFIS-PSO/PLOS 四篇为本编辑部直接核验(IEEE Xplore、DOI 解析或开放学术索引交叉确认)。
5.2 Qin et al. 2019:379+ 引用是怎么炼成的
Qin et al.(西南大学与九州大学合作)2019-12-30 发表于 IEEE Access,是这个数据集事实上的"门面论文"。方法侧做对了三件事:其一,用 KNN 插补处理缺失而不是 dropna(保住 400 例样本量);其二,六个算法同台(LR/KNN/NB/DT/RF/SVM)统一协议对比,而非单模型自夸;其三,报告十次仿真的平均而非单次运气。结果是 RF 99.75%、自构的 LR+RF 感知机集成 99.83%。它成为引用锚点的原因不难猜:数字高、协议看起来干净、开放获取。但请注意——即便协议如此规范,99.83% 这个数字仍应在 5.4 的"规则可分"背景下解读:它证明的是"在近乎可分的数据上,集成方法把边缘样本也磨平了",而不是"该模型能推广到真实临床"。
5.3 Chittora et al. 2021 与"预处理组合矩阵"
Chittora et al.(Manipal University Jaipur 等)2021-01-22 发表于 IEEE Access,把工程做成了网格:七个分类器(LR/KNN/NB/DT/RF/SVM 变体/DNN)× 六种特征工程组合(全特征、LASSO、RFE、SMOTE 及其组合),共 42 组配置的系统对照。标志性结论:LSVM-L2 在 SMOTE+全特征下 98.86%,SMOTE+LASSO 下 98.46%;DNN 最高 99.6%。这篇论文的价值在"矩阵"本身——读者可以直接读出每个预处理选择带来的边际变化,也正因如此它暴露了该数据集的另一个坑:SMOTE 应该只施加在训练折内部。若先把全集 SMOTE 再切分,合成样本会把训练集的信息"过继"给测试集,指标进一步虚高。阅读一切"SMOTE 后 99%+"的数字时,先问一句:SMOTE 放在哪一步?
5.4 数据学核心:notckd 类的"规则可分"结构
本编辑部对官方 data.csv 的实测给出了文献高准确率的最简解释。150 例 notckd 患者在下列列上无一例外:
| 列 | notckd 150 例的取值 | ckd 组对照(混合取值) |
|---|---|---|
| al 尿白蛋白 | 全部 0 | 0-5 六档均有分布 |
| su 尿糖 | 全部 0 | 0-5 六档均有分布 |
| htn 高血压 | 全部 no | yes 147 例(几乎全在 ckd 组) |
| dm 糖尿病 | 全部 no | yes 137 例 |
| cad 冠脉疾病 | 全部 no | yes 34 例 |
| appet 食欲 | 全部 good | poor 82 例 |
| pe 足部水肿 | 全部 no | yes 76 例 |
| ane 贫血 | 全部 no | yes 60 例 |
| rbc 尿红细胞 | 全部 normal | abnormal 47 例 |
| pc 尿脓细胞 | 全部 normal | abnormal 76 例 |
| sg 尿比重 | 只取 | 五档全用(1.005-1.020 集中在 ckd) |
十一列、每列都是完美或近乎完美的类边界。换个说法:一条 11 条件的合取规则——“al=0 且 su=0 且 htn=no 且 dm=no 且 cad=no 且 appet=good 且 pe=no 且 ane=no 且 rbc=normal 且 pc=normal 且 sg≥1.020”——大概率就能把 notckd 一网打尽(规则在 ckd 组内的误伤率需实测,但方向上成立)。任何能学到这条规则的模型——决策树几个结点就够——都会在这个数据集上拿 95%+ 的准确率。99% 是数据的属性,不是模型的属性。
这同时解释了三个文献现象:
- 单分割 100% 扎堆(5.1):随机测试集里几乎全是规则样本,满分轻松;
- 交叉验证后跌到 87-99%:每一折里总有若干"不守规则"的 ckd 患者被规则误判为 notckd——这些"难样本"决定了分数下限;
- 模型间差距很小:Qin 六算法、Chittora 七分类器的高分段密集分布在 98-99.8% 之间——平台期由数据决定,算法差异被压缩在最后 1 个百分点里。
5.5 基准使用守则(写给想在这份数据上发论文/交作业的你)
- 先报口径再报数字:分割方式(单分割/k 折)、随机种子数、SMOTE 位置、插补方法、是否 dropna——五要素缺一,数字无意义。
- 分层 k 折(k≥5)× 多种子重复是底线:报告均值±标准差;单分割 100% 只能说明你跑了 once。
- 别把高准确率当临床能力:本数据集的 notckd 规则可分结构(5.4)意味着它无法检验模型对"非典型 CKD"(如 al=0 的肾小管间质病)的识别力;向临床叙事过渡前请明确此局限。
- 对比文献时对齐口径:跟 Qin 的 99.83% 对比前,先确认你也做了 KNN 插补+十次仿真平均;跟 ANFIS-PSO 的 87% 对比前,确认那是 5 折 CV 口径。
- 报告类不平衡的完整指标:62.5%/37.5% 的不平衡不重,但准确率之外请给灵敏度/特异度/混淆矩阵——医疗场景里漏诊(ckd→notckd)与误诊代价不对称。
5.6 文献数字须回源核验:一次 wbcc 范围错误存照
本编辑部在交叉核对文献描述统计与官方 data.csv 实算时,捕获一例值得存照的错误:一篇发表于 PeerJ Computer Science 的基准论文在描述本数据集时,自报白细胞计数范围 “(2,200 to 4,800)”(尾注 14)——而本条目对官方 data.csv 的实测为 [2200, 26400]、均值 8406.12(§2.5)。4,800 与 26,400 相差五倍有余,最可能的解释是排版丢位(如 24,800 或 26,400 丢成 4,800)或作者使用了自行清洗的子集;同文其余特征的描述范围与实算一致,说明这是孤例而非系统性错误。
但孤例足以误导。任何读者若把"wbcc 上限约 4,800"当作数据画像,会把实测分布中约六成的正常值判为"异常偏高"——因为 4,800 连临床参考下限(5,000)都不到。这个案例的方法学教训有三条:
- 文献描述统计不可直接搬用:引用任何"数据集范围/均值"前,回源到官方文件实算一次(本条目附录 F 提供复算脚本);
- 跨文献数字打架时以官方文件为准:两条文献口径冲突不是"各有一理",通常一方存在排版或清洗口径问题——先复算,再裁决;
- 转引必须标注:本条目 §5.1 中五篇早期文献的数字即转引口径、已如实标注"未逐篇复核"——这是同一纪律的另一面。
5.7 两篇 IEEE Access 基准的确证档案与被引对照
§5.2/§5.3 叙述了两篇旗舰基准的方法;这里给出可直接核验的完整书目档案与被引对照(2026-09-29 口径):
| 项 | Qin et al. 2019 | Chittora et al. 2021 |
|---|---|---|
| DOI | 10.1109/ACCESS.2019.2963053 | 10.1109/ACCESS.2021.3053763 |
| 出处 | IEEE Access 卷 8,页 20991-21002 | IEEE Access 卷 9,页 17312-17334 |
| 出版日 | 2019-12-30 | 2021-01-22 |
| 机构 | 西南大学(重庆)×九州大学(日本) | Manipal University Jaipur 等 |
| 预处理 | KNN 插补(保 400 例样本量) | 七分类器×六种特征选择/SMOTE 组合矩阵(42 组配置) |
| 自报最佳 | RF 99.75%;LR+RF 感知机集成 99.83%(十次仿真平均) | DNN 99.6%;LSVM-L2+SMOTE 98.86%;LSVM-L2+LASSO+SMOTE 98.46% |
| Google Scholar 被引 | 379 | 378 |
| 贡献类型 | 协议干净的高分锚点(被引锚) | 预处理边际效应矩阵(工程参照) |
两篇被引几乎持平(379 vs 378),但贡献类型不同:Qin 的角色是"数字锚点"——后续论文需要一个可比的最高分时引用它;Chittora 的角色是"工程手册"——后续作者选择预处理组合时引用它。引用它们时应当说清引用的是哪一类贡献;只引一个 99.83% 或 99.6% 的数字而不提协议(KNN 插补、十次平均、SMOTE 位置),正是 §8.1 审稿人五问里第 4 问的典型失分场景。
§6 获取与许可:三通道、版本链与 DAIMS 评估
6.1 获取三通道(2026-09-29 实测全通)
| 通道 | URL | 实测状态 | 用途 |
|---|---|---|---|
| 官方页面 | https://archive.ics.uci.edu/dataset/336/chronic+kidney+disease |
HTTP 200(212 KB HTML 实抓) | 元数据、变量说明、引用格式、citation 面板 |
| API | https://archive.ics.uci.edu/api/dataset?id=336 |
HTTP 200(JSON 6,786 字节) | 自动化元数据拉取(含 data_url、creators、num_features 等) |
| 数据本体 | https://archive.ics.uci.edu/static/public/336/data.csv |
HTTP 200(45,092 字节) | 唯一官方机读格式,本条目一切实测的对象 |
下载包里的 zip(19,410 字节)解开后是 Chronic_Kidney_Disease.rar(18.8 KB)——官方页面自己也这么标;Linux/macOS 默认无 unrar,别纠缠,直接走 data.csv(坑 5)。
6.2 版本链与断代史
- 2015:数据集创建(API
year_of_dataset_creation: 2015);2015-07-02 捐赠 UCI(官方页口径)。 - 旧版布局时代(2015-2023):以
.arff(Weka 格式)与.csv分发,社区熟知的chronic_kidney_disease.arff/chronic_kidney_disease_full.arff属于这一代;大量教程的脏值传说(\t?型脏值"17 处"之说)源自这一代文件。 - 2023:UCI 平台改版,分配 DOI 10.24432/C5G020,旧版文件路径全部下线(实测 404)。
- 2024-03-04:元数据更新(API
last_updated字段口径),非数据内容变更。 - 现在:仅提供 data.csv。注意断代风险:你拿到的若是旧教程镜像的 ARFF 转换版,其行序、脏值、甚至列名可能与官方 data.csv 不一致——数字对不上时先查版本(坑 5)。
6.3 License:CC BY 4.0
UCI 官方口径 CC BY 4.0:允许商用、允许再分发与衍生、唯一义务是署名。对 AI-Ready 场景(模型训练、数据集混合、管线再分发)几乎没有摩擦点。署名实践按 UCI 官方引用格式(6.4)。无附加限制层;旧版衍生镜像(各大学课程页、Kaggle 镜像)的再分发许可随官方口径,但内容保真度自行验证。
6.4 引用格式(UCI 官方口径)
Rubini, L., Soundarapandian, P., & Eswaran, P. Chronic Kidney Disease [Dataset]. UCI Machine Learning Repository. https://doi.org/10.24432/C5G020 .
6.5 DAIMS AI-Ready 评估表(本编辑部评定,2026-09-29)
| 维度 | 得分 | 评语 |
|---|---|---|
| D — Documentation 文档完备度 | 3/5 | 有官方摘要、变量表、引用格式;但无伴生论文、标签判定标准未注、采样方式未载、医院城市三口径(坑 6) |
| A — Accessibility 可获取性 | 5/5 | CC BY 4.0 无注册门槛;官方页/API/data.csv 三通道全通;45 KB 单文件即取即用 |
| I — Interoperability 互操作性 | 4/5 | 标准 CSV、列名简短;扣分项:NaN 字面量需清洗(坑 3)、ckd\t/\tno 脏值(坑 1/坑 2)、等级列语义需人工对齐 |
| M — Metadata quality 元数据质量 | 2/5 | pcv 缺单位字段、bu/sod 类型标 Integer 实测含小数、feature_types 汇总失真(坑 9);API 与页面口径基本一致但粒度粗 |
| S — Sustainability 可持续性 | 4/5 | UCI 官方长期托管、DOI 固定、2024 年仍有维护动作;扣分项:旧版布局整体断代(坑 5),历史链接不可追溯 |
| 合计 | 18/25 | AI-Ready 定级:良好——获取零摩擦、清洗有地雷、元数据靠本条目补课 |
§7 生态位:教科书级小数据的江湖地位
7.1 在 UCI 系里的位置
CKD-UCI 与 Iris(1936)、Heart Disease(1988)、Pima Indians Diabetes(1990)并列 UCI 的"教科书四天王"级别存在——它们的共同特征:小样本、混合类型特征、二分类/多分类清晰、够简单到能在一节课里完整走完"加载-清洗-建模-评测"闭环。CKD-UCI 在其中的差异化生态位是**"缺失值处理+不平衡分类+特征工程"三合一**:Iris 无缺失、Pima 缺失伪装成 0、Heart Disease 缺失用 “?”,而 CKD-UCI 的 10.12% 显式缺失加脏值三连(坑 1-3),使它成为讲缺失工程时最合适的活体教材。
7.2 引用体量旁证
无官方伴生论文的数据集,引用体量挂在社区论文上:仅 Qin et al. 2019 一篇即 379+ 引用(2026-09 口径);以"chronic kidney disease dataset"为关键词的文献横跨 IEEE Access、Applied Soft Computing、BMC Nephrology、PLOS ONE 等刊,衍生文献总量估计以千计。Kaggle 上存在多个镜像版本(最热门镜像获数万次下载与数百个公开 notebook),教程生态(Medium/CSDN/GitHub notebook)中出现频率极高。
7.3 教学中的三个经典用法
- 缺失值工程课:10.12% 缺失 + 整块缺失结构(§3.3)→ 演示 dropna 的代价、插补策略对比、缺失指示列技巧;
- 不平衡与评测课:62.5%/37.5% + 规则可分结构(§5.4)→ 演示准确率失真、混淆矩阵、为什么"99% 但不临床";
- 数据清洗实战课:脏值三连 + 极端值四连(坑 1/2/3/7)→ 演示 value_counts 体检法、逐列 strip、医疗数据极端值的"逐例辩护"原则。
7.4 库外的近亲数据集
与 CKD-UCI 常被放在一起比较的库外数据:Pima Indians Diabetes(UCI 768 例、同样"小而脏"的代谢病表格)、Heart Disease(Cleveland 303 例、同样多指标组合判别)、Chronic Kidney Disease 的 Kaggle 衍生镜像(多含社区清洗版——口径漂移风险见坑 5)。库内直系与近邻见 §10。
7.5 四天王对比:一页看懂差异化生态位
| 维度 | CKD-UCI(本条目) | Iris (1936) | Pima Indians Diabetes (1990) | Heart Disease (1988, Cleveland) |
|---|---|---|---|---|
| 规模 | 400×25 | 150×5 | 768×9 | 303×14 |
| 任务 | 二分类(ckd/notckd) | 三分类(鸢尾种) | 二分类(糖尿病) | 二分类(心脏病) |
| 特征类型 | 11 数值 + 14 等级/二值 | 全数值 | 全数值 | 数值+类别混合 |
| 缺失 | 10.12% 显式 NaN | 无 | 缺失伪装成 0(隐形) | “?” 显式标记(轻度) |
| 脏值 | 3 处(含制表符) | 无 | 无 | 无 |
| 教学卖点 | 缺失工程+不平衡+基准通胀 | 纯入门第一课 | 隐形缺失与域偏移 | 多指标组合判别 |
| 著名陷阱 | 99% 基准通胀(规则可分,§5.4) | 一类线性可分 | 0 值当真值 | 多仓库版本口径混杂 |
注:Iris / Pima / Heart Disease 三列的规模与特征类型为社区通用口径,本条目未逐项复测,引用请以各自官方页为准;本表仅用于生态位对照。四份数据的对照价值在于:"缺失"这一维度上四者恰好构成四级梯度(无缺失 → 隐形缺失 → 轻度显式缺失 → 重度显式缺失)——按这个梯度组织系列课,正好把缺失值工程从浅到深讲透,CKD-UCI 永远是压轴的那份。
§8 方法学批判指南:如何审阅一篇用 CKD-UCI 的论文
8.1 审稿人五问
- n 是多少? 原始 400、dropna 后 158、还是插补后 400——n 变了,人群就变了(坑 4)。凡未报告 n 的,一律按最可疑口径质疑。
- SMOTE 放在哪一步? 切分前 SMOTE = 标签泄漏(5.3);正确做法是只对每个训练折内部施加。论文未说明 SMOTE 位置时,99%+ 数字自动降权。
- 分割协议是什么? 单分割 100% vs 5 折 CV 87% 的 13 个百分点落差(坑 8)意味着:没有交叉验证与多种子的论文,不具备对话资格。
- 对比对象口径一致吗? 跟 99.83%(Qin,KNN 插补+十次平均)比,还是跟 87%(ANFIS-PSO,5 折 CV)比?不同口径的差距不是模型优劣,是协议差异。
- 临床叙事越界了吗? "该模型可用于 CKD 筛查"与"该模型在 400 例近乎规则可分的样本上准确率 99%"之间隔着一整条推广性鸿沟(8.3)。
8.2 数据规模的现实边界
n=400(其中 notckd 仅 150)意味着什么:单折测试集约 80 例,其中 notckd 约 30 例——测试集里 notckd 侧每错 1 例就是 3 个百分点的波动;按类分层后做亚组分析(老年 vs 儿科、糖尿病 vs 非糖尿病)几乎必然落入稀疏格。因此本数据集适合支撑的结论类型是:方法学演示、教学、原型验证(proof of concept)、插补/特征工程方法的相对比较;不适合支撑的结论类型是:临床性能声明、人群流行率推断、亚组差异检验、对真实患病率的任何外推。
8.3 从表格基准到临床落地的距离
三道鸿沟,一道比一道宽。第一道是人群:本样本来自单一医院集团、约两个月采集窗、抽样方式未载——对其他地区、其他就诊结构的人群无代表性证据。第二道是标签:ckd/notckd 判定标准不可追溯(§1 Q7),真实临床 CKD 诊断依赖 eGFR 与病程(K trace 需 ≥3 个月的证据),而本数据集无 eGFR、无时间维度、无分期——模型学的是"这批医生的判断",不是 CKD 本身。第三道是特征可得性:现实筛查场景未必有 24 项全检,而本数据集恰恰在"检验齐全"与"只有问诊"两种场景间没有做任何分层——一个在 wbcc/rbcc 缺失 30% 的数据上训练的模型,如何面对只做了问诊的患者?这些不是数据集的"缺陷",而是它作为教学样本的边界;越界使用才是缺陷。
§9 使用指南:三类读者的行动清单
INFOBOX 与 §1 回答"这是什么",本节回答"我该从哪一步开始"。按三类典型读者给出可执行清单;所有步骤都指向本条目已有的节与附录,不引入外部依赖。
9.1 教学者:把 45 分钟课拆成四个演示包
| 时间 | 演示包 | 用到的数据事实 | 条目锚点 |
|---|---|---|---|
| 0-10 min | 加载与体检 | value_counts 后 class 出现 3 个"类别"(ckd 248 / ckd\t 2 / notckd 150) |
坑 1、附录 A |
| 10-25 min | 缺失工程 | dropna 400→158;rbc 缺 38%;缺失模式整块化 | §3.1-§3.3、坑 4 |
| 25-40 min | 建模与协议 | 单分割 100% vs 5 折 87.00%±3.59%(ANFIS-PSO 2026 同文两口径) | 坑 8、§5.1 |
| 40-45 min | 反思讨论 | notckd 十列规则可分 → “99% 是数据的属性,不是模型的属性” | §5.4 |
备课三件套:附录 B(清洗要点代码)、附录 F(核心数字复算脚本,课前跑一遍确认你的 data.csv 与本条目实测同源)、附录 G(十大反模式,可作课后测验题库)。
9.2 方法研究者:五步协议(缺失/插补/不平衡研究适用)
- 冻结口径:跑附录 F 脚本,逐条断言通过后再开始——确保你的 data.csv 与本条目实测同源(45,092 字节、1012 缺失格、158 完整行、三处脏值行号、四连极端值)。
- 先做缺失机制分析再做插补:对缺失模式聚类(§3.3 的"整块缺失"结构),报告缺失指示变量与 class 的相关;这一步的结论决定插补策略的合法性(§3.4)。
- 至少三臂对比:朴素插补 / 模型插补(KNN、MICE)/ 原生 NaN 通道(XGBoost、LightGBM),统一评测协议(第 4 步),并对插补前后分布做对照(§3.5)。
- 严格协议:分层 5 折 × ≥10 随机种子;插补、SMOTE、特征选择全部只进训练折(用 Pipeline 实现);报告均值±标准差与每折混淆矩阵(坑 8、§5.3)。
- 结论边界声明:按 §8.2 的"适合/不适合"清单声明你的结论类型;涉及临床叙事时逐条对照 §8.3 的三道鸿沟。
9.3 临床信息学入门者:三遍读法
- 第一遍(15 分钟):INFOBOX → §0 导读 → §1 十问十答。建立"400 行表格、五组特征、10.12% 缺失、62.5%/37.5% 类分布"的全景。
- 第二遍(30 分钟):§2.9 临床参考区间 → §3 缺失解剖 → §4 九坑全景。理解每个数字背后的医学刻度与每颗地雷的精确位置。
- 第三遍(45 分钟):§5.4 规则可分 → §8 方法学批判 → FAQ。理解"为什么 99% 不可信",以及如何审一篇用了这份数据的论文。
- 延伸路径:库内互链见 §10——去 mimic-iv-clinical-database (4) 与 mimic-iii (106) 看同一批化验指标(肌酐/尿素/电解质/血常规)在真实 EHR 规模下的形态,对照本集"单时点快照"的方法学局限(§8.3)。
9.4 数据工程师:入库前五道门禁
- strip 全表 object 列(军规 1),断言 class 仅剩 {ckd, notckd}、dm 仅剩 {yes, no};
- 显式声明 “NaN” 字面量为缺失(军规 3)——非 pandas 工具链(SQL/BI/自研解析器)必做;
- 极端值四连(pot 47 / sc 76 / bgr 22 / sod 4.5)逐例处置并留痕(军规 7);
- 入库后回读断言:行数 400、列数 25、缺失率 10.12%——与附录 F 同源;
- 数据目录标注:“UCI ID 336,data.csv 口径,CC BY 4.0,引用格式见 §6.4”。
§10 库内互链:在千方病案医数集里的位置
以下 rid 均为 2026-09-29 库内实查结果。
| 库内条目 | rid | 互链类型 | 互链理由 |
|---|---|---|---|
| parkinsons-voice-uci | 444 | UCI 直系兄弟 | 同为 UCI 捐赠型教学级医疗小样本基准(语音学任务);同为"捐赠者直捐、无伴生论文"模式;对比"小样本医疗基准的两种形态"(表格 vs 信号) |
| drug-reviews-uci | 485 | UCI 直系兄弟 | 同为 UCI 捐赠型医疗数据(患者用药评价文本+评分);对比"UCI 医疗数据的脏值与清洗负担"议题 |
| mimic-iv-clinical-database | 4 | 规模两极对照 | EHR 化验检验库(数十万住院 vs 本集 400 例);同一批检验指标(肌酐/尿素/电解质/血常规)在两种规模下的建模形态 |
| mimic-iii | 106 | 规模两极对照 | 同上;且 mimic 系的"单元/时序"结构可反衬本集"单时点快照"的方法学局限(8.3) |
| stroke-scale-mimic-iii | 596 | 方法学近邻 | 临床表格变量+临床量表评分的建模任务;缺失值处理与"临床判定 vs 化验数值"双记录结构(ane vs hemo)两边同构 |
建议的互链叙事:UCI 教学系(444/485,“小数据的纪律”)、EHR 规模对照(4/106,“同一批化验指标的两极”)、方法学议题(缺失值/不平衡/基准通胀,与本条目 §3/§4/§5 三节互文)。
§11 避坑清单:十条军规速查
| 序 | 军规 | 触发的坑 |
|---|---|---|
| 1 | 读入后全表 str.strip(),第一件事 |
坑 1(ckd\t)、坑 2(\tno) |
| 2 | value_counts() 逐列体检,类别数对不上表就停 |
坑 1、坑 2、坑 3 |
| 3 | 确认 “NaN” 字面量被你的工具链识别为缺失 | 坑 3 |
| 4 | 永远报告 dropna 前后的 n 与类别分布 | 坑 4 |
| 5 | 下载认准 static/public/336/data.csv,镜像内容先 diff 再用 |
坑 5 |
| 6 | 医院城市写"泰米尔纳德邦",城市三口径只做存照 | 坑 6 |
| 7 | 极端值逐例辩护:不可能值按疑错处理、罕见可能值保留,处理过程逐值记录 | 坑 7 |
| 8 | 分层 k 折(k≥5)× 多随机种子,报均值±标准差 | 坑 8 |
| 9 | SMOTE 只进训练折;插补只进训练折 | 坑 8、§5.3 |
| 10 | 属性数写"24 特征+1 标签";等级列(sg/al/su)按序数处理 | 坑 9 |
§12 总结
Chronic Kidney Disease (UCI) 是 400 行代码都嫌短的表格数据集,却是机器学习医学应用的一面高清镜子。它的"好"干净利落:CC BY 4.0 零摩擦获取、45 KB 即取即用、24 个特征横跨五组临床检查体系、类别与任务定义清晰。它的"坏"也干净利落:10.12% 的非随机缺失、仅 39.5% 的完整行、脏值三连、四个疑似错位的极端值、以及一个官方从未解释过的标签黑箱。而它的"最深"在于:notckd 类近乎规则可分的结构,让它成了"基准通胀"现象最诚实的标本——在这里,99% 是数据的属性,不是模型的属性。
本编辑部定级:AI-Ready 良好(DAIMS 18/25,§6.5 逐维详注见附录 M)。教学与基准方法学研究的一等公民;临床叙事与真实世界推断的禁区。
三句临别赠言:给教学者——§9.1 的四个演示包,每一个都能在一节课内引爆一次"原来如此";给研究者——先跑附录 F 再写第一行插补代码,口径冻结是方法学研究的第一美德;给临床信息学入门者——把 §2.9 的三个警示框贴在显示器边上,比任何长文都管用。
FAQ:三十八个高频问题
F1:我可以用这个数据集训练一个真的给医院用的 CKD 诊断模型吗?
不可以把它当作临床就绪证据。标签判定标准不可追溯、人群单一医院、无 eGFR 与时间维度、无分期信息——它适合教学与原型验证,临床落地需要前瞻性、多中心、标签口径明确的数据(对比库内 mimic-iv-clinical-database (4) 的 EHR 路径)。
F2:我该 dropna 吗?
默认不要。dropna 后只剩 158 例(39.5%),且被删行非随机(§3.3)。优先用缺失指示列或树模型原生 NaN 通道;若必须 dropna,报告前后 n 与分布对照(坑 4)。
F3:为什么我跑出来只有 85%,论文里都是 99%?
先查四件事:是否 dropna 掉了样本、是否用了分层 k 折(论文的单分割分数普遍虚高)、SMOTE 放在哪一步、极端值是否处理过。如果你的 85% 是认真 5 折 CV 的结果,它比论文里的单分割 100% 更值得信任(坑 8、§5.4)。
F4:SMOTE 到底放在哪一步?
只放在每个训练折内部:先切分,再对训练折 SMOTE,测试折保持原分布。先对全集 SMOTE 再切分会让合成样本"过继"信息给测试集,属于标签泄漏(§5.3)。
F5:这份数据有性别列吗?
没有。UCI demographics 只登记 Age。任何论文里的"男女比例"叙述都是无源之水。
F6:有儿童患者吗?
有。age 最小 2 岁、最大 90 岁(实测 n=391);data.csv 行 188 是 8 岁患儿(也是 dm 脏值 \tno 的所在行,坑 2)。做成人研究时按年龄标准剔除,别当异常值丢。
F7:al 和 su 的 0-5 是什么单位?
不是单位,是等级(ordinal):0=无,5=最重。al 是尿白蛋白等级、su 是尿糖等级。建模按序数处理,别当连续变量。
F8:pcv 的单位是什么?
UCI API 没有给 pcv 单位字段(24 列中唯一,坑 9)。临床惯例 PCV(红细胞压积)以百分比报告,实测范围 [9, 54] 与百分比口径吻合。使用时自行注明"按 % 解读"。
F9:哪个单特征判别力最强?
血清肌酐 sc:ckd 组均值 4.41 vs notckd 组 0.87(§2.8),且它是 eGFR 的输入变量、临床意义直接。但注意 max 76 疑似小数点错位(坑 7),用前先处理。
F10:能做 CKD 分期任务吗?
不能。标签只有 ckd/notckd 二值,无 1-5 期信息,官方也未提供 eGFR 或肌酐清除率列。分期研究请转向 EHR 类数据(库内 mimic-iii (106))。
F11:旧版 .arff 和现在的 data.csv 有什么区别?
旧版是 Weka ARFF 格式,2023 平台改版后路径全部 404;社区教程传说的 \t? 型脏值("17 处"之说)属于旧版文件,现已无法实证。官方现仅提供 data.csv,本条目一切实测以它为准(坑 5、附录 D 存照)。
F12:引用时的 DOI 是什么?
DOI 10.24432/C5G020(2023 年平台改版后分配)。完整引用格式见 §6.4。
进阶问题(F13-F38,按主题分五组)
组 A:数据本体与口径
F13:为什么 45 KB 的数据集值得一条百科条目?
体积小,方法学密度高。三个理由:其一,它是缺失工程的完备标本——10.12% 缺失、整块缺失结构、三处脏值、字面量 “NaN”,几乎每个缺失值议题都能在它身上演示;其二,它是基准通胀的活体样本——同一篇论文里单分割 100% 与 5 折 CV 87% 并存(坑 8),“99% 是数据的属性"这句话在别的数据集上要论证半天,在这里一眼看穿;其三,CC BY 4.0 零摩擦获取使它成为公共讨论的"地板”——人人拿得到同一份文件,数字对不上就能当面对质。
F14:data.csv 的行号怎么数?
本条目行号一律为 pandas read_csv 后的 DataFrame 0 基索引(数据行序号,不含表头行):“行 37” 是第 38 条数据记录,对应 df.iloc[37],对应文本文件的第 39 物理行。跨文献对照行号时先对齐口径——"0 基不含表头 / 1 基不含表头 / 含表头"三种口径各差一位,是行号引用混乱的根源(附录 C)。
F15:有患者 ID 吗?隐私上要注意什么?
没有 ID、姓名、性别、日期列,天然低再识别风险。但"CKD 诊断 + 特定检验组合"在小人群下仍有重识别可能,CC BY 4.0 许可不豁免机构伦理评估义务——再分发或公开演示前按你所在机构的流程过一遍。
F16:同一列会不会有多种编码形态?
官方 data.csv 的 rbc/pc 列实测只有 {normal, abnormal} 两种取值(NaN 除外),没有传闻中的 1/0 数值形态混录(本编辑部逐值实测;早年间社区教程描述的混合编码属于旧版 ARFF 文件,已断代无法实证,见坑 5)。清洗时仍建议对全部 object 列做取值集合断言,防止镜像文件引入形态混杂。
F17:sg 为什么只有五档?
官方按 Categorical 登记,实测 1.005/1.010/1.015/1.020/1.025 五档(计数 7/84/75/106/81,NaN 47)。对应比重计读数的固定档位习惯与两位小数的存储精度。建模按序数处理(§2.3、§2.9 警示框二)。
F18:bu 和 BUN 是一回事吗?
不是。bu=血尿素(blood urea);BUN=血尿素氮 ≈ 尿素 × 0.467,换算回去尿素 ≈ BUN × 2.14。临床"BUN 正常 7-20 mg/dL"翻译到本数据集 bu 口径约为 15-40。大量教程把 bu 直接当 BUN 套 7-20 区间,会把参考上限压低一半以上。详见 §2.9 警示框一。
组 B:临床语义
F19:血清肌酐多少算异常?
男 0.6-1.3 / 女 0.5-1.2 mg/dL(三源口径,尾注 11-12);本数据集 ckd 组均值 4.41 已远超上限,最强单变量(§2.8)。另注意:主流 eGFR 公式(CKD-EPI 等)需要性别输入,本数据集无性别列,读者无法从 sc 自行复算 eGFR。
F20:什么是等渗尿?和 sg 列什么关系?
尿比重固定于 1.010±0.003 的"等渗尿"提示肾浓缩与稀释功能严重受损。ckd 组 sg 向 1.005-1.015 低档集中,与该临床画像吻合;notckd 组只取 1.020/1.025 两档(§5.4)。
F21:al 的 0-5 等级和 KDIGO 的 ACR 分级是一回事吗?
不是。al 是 0-5 半定量等级;ACR 是 mg/g 定量体系(A1 <30 / A2 30-300 / A3 >300)。二者不可换算,把"al=3"写成"A3 期"是审稿中真实出现过的错误(§2.9 警示框三)。
F22:KDIGO 的 CGA 分期是什么?这份数据能做分期吗?
CGA 三轴=病因(Cause)+GFR 分期(G1 ≥90 / G2 60-89 / G3a 45-59 / G3b 30-44 / G4 15-29 / G5 <15 mL/min/1.73m²)+白蛋白尿(A1/A2/A3),KDIGO 2024 官方口径。本数据集无 eGFR 列、无病程时间维度、无 ACR 定量——无法映射,只能做"疑似 CKD vs 非 CKD"二分类(§2.9 背景框)。
F23:hemo/pcv/rbcc 三个贫血指标什么关系?
同一贫血轴的三种测量:hemo 血红蛋白浓度(g/dL)、pcv 红细胞压积(%,经验上≈hemo×3)、rbcc 红细胞计数(百万/µL)。三者强共线,线性模型慎同喂(§2.5)。ane 是问诊判定的定性记录,与三者的"定量"侧构成双记录结构(§2.6)。
F24:wbcc 的正常范围是多少?文献里的 4,800 是怎么回事?
临床参考 5000-10000/mm³;官方 data.csv 实测范围 [2200, 26400]、均值 8406.12。有论文自报 “(2,200 to 4,800)”,与实算相差五倍,疑排版丢位(§5.6 存照)——文献描述统计必须回源核验。
组 C:清洗实操
F25:strip 之后还有哪些体检动作?
逐列 dtype 与取值集合复核(军规 2):object 列的取值集合与 §2.1 表逐列对照;数值列的小数/整数口径核对(bu 实测含 1.5、sod 实测含 4.5,而 API 标 Integer,坑 9);等级列档位完整性(sg 五档、al/su 0-5)。
F26:极端值应该删掉还是保留?
按坑 7 原则分两类:违反生理底线的(pot 47、sod 4.5、bgr 22——心搏骤停阈值与不可存活值)按疑错处置(置缺失并留痕);罕见但可能的(sc 10+、bu 391)保留并做稳健变换。逐例记录理由,禁止"见大数就删"——医疗数据里极端值常常是病情本身。
F27:缺失指示列怎么做?
df.isna().astype(int) 后加 _missing 后缀加回特征矩阵;或直接用 XGBoost/LightGBM 的原生 NaN 通道让模型自学缺失含义(§3.5 第 4 派)。指示列本身也要纳入 §5.5 的口径报告。
F28:均值插补还有什么坑?
其一,SimpleImputer 必须放进 Pipeline 只在训练折 fit——全表 fit 是泄漏(§5.3);其二,38% 缺失的 rbc 列会被插成一根常数柱,方差被系统性低估(§3.5);其三,插补后必须做分布对照(F29)。
F29:怎么验证清洗没有改变人群画像?
清洗前后各跑一遍附录 F 断言脚本 + 逐列均值±标准差对照表;类别分布、缺失率、极端值处置清单三项有任何漂移即回查。附录 F 脚本可直接跑两遍对比输出。
组 D:建模与评测
F30:规则可分结构怎么自己验证?
两条路:其一,对 notckd 150 例断言十列规则(附录 F 已含此断言——150 例在 al/su/htn/dm/cad/appet/pe/ane/rbc/pc 十列上零违反);其二,限深 3-4 层训练一棵决策树,检查学到的分裂是否就是 §5.4 的合取规则。量化补充:ckd 组 250 例中十列规则零违反的有 17 例(含行 188 患儿),其中 14 例靠 sg 低档(1.005-1.015)与 notckd 区分开。
F31:报告哪些指标才够专业?
准确率之外:灵敏度/特异度、按类精确率/召回/F1、混淆矩阵、ROC-AUC;分层 5 折×≥10 种子的均值±标准差;n 与清洗口径(400 / 158 / 插补后)必须随行。医疗场景里漏诊(ckd→notckd)与误诊代价不对称,混淆矩阵不可省(§5.5)。
F32:深度学习在这个数据集上有意义吗?
样本量上无优势:Chittora DNN 99.6% 与 RF/LSVM 98-99% 的高分密集带差距在种子噪声内(§5.7);400 例表格数据不足以支撑深度网络的容量优势。意义限于框架教学;用本数据集论证"深度学习更强"是反模式(附录 G-9)。
F33:怎么切分才不泄漏?
先切分;插补、SMOTE、特征选择只进训练折;分层保持类比;固定 ≥10 种子报告分布。口诀:任何跨训练/测试的信息流动都按泄漏处理(§5.3、坑 8)。切分前 strip 与极端值处置属于"数据卫生"可以全表做——但基于全表统计的变换(标准化、目标编码)不行。
F34:和 Pima、Heart Disease 比,教学上怎么选?
纯入门选 Iris;讲缺失工程选 CKD-UCI(显式 NaN + 整块缺失 + 脏值三连,教材最完备);讲代谢病叙事选 Pima(缺失伪装成 0 的另一类典型);讲多指标组合判别选 Heart Disease。CKD-UCI 的差异化生态位="缺失+不平衡+特征工程"三合一(§7.1)。
组 E:获取与引用
F35:想引用被引最高的基准论文怎么写?
Qin, C. et al., IEEE Access 8:20991-21002, 2019-12-30, DOI 10.1109/ACCESS.2019.2963053。引用时注明它是社区基准、非官方伴生(本数据集无官方论文,API intro_paper: null),并在对比数字前写清其协议(KNN 插补 + 十次仿真平均)。
F36:能把 data.csv 重新分发吗?
CC BY 4.0 允许,义务仅署名(§6.3)。再分发时附 UCI 官方引用(§6.4)并注明你做过的任何清洗——清洗版与原样的差异必须在数据卡里写清,否则复现者会在你的口径上浪费半天(坑 5 的镜像教训)。
F37:有官方 train/test 划分吗?
没有。官方只分发 data.csv 一个文件;你见到的任何"官方划分"都是社区自制。引用对比时须注明划分协议,无法确认协议的数字不具备对话资格(§5.0、§5.5)。
F38:有"画像像健康人却标 ckd"的样本吗?
有,且可以精确量化:ckd 组 250 例中有 17 例在十列规则上零违反(df 索引 6、64、102、105、110、117、119、131、174、182、188、192、209、211、216、218、220),其中 3 例 sg 也落在 notckd 的 1.020 档——仅凭十列+sg 规则会被判为 notckd。它们是"标签黑箱"(附录 E 第 1 条)与 §5.4 "难样本"的真实实体:要么标签判定用了本数据集之外的信息(如 eGFR 病程),要么存在误标——官方未载,无法裁决。正确姿势是把这 17 个索引存照引用,而不是替官方编一个解释。
F39:想复现 Qin 2019 的 99.83%,具体步骤?
先说结论:不可完全复原——论文未公开切分种子、KNN 插补的 k 值等全部细节。最小可信复现路径:官方 data.csv → strip 清洗 → KNN 插补 → 分层 5 折 × 10 种子 → RF 与你关心的模型同台 → 报告自己的分布。你的分布大概率落在 97-99.5% 区间,与 99.83% 同层即可视为协议一致;逐点对齐单次数字没有意义(§5.5)。
F40:审稿人问"为什么用这么小的数据集"怎么回应?
三层回应框架:其一,定位——方法学演示与教学,非临床性能声明(§8.2);其二,理由——规则可分结构使它成为基准通胀的标准测试床,附录 G 十大反模式都能在它身上复现,这是 400 例能买到的独特方法论价值;其三,补强——承认单一局限,补一组大规模 EHR 对照实验(如库内 mimic-iv-clinical-database (4)),展示同一方法在真实规模下的行为差异。
F41:能自己采数据把它扩充吗?
可以,但别混。新数据必须自带标签口径说明(否则重演"标签黑箱");合并产物是"新数据集"而非"CKD-UCI 扩充版"——两个来源的采样机制、检验方法、标签标准都不同,混采会让 10.12% 缺失结构的分析失效。正确姿势:分开发布、各自引用,实验部分做"CKD-UCI 单独 / 新集单独 / 合并"三臂报告(F36 的数据卡纪律同样适用于新集)。
F42:儿科样本怎么处理?
实测 age<18 有 19 例(2-17 岁),age≥18 共 372 例,另有 9 例年龄缺失。成人研究按 df[df.age>=18] 剔除即可,剔除后重跑附录 F 断言并报告前后分布;把 8 岁患儿当"异常值"丢是语义错误——他不是错值,是儿科患者(FAQ F6、坑 2)。
F43:为什么不直接用 t 检验看组间差异?
可以看(§2.8 就是分组均值),但三件事让它不稳:极端值(坑 7)破坏正态与方差齐性;等级列(sg/al/su)不是连续变量;组间差异大 ≠ 单列可判——判别力来自列的组合(§5.4)。更稳的组合:Mann-Whitney U + 效应量(如 Cliff’s delta),等级列用秩检验。
F44:三位创建者的机构归属有官方说法吗?
没有。UCI 页面与 API 都只给姓名(L. Rubini、P. Soundarapandian、P. Eswaran),机构归属官方未载(附录 E-3);文献转述一般认为 Soundarapandian 对应 Apollo 医院方,但无官方确认。引用时照 §6.4 官方格式写姓名即可,机构归属留空。
事实清单:三十八条硬事实速查
- UCI Machine Learning Repository 数据集 ID 336;slug chronic-kidney-disease-uci。
- DOI 10.24432/C5G020;license CC BY 4.0。
- 官方 data.csv 45,092 字节,401 行 = 表头 + 400 数据行,25 列。
- 24 特征 + 1 标签;UCI API
num_features: 24;论文"25 attributes"口径含 class。 - 捐赠者:L. Rubini、P. Soundarapandian、P. Eswaran(API creators 原样)。
- 捐赠日 2015-07-02;创建年 2015;元数据最后更新 2024-03-04。
- 采集医院 Apollo Hospitals(印度泰米尔纳德邦);城市三口径:Managiri / Manamadurai / Karaikudi(maybe)。
- 官方摘要原文称采集期 “nearly 2 months of period”。
- 无官方伴生论文(API
intro_paper: null);无官方划分与榜单。 - 类别原样:ckd 248 +
ckd\t2 + notckd 150;归一 250/150(62.5%/37.5%)。 - 脏标签行:data.csv 行 37 与行 230(class=
ckd\t)。 - dm 脏值行:行 188(dm=
\tno,age=8 患儿,hemo 12.2)。 - 全表缺失 1012/10000 格 = 10.12%;缺失以字面量字符串 “NaN” 表示。
- 24 个特征列全部存在缺失;缺失冠军 rbc 152 格(38.0%)。
- 零缺失完整行仅 158 例(39.5%);重复行 0。
- 数值列 11 个、字符串/等级列 14 个;sg 实测仅 5 个离散值(1.005-1.025)。
- al 等级计数:0×199 / 1×44 / 2×43 / 3×43 / 4×24 / 5×1(NaN 46)。
- su 等级计数:0×290 / 1×13 / 2×18 / 3×14 / 4×13 / 5×3(NaN 49)。
- age 实测 51.48±17.17,范围 [2, 90],n=391。
- bp 实测 76.47±13.68,范围 [50, 180];PLOS ONE 2024 论文口径 76.175(双口径存照)。
- sc 实测 3.07±5.74,范围 [0.4, 76];76 疑似 7.6 错位。
- pot 实测 4.63±3.19,范围 [2.5, 47];47 疑似 4.7 错位。
- bgr 范围 [22, 490];22 为生理不可存活值,疑漏位。
- pcv 是 UCI API 变量表中唯一无 units 字段的列。
- ckd vs notckd 分组均值:sc 4.41/0.87;hemo 10.65/15.19;pcv 32.94/46.34;bgr 175.42/107.72。
- 150 例 notckd 在 al/su/htn/dm/cad/appet/pe/ane/rbc/pc 十列上取值完全规则,sg 只取 {1.020, 1.025}——任务近乎规则可分。
- 社区基准:Qin et al. 2019 RF 99.75%/集成 99.83%(IEEE Access 8:20991-21002,被引 379+);Chittora et al. 2021 DNN 99.6%(IEEE Access 9:17312-17334)。
- ANFIS-PSO 2026:单分割 100% vs 5 折 CV 87.00%±3.59%(DOI 10.62762/bish.2026.692582)。
- 旧版 .arff 路径全 404(2023 平台改版);官方 zip 内为
Chronic_Kidney_Disease.rar(18.8 KB)。 - UCI 生态位:与 Iris / Heart Disease / Pima 同级的教学四天王;"缺失值+不平衡+特征工程"三合一教学样本。
- 临床参考区间(三源口径,尾注 11-12):sc 男 0.6-1.3 / 女 0.5-1.2 mg/dL;sod 135-145、pot 3.5-5.0 mEq/L;hemo 约 12-17 g/dL;wbcc 5000-10000/mm³;rbcc 约 4.0-6.0 millions/cmm。
- bu≠BUN:UCI 官方标 bu 为 blood urea;BUN ≈ 尿素 × 0.467(尿素 = BUN × 2.14);临床 BUN 7-20 mg/dL → bu 口径约 15-40(§2.9 警示框一)。
- KDIGO 2024 CGA 分期:G1 ≥90 / G2 60-89 / G3a 45-59 / G3b 30-44 / G4 15-29 / G5 <15(mL/min/1.73m²);A1 <30 / A2 30-300 / A3 >300 mg/g;本数据集无 eGFR/病程/ACR,不可映射。
- 规则可分量化:notckd 150 例十列规则零违反;ckd 250 例中零违反 17 例(df 索引 6/64/102/105/110/117/119/131/174/182/188/192/209/211/216/218/220),其中 14 例靠 sg 低档区分、3 例 sg=1.020 与 notckd 档重叠。
- PeerJ CS 基准论文自报 wbcc “(2,200 to 4,800)” vs 实测 [2200, 26400]——文献描述统计须回源核验(§5.6)。
- 行号口径:本条目行号 = pandas DataFrame 0 基索引(不含表头行);脏值三行 df 索引 37/230/188 对应文本物理行 39/232/190(1 基)。
- 附录 A 三行存照为 2026-09-29 逐字段实测口径;早期草稿对 df 索引 37 的"健康画像"描述有误,已更正并存照(附录 A 更正声明)。
- 附录 F 复算脚本全部断言经本编辑部在官方文件(45,092 字节)上实测跑通(2026-09-29)。
术语表
| 术语 | 释义 |
|---|---|
| CKD(慢性肾病) | 肾脏结构或功能异常持续 ≥3 个月的临床综合征;本数据集标签 ckd 的医学对象 |
| eGFR | 估算肾小球滤过率,由血清肌酐等推算的肾功能核心指标;本数据集未提供,标签判定标准不可追溯 |
| 血清肌酐(sc) | 肌肉代谢产物,经肾排泄;血中浓度升高提示肾滤过功能下降,本数据集最强单变量 |
| 血尿素(bu) | 蛋白质代谢终产物;升高见于肾功能失代偿、高分解代谢等 |
| PCV / pcv(红细胞压积) | 红细胞占全血容积百分比;UCI API 未给单位字段,临床惯例为 % |
| 尿比重(sg) | 尿液浓缩能力指标;实测仅 1.005-1.025 五档离散值 |
| 蛋白尿 / al | 尿白蛋白等级 0-5;CKD 诊断与分期的核心证据之一 |
| 脓细胞(pc) | 尿中变性白细胞的形态学描述,normal/abnormal 二值 |
| MNAR | 非随机缺失(缺失依赖于值本身);本数据集检验列缺失的嫌疑机制 |
| SMOTE | 少数类过合成技术;须只在训练折内使用,否则构成标签泄漏 |
| 规则可分 | 两类样本可被有限条合取规则完全区分的数据结构;notckd 类在本数据集近于此 |
| 基准通胀 | 单分割/泄漏协议下评测分数系统性高于严格协议的现象;本数据集文献的 100% vs 87% 落差即标本 |
| k 折交叉验证 | 数据分 k 份轮换测试的评测协议;报告均值±标准差方为严格口径 |
| ARFF | Weka 使用的属性-关系文件格式;本数据集旧版分发格式,已断代 |
| UCI ML Repository | 加州大学欧文分校维护的公开机器学习数据集库,本数据集的官方托管方 |
| DOI | 数字对象唯一标识符;本数据集 10.24432/C5G020 |
| CC BY 4.0 | 知识共享署名 4.0 许可:允许商用与衍生,义务仅署名 |
| DAIMS | 本编辑部 AI-Ready 五维评估体系:Documentation/Accessibility/Interoperability/Metadata/Sustainability |
| 归一口径 | 对原始脏值做 strip 清洗后的统计口径(ckd 250/notckd 150),与"原样口径"(248+2+150)相对 |
| 双口径存照 | 同一事实存在两个可信来源口径时,条目同时记录两者并注明出处与取舍的编辑实践 |
| BUN / 血尿素氮 | blood urea nitrogen;≈血尿素 × 0.467,临床参考 7-20 mg/dL;与本数据集 bu 列差一换算(§2.9 警示框一) |
| ACR(尿白蛋白/肌酐比值) | albumin-to-creatinine ratio,KDIGO 白蛋白尿分级(A1/A2/A3)的定量基础;与本数据集 al 等级不可互换 |
| CGA 分期 | KDIGO 的 CKD 三轴分期:病因 Cause + GFR 分期 G1-G5 + 白蛋白尿 A1-A3(KDIGO 2024 口径) |
| 等渗尿 | isosthenuria;尿比重固定 1.010±0.003,提示肾浓缩稀释功能严重受损(§2.9) |
| 缺失模式 | missingness pattern;一行内缺失列的组合,本数据集实测 105 种(附录 L) |
| 数据卡 | data card;再分发数据集时说明来源/改动/指纹/已知问题的随行文档(附录 O.2) |
| 单分割 | single train/test split;一次随机切分的弱评测协议,本数据集上易得虚高满分(坑 8) |
| 分层切分 | stratified split;按类别比例分配折内样本的切分方式,不平衡数据评测的底线 |
附录 A:三处脏值行全字段存照(官方 data.csv;行号 = DataFrame 0 基索引,不含表头行)
df 索引 37(class 脏值第一例):age=72, bp=80, sg=NaN, al=NaN, su=NaN, rbc=NaN, pc=NaN, pcc=notpresent, ba=notpresent, bgr=137, bu=65, sc=3.4, sod=141, pot=4.7, hemo=9.7, pcv=28, wbcc=6900, rbcc=2.5, htn=yes, dm=yes, cad=no, appet=poor, pe=no, ane=yes, class=ckd\t——典型 CKD 画像(sc 3.4 与 bu 65 显著升高、hemo 9.7 与 pcv 28 偏低、appet poor、ane yes)伴五格检验缺失(sg/al/su/rbc/pc),标签与画像一致;本行的教学价值在于脏标签本身而非标签疑点。
df 索引 230(class 脏值第二例):age=65, bp=60, sg=1.010, al=2, su=0, rbc=normal, pc=abnormal, pcc=present, ba=notpresent, bgr=192, bu=17, sc=1.7, sod=130, pot=4.3, hemo=NaN, pcv=NaN, wbcc=9500, rbcc=NaN, htn=yes, dm=yes, cad=no, appet=poor, pe=no, ane=no, class=ckd\t——血常规三项全缺(hemo/pcv/rbcc;wbcc 9500 在列)+ 蛋白尿(al=2)+ 高血压 + 糖尿病 + 脓尿(pc abnormal、pcc present),临床画像与 ckd 标签一致;strip 归一后为正类样本。
df 索引 188(dm 脏值行):age=8, bp=NaN, sg=NaN, al=NaN, su=NaN, rbc=NaN, pc=NaN, pcc=notpresent, ba=notpresent, bgr=80, bu=66, sc=2.5, sod=142, pot=3.6, hemo=12.2, pcv=38, wbcc=NaN, rbcc=NaN, htn=no, dm=\tno, cad=no, appet=good, pe=no, ane=no, class=ckd——8 岁患儿,dm 列制表符前缀;八格缺失(bp/sg/al/su/rbc/pc/wbcc/rbcc),残余画像(sc 2.5、bu 66)支持 ckd 标签。注意本行同时是"十列规则零违反"的 17 例 ckd 样本之一(FAQ F38):dm strip 后为 no,问诊与尿液两轴全合规,是 §5.4 难样本与标签黑箱的交汇点。
行号口径存照:本条目行号一律为 pandas read_csv 后的 DataFrame 0 基索引(数据行序,不含表头行)。三行对应的文本文件物理行号(1 基)分别为 39、232、190;"含表头 0 基"口径则为 38、231、189——三种口径各差一位,跨文献对照行号先对齐口径(FAQ F14)。
更正声明:本条目早期草稿曾将 df 索引 37 描述为"临床画像更像健康/边缘人却被标 ckd"。经 2026-09-29 对官方 data.csv 的逐字段复测,该描述有误——37 号行的 sc/bu/hemo/pcv/appet/ane 均为典型 CKD 方向(见上方实测存照),特此更正;真正呈现"标签与规则画像张力"的是 FAQ F38 所列 17 例零违反样本。实测为本条目一切行级描述的唯一依据。
附录 B:清洗要点参考代码(Python/pandas)
import pandas as pd
from sklearn.model_selection import StratifiedKFold
df = pd.read_csv("data.csv") # pandas 默认识别 "NaN" 字面量
# 军规 1:全表 strip,清除 ckd\t 与 \tno
for c in df.columns:
if df[c].dtype == object:
df[c] = df[c].str.strip()
# 军规 2:逐列体检——类别数与取值集合核对
for c in df.columns:
print(c, df[c].value_counts(dropna=False).to_dict())
# 期望:class -> {ckd: 250, notckd: 150};dm -> {no: 261, yes: 137, nan: 2}
# 军规 7:极端值逐例处理(示例:疑错值按缺失处理并记录)
suspect = {"pot": 47, "sc": 76, "sod": 4.5, "bgr": 22}
for col, val in suspect.items():
mask = df[col] == val
df.loc[mask, col] = float("nan")
print(f"{col}=={val}: {mask.sum()} 处置为缺失")
# 军规 8/9:分层 k 折 + 插补/SMOTE 只进训练折
X, y = df.drop(columns=["class"]), (df["class"] == "ckd").astype(int)
skf = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)
for tr, te in skf.split(X, y):
pass # 在 tr 内拟合插补器与 SMOTE,在 te 上只 transform/predict
附录 C:本文实测方法说明
- 数据对象:UCI 官方
data.csv(https://archive.ics.uci.edu/static/public/336/data.csv),2026-09-29 下载,45,092 字节,401 行×25 列。 - 统计口径:除特别注明"论文自报口径"外,本条目全部统计(缺失账本、逐列计数、均值±标准差、范围、分组均值、规则可分检验)均由本编辑部对该文件直接计算得出;行号一律为 pandas
read_csv后的 DataFrame 0 基索引(数据行序,不含表头行;详见附录 A 行号口径存照)。 - 元数据口径:UCI 官方页 HTML 实抓(212 KB)与 API JSON(6,786 字节,
/api/dataset?id=336)双源核对。 - 文献口径:Qin 2019 与 Chittora 2021 经 IEEE Xplore 官方页与开放学术索引交叉确认;ANFIS-PSO 2026 与 PLOS ONE 2024 经 DOI 解析确认;五篇早期文献为综述转引口径,未逐篇复核原文(§5.1 注);临床参考区间三源与 PeerJ CS-2899 存照见尾注 11-14。
- 核验时点:2026-09-29(链接可达性、Google Scholar 被引数均为该时点口径,会随时间漂移)。
附录 D:双口径存照汇总
| 事实 | 口径 A | 口径 B | 本条目取舍 |
|---|---|---|---|
| 采集医院城市 | Managiri(PLOS ONE 2024) | Manamadurai(ANFIS-PSO 2026);Karaikudi “maybe”(Bristol 课程页) | 正文只写"泰米尔纳德邦",三口径存照(坑 6) |
| bp 均值 | 76.175(PLOS ONE 2024 报告) | 76.47±13.68(官方 data.csv 实算) | 按实算 76.47 书写,论文口径注明 |
| 类别数 | 248+2+150(原样口径,含 ckd\t) | 250/150(归一口径) | 正文按归一 250/150,原样口径同步存照 |
| 属性数 | 24(API num_features,不含 class) | 25(部分论文口径,含 class) | 写"24 特征+1 标签",两口径注明 |
| UCI 官方摘要英语 | 原样引用(“nearly 2 months of period”) | 善意解读为"采集期约两个月" | 原样存照+解读注明 |
| 旧版 ARFF 脏值 | 社区教程传 \t? 型脏值"17 处" |
官方 data.csv 实测数值列无脏值(脏值仅 3 处字符串) | 只写实测 3 处,传说列入遗留疑点 |
附录 E:遗留疑点清单(官方未载、本轮无法核实的六件事)
- 标签判定标准:ckd/notckd 是否按 KDIGO 口径、是否基于 eGFR 与病程、由谁复核——无任何官方说明;FAQ F38 所列 17 例十列规则零违反的 ckd 样本加深了这一疑点——它们与 notckd 在问诊与尿液两轴完全同构却被标 ckd,要么标签判定使用了本数据集之外的信息,要么存在误标。
- 抽样方式:门诊/住院构成、连续入组还是配对抽样、两个月窗口的入组流程——无记载。
- 创建者三人:L. Rubini / P. Soundarapandian / P. Eswaran 的完整姓名与机构归属,UCI 页面与 API 均未载;文献转述一般认为 Soundarapandian 对应 Apollo 医院方,未获官方确认。
- 脏值成因:两处
ckd\t与一处\tno是否源系统导出缺陷、是否曾有人向捐赠者求证——无记载。 - 极端值成因:pot 47、sc 76、bgr 22、sod 4.5 是否录入错误——官方无说明,本条目只能按生理底线做"疑错"推断(坑 7)。
- 化验方法:各检验列的具体方法/试剂/单位标准(尤其 pcv 无单位字段)未注明;旧版 ARFF 的
\t?脏值传说因旧版断代无法实证。
以上疑点若未来获得官方回应或新证据,应以官方口径为准更新本条目。
附录 F:核心数字复算脚本(Python/pandas 断言版)
把本脚本与官方 data.csv 放同一目录运行(python3.11 ckd_recheck.py [data.csv]),全部断言通过即说明你手里的文件与本条目实测同源——这是引用本条目任何数字前的第一步(§9.2 第 1 步)。断言数字均为本编辑部 2026-09-29 对官方 data.csv(45,092 字节)的实测口径。
#!/usr/bin/env python3.11
"""CKD-UCI 官方 data.csv 核心数字复算:全部断言通过 = 与千方病案条目实测同源。"""
import sys
import pandas as pd
CSV = sys.argv[1] if len(sys.argv) > 1 else "data.csv"
# ---- 文件指纹 ----
raw = open(CSV, "rb").read()
assert len(raw) == 45092, f"字节数 {len(raw)} != 45092"
lines = raw.decode("utf-8").splitlines()
assert len(lines) == 401, f"物理行数 {len(lines)} != 401(1 表头 + 400 数据)"
df = pd.read_csv(CSV)
assert df.shape == (400, 25), f"shape {df.shape} != (400, 25)"
# ---- 缺失账本(§3.1)----
total_missing = int(df.isna().sum().sum())
assert total_missing == 1012, f"缺失格 {total_missing} != 1012"
rate = total_missing / (df.shape[0] * df.shape[1]) * 100
assert abs(rate - 10.12) < 0.005, f"缺失率 {rate:.4f} != 10.12%"
assert int(df.notna().all(axis=1).sum()) == 158, "零缺失完整行 != 158"
assert int(df.duplicated().sum()) == 0, "存在重复行"
# ---- 缺失冠军三兄弟(§3.2)----
mc = df.isna().sum()
assert int(mc["rbc"]) == 152 and int(mc["rbcc"]) == 131 and int(mc["wbcc"]) == 106
assert int(mc["appet"]) == 1 and int(mc["pe"]) == 1 and int(mc["ane"]) == 1
# ---- 标签与脏值(坑 1/坑 2;行号 = DataFrame 0 基索引,不含表头)----
vc = df["class"].value_counts()
assert vc.get("ckd") == 248 and vc.get("notckd") == 150 and vc.get("ckd\t") == 2
assert sorted(df.index[df["class"] == "ckd\t"].tolist()) == [37, 230]
assert df.index[df["dm"] == "\tno"].tolist() == [188]
assert df.loc[188, "age"] == 8 and abs(df.loc[188, "hemo"] - 12.2) < 1e-9
assert set(df["rbc"].dropna()) == {"normal", "abnormal"} # 无混合编码
assert set(df["pc"].dropna()) == {"normal", "abnormal"}
# ---- 极端值四连(坑 7)----
assert float(df["pot"].max()) == 47.0
assert float(df["sc"].max()) == 76.0
assert float(df["bgr"].min()) == 22.0
assert float(df["sod"].min()) == 4.5
# ---- 等级列档位(§2.3)----
assert sorted(df["sg"].dropna().unique().tolist()) == [1.005, 1.01, 1.015, 1.02, 1.025]
assert df["sg"].value_counts().to_dict() == {1.02: 106, 1.01: 84, 1.025: 81, 1.015: 75, 1.005: 7}
assert df["al"].value_counts().to_dict() == {0.0: 199, 1.0: 44, 2.0: 43, 3.0: 43, 4.0: 24, 5.0: 1}
assert df["su"].value_counts().to_dict() == {0.0: 290, 1.0: 13, 2.0: 18, 3.0: 14, 4.0: 13, 5.0: 3}
# ---- 数值列画像(附录 J)----
stats = {
"age": (391, 51.48, 17.17, 2.0, 90.0),
"bp": (388, 76.47, 13.68, 50.0, 180.0),
"bgr": (356, 148.04, 79.28, 22.0, 490.0),
"bu": (381, 57.43, 50.50, 1.5, 391.0),
"sc": (383, 3.07, 5.74, 0.4, 76.0),
"sod": (313, 137.53, 10.41, 4.5, 163.0),
"pot": (312, 4.63, 3.19, 2.5, 47.0),
"hemo": (348, 12.53, 2.91, 3.1, 17.8),
"pcv": (329, 38.88, 8.99, 9.0, 54.0),
"wbcc": (294, 8406.12, 2944.47, 2200.0, 26400.0),
"rbcc": (269, 4.71, 1.03, 2.1, 8.0),
}
for col, (n, m, s, lo, hi) in stats.items():
sr = df[col].dropna()
assert len(sr) == n, f"{col} n={len(sr)} != {n}"
assert abs(sr.mean() - m) < 0.005, f"{col} mean={sr.mean():.4f} != {m}"
assert abs(sr.std() - s) < 0.005, f"{col} std={sr.std():.4f} != {s}"
assert abs(sr.min() - lo) < 1e-9 and abs(sr.max() - hi) < 1e-9, f"{col} 范围不符"
# ---- 分组均值(§2.8)----
g = df.assign(cls=df["class"].str.strip()).groupby("cls")
pairs = {"sc": (4.41, 0.87), "hemo": (10.65, 15.19), "pcv": (32.94, 46.34),
"bgr": (175.42, 107.72), "rbcc": (3.95, 5.38), "sod": (133.90, 141.73)}
for col, (ckd_m, nckd_m) in pairs.items():
assert abs(g[col].mean()["ckd"] - ckd_m) < 0.005, f"{col} ckd 组均值不符"
assert abs(g[col].mean()["notckd"] - nckd_m) < 0.005, f"{col} notckd 组均值不符"
# ---- 规则可分结构(§5.4)----
nc = df[df["class"] == "notckd"]
assert set(nc["al"].dropna()) == {0} and set(nc["su"].dropna()) == {0}
for c in ["htn", "dm", "cad", "pe", "ane"]:
assert set(nc[c].dropna()) == {"no"}, f"notckd 组 {c} 不规则"
assert set(nc["appet"].dropna()) == {"good"}
assert set(nc["rbc"].dropna()) == {"normal"} and set(nc["pc"].dropna()) == {"normal"}
assert set(nc["sg"].dropna()) <= {1.02, 1.025}
# ckd 组十列规则零违反样本 = 17 例(FAQ F38)
strip = lambda s: s.str.strip() if s.dtype == object or str(s.dtype) == "str" else s
ckd = df[df["class"].str.strip() == "ckd"].copy()
for c in ["htn", "dm", "cad", "appet", "pe", "ane", "rbc", "pc"]:
ckd[c] = strip(ckd[c])
viol = (ckd["al"].ne(0) & ckd["al"].notna()).astype(int)
viol += (ckd["su"].ne(0) & ckd["su"].notna()).astype(int)
for c, want in [("htn", "no"), ("dm", "no"), ("cad", "no"), ("appet", "good"),
("pe", "no"), ("ane", "no"), ("rbc", "normal"), ("pc", "normal")]:
viol += (ckd[c].ne(want) & ckd[c].notna()).astype(int)
assert int((viol == 0).sum()) == 17, f"零违反 ckd 样本 {int((viol==0).sum())} != 17"
print("全部断言通过:你手里的 data.csv 与千方病案条目实测同源(2026-09-29 口径)。")
脚本使用两条提示:其一,ckd\t 的断言依赖你的终端/编辑器不吞制表符——直接复制本脚本后若报标签断言错,先检查 \t 字面量是否被转成真制表符或被展开;其二,均值/标准差断言容差 0.005 是为本条目的四舍五入口径(两位小数)设置的,若你用更高精度报表可自行收紧。
附录 G:十大反模式清单(CKD-UCI 专用)
每条给出"反模式—典型症状—代价—正解"四段式,可直接作为代码评审或课堂测验题库。
| # | 反模式 | 典型症状 | 代价 | 正解 |
|---|---|---|---|---|
| 1 | dropna() 一刀切 |
论文里 n 无声变成 158 | 样本蒸发六成,且被删行非随机(整块缺失有临床画像) | 缺失指示列 / 树模型原生 NaN 通道;必删时报前后分布(坑 4) |
| 2 | 全集 SMOTE 后再切分 | SMOTE 后 99%+ 且测试集分数完美 | 合成样本把训练信息"过继"给测试集,标签泄漏 | SMOTE 只进训练折(§5.3) |
| 3 | 单分割跑出 100% 就收工 | “our model achieved 100%” | 13 个百分点的通胀(100% vs 5 折 87%) | 分层 5 折 × ≥10 种子,报均值±标准差(坑 8) |
| 4 | 盲信 feature_types=Real |
把 sg/al/su 送进线性模型当连续变量 | 等级档位被线性外推,系数不可解释 | 按 §2.1 实测类型表处理:等级列按序数(坑 9) |
| 5 | 均值插补 38% 缺失列 | rbc 列插补后直方图一根柱 | 方差系统性低估,下游检验失效 | 模型插补或原生通道;插补前后分布对照(§3.5) |
| 6 | 极端值直接 z-score | pot 列标准化后健康人全压在 0 附近 | 47 这个疑错值绑架整列分布 | 不可能值按疑错处置、罕见可能值稳健变换,逐例留痕(坑 7) |
| 7 | 不 strip 直接 map({'yes':1,'no':0}) |
\tno 行静默变 NaN,或 ckd\t 变第三类 |
样本无声损失 / 类别数畸变 | 全表 strip + 类别数断言(军规 1/2,附录 B) |
| 8 | 拿 Kaggle 镜像跑分与官方口径对话 | 你的 99.2% 与文献 99.75% “只差 0.5” | 镜像可能已清洗/改行序,数字不可比 | 认准 static/public/336/data.csv,引用注明 data.csv 口径(坑 5) |
| 9 | 用 400 例论证"深度学习更强" | "DNN 优于传统 ML"结论 | 差距在种子噪声内,样本量差两个数量级 | 结论边界声明:本集只能支撑方法学演示(§8.2、FAQ F32) |
| 10 | 把 al 等级写成 ACR 分期 / bu 当 BUN | “al=3 即 A3 期”“bu 25 已超标” | 医学语义错位,审稿一票否决级错误 | 读 §2.9 三个警示框;临床口径换算先查系数 |
十条的共同根源只有一个:把"表格能读出来"当成了"数据已经理解"。CKD-UCI 的每个坑都藏在"能读出来但没看"的地方——制表符藏在标签末尾、错位藏在极值里、规则结构藏在 value_counts 里。先复算(附录 F)、再体检(军规 2)、后建模,是这个数据集教给每个建模者的完整一课。
附录 H:时间线大事记(2015-2026)
以官方元数据与本条目直接核验的文献为节点;标"转引"者为综述转引口径(§5.1 注)。
| 时间 | 事件 | 出处口径 |
|---|---|---|
| 2015 | 数据集创建(API year_of_dataset_creation: 2015);官方摘要称采集期 “nearly 2 months of period” |
UCI API |
| 2015-07-02 | L. Rubini、P. Soundarapandian、P. Eswaran 捐赠 UCI | UCI 官方页 |
| 2015-2023 | 旧版布局时代:.arff/.csv 分发;教学 notebook 与教程生态爆发;\t? 型脏值"17 处"传说在此期流传 |
坑 5、附录 E-6 |
| 2016 | Sharma et al.(决策树 98.60%);Charleonnan et al.(SVM 98.3%,灵敏度 0.99/特异度 0.98)——早期基准 | 转引 |
| 2017 | Gunarathne et al.(Azure ML Decision Forest 99.1%)——云平台流水线代表 | 转引 |
| 2019 | Sossi et al.(SPSS XGBoost 单分割 100%);Al Imran et al.(FF-ANN f1 0.99)——单分割满分阵营成形 | 转引 |
| 2019-12-30 | Qin et al. 发表 IEEE Access 8:20991-21002(KNN 插补;RF 99.75%;LR+RF 感知机集成 99.83%);日后成为被引锚点(379,2026-09 口径) | IEEE Xplore 直核 |
| 2021-01-22 | Chittora et al. 发表 IEEE Access 9:17312-17334(七分类器×六组合矩阵;DNN 99.6%;被引 378) | IEEE Xplore 直核 |
| 2023 | UCI 平台改版:分配 DOI 10.24432/C5G020;旧版文件路径全部下线(实测 404);官方分发仅剩 data.csv(45,092 字节) | 坑 5、§6.2 |
| 2024-03-04 | 元数据更新(API last_updated),非数据内容变更 |
UCI API |
| 2024 | PLOS ONE 2024(DOI 10.1371/journal.pone.0295234):SMOTE 平衡;bp 均值 76.175 口径;医院城市写 Managiri | DOI 解析直核 |
| 2026 | ANFIS-PSO 2026(DOI 10.62762/bish.2026.692582):单分割 100% vs 5 折 CV 87.00%±3.59%;医院城市写 Manamadurai——同文两口径成为基准通胀活标本 | DOI 解析直核 |
| 2026-09-29 | 本条目实测:data.csv 全量复算(缺失 1012/10.12%、完整行 158、脏值 3 处、极端值 4 连、规则可分 11 列);临床参考区间与基准文献三源补核 | FACTS.md §10 |
附录 I:一句话速答卡(18 问)
- 这是什么?——400 例肾内科患者的 24 项检验指标 + 1 个 ckd/notckd 标签的 CSV。
- 多大?——45 KB;401 行×25 列(1 表头+400 数据,24 特征+1 标签)。
- 谁的?——Apollo Hospitals(印度泰米尔纳德邦)患者;Rubini/Soundarapandian/Eswaran 三人捐赠。
- 什么时候?——2015-07-02 捐赠 UCI;采集期约两个月。
- 许可?——CC BY 4.0:可商用、可再分发,义务仅署名。
- 怎么下载?——认准
archive.ics.uci.edu/static/public/336/data.csv一条路;旧版 .arff 全 404。 - 缺失多吗?——1012/10000 格(10.12%);24 列全有缺失;零缺失完整行仅 158(39.5%)。
- 有脏数据吗?——2 例
ckd\t(df 索引 37/230)、1 例\tno(df 索引 188);缺失写作字面量 “NaN”。 - 有可疑值吗?——pot 47、sc 76、bgr 22、sod 4.5,疑小数点错位,官方未注。
- 平衡吗?——ckd 250 vs notckd 150(62.5%/37.5%),中度不平衡。
- 能跑多高?——认真 5 折 CV 约 87-99%;单分割 100% 常见但无意义。
- 为什么人人都 99%?——notckd 150 例在十列上取值完全规则,任务近乎规则可分;99% 是数据的属性。
- 能做临床模型吗?——不能当临床就绪证据;教学与原型验证可以。
- 能做 CKD 分期吗?——不能:无 eGFR、无病程时间维度、标签只有二值。
- 有性别列吗?——没有;"男女比例"叙事皆无源之水。
- 有官方论文吗?——没有(
intro_paper: null);最高被引社区基准是 Qin 2019(379+)。 - 怎么引用?——Rubini, L., Soundarapandian, P., & Eswaran, P. Chronic Kidney Disease [Dataset]. UCI ML Repository. DOI 10.24432/C5G020。
- 一句话总结?——小、脏、经典:缺失值+不平衡+基准通胀的三合一教学标本。
附录 J:数值列统计画像速查(11 列,实测口径)
与 §2.1 的五组总览互补:本表只收数值列,便于建模前快速核对分布形态。全部数字为本编辑部对官方 data.csv 的实算(2026-09-29)。
| 列 | 临床含义 | n | 均值 | 标准差 | min | max | 分布注记 |
|---|---|---|---|---|---|---|---|
| age | 年龄(岁) | 391 | 51.48 | 17.17 | 2 | 90 | 中老年为主体;含 2-8 岁儿科样本 |
| bp | 血压(mm/Hg,舒张压口径) | 388 | 76.47 | 13.68 | 50 | 180 | max 180 高血压急症级 |
| bgr | 随机血糖(mg/dl) | 356 | 148.04 | 79.28 | 22 | 490 | 右偏重;min 22 疑错位 |
| bu | 血尿素(mg/dl) | 381 | 57.43 | 50.50 | 1.5 | 391 | std>mean 的重右偏;建议对数变换 |
| sc | 血清肌酐(mg/dl) | 383 | 3.07 | 5.74 | 0.4 | 76 | max 76 疑错位,std 被其拉高 |
| sod | 血钠(mEq/L) | 313 | 137.53 | 10.41 | 4.5 | 163 | min 4.5 不可存活疑错位 |
| pot | 血钾(mEq/L) | 312 | 4.63 | 3.19 | 2.5 | 47 | max 47 疑 4.7 错位 |
| hemo | 血红蛋白(g/dL) | 348 | 12.53 | 2.91 | 3.1 | 17.8 | 双峰倾向(贫血轴组间落差 4.5) |
| pcv | 红细胞压积(%) | 329 | 38.88 | 8.99 | 9 | 54 | 与 hemo 强共线(经验比约 3:1) |
| wbcc | 白细胞计数(cells/cmm) | 294 | 8406.12 | 2944.47 | 2200 | 26400 | max 26400 重度感染样反应 |
| rbcc | 红细胞计数(millions/cmm) | 269 | 4.71 | 1.03 | 2.1 | 8 | 贫血轴定量侧;缺失最重(32.75%) |
注记三条:其一,bu/sc/pot/bgr 四列的均值与标准差均受坑 7 极端值影响,复核时对照附录 F 断言;其二,n 的差异即缺失梯度(269-391),任何"全样本均值"声称都应先问是哪列的 n;其三,sod/pot 是电解质轴、hemo/pcv/rbcc 是贫血轴、bgr/bu/sc 是肾功-代谢轴——三条生理轴与 §5.4 的规则列(问诊轴)一起构成 24 特征的完整语义地图。
附录 K:投稿前 12 项检查单(用了 CKD-UCI 的论文自查)
| # | 检查项 | 对应条目锚点 |
|---|---|---|
| 1 | 全表 strip 已执行;class 仅剩 {ckd, notckd}、dm 仅剩 {yes, no} 的断言通过 | 军规 1/2、附录 B |
| 2 | n 报告了清洗各阶段数值(400 / dropna 后 / 插补后),类别分布随行 | 坑 4、§8.1 问 1 |
| 3 | 分割协议写明:分层 5 折以上 × ≥10 种子,报均值±标准差 | 坑 8、§5.5 |
| 4 | SMOTE / 插补 / 特征选择的位置写明且只在训练折内 | §5.3、§8.1 问 2 |
| 5 | sg/al/su 按序数处理;未当连续变量 | 坑 9 |
| 6 | 未把 al 等级写成 ACR A1-A3;未把 bu 当 BUN 套 7-20 区间 | §2.9 警示框、FAQ F18/F21 |
| 7 | 极端值四连(pot 47 / sc 76 / bgr 22 / sod 4.5)的处置逐例有交代 | 坑 7 |
| 8 | 与文献对比前已对齐口径(单分割 vs CV、插补方法、SMOTE 位置) | §8.1 问 4、§5.7 |
| 9 | 未出现"临床可用/可用于筛查"类越界叙事,或已附 §8.3 三道鸿沟的局限声明 | §8.1 问 5、§8.3 |
| 10 | 结论类型在 §8.2 的"适合"清单内(方法学演示/教学/原型验证) | §8.2 |
| 11 | 数据来源标注:UCI ID 336、data.csv 口径、DOI 10.24432/C5G020、CC BY 4.0 | §6.1/§6.3/§6.4 |
| 12 | 引用的社区基准注明"非官方伴生论文"且给出协议细节 | §5.0、§5.7、FAQ F35 |
12 项全过,你的论文至少在"数据使用纪律"上站得住;至于方法创新是否成立,那不是这个数据集能裁决的(§5.4)。
K.2 这张表的三种用法
- 自查:投稿前逐项打钩,12 项全过再提交;
- 审稿:审别人用 CKD-UCI 的论文时按表索骥,缺哪项问哪项(与 §8.1 审稿人五问配合使用);
- 教学:作为课程作业的评分 rubric——每项 1 分,满分 12,及格线设 10 分。
附录 L:缺失模式明细(105 种组合的实测画像)
L.1 模式总量与前十二大模式
把每行的缺失列组合(missingness pattern)当作一个 ID,全表 400 行只出现 105 种组合——远少于随机散布的理论数;前 12 大模式覆盖 269 行(67.25%)。§3.3 的"整块缺失"判断由此有了精确数字。
| 行数 | 缺失列组合 | 解读 |
|---|---|---|
| 158 | (无缺失) | 完整行——dropna 后的幸存者 |
| 31 | rbc | 单缺镜检形态学:最大的非平凡模式 |
| 11 | hemo,pcv,wbcc,rbcc | 血常规四件套整单缺 |
| 10 | rbc,sod,pot | 镜检 + 电解质 |
| 10 | sod,pot | 电解质两项 |
| 10 | sg,al,su,rbc,pc | 尿检五件套整单缺 |
| 9 | wbcc,rbcc | 血细胞计数两项 |
| 7 | sg,al,su,rbc,pc,wbcc,rbcc | 尿检五件套 + 血细胞计数 |
| 6 | rbc,pc | 镜检两项 |
| 6 | rbc,wbcc,rbcc | 镜检 + 血细胞计数 |
| 6 | rbc,hemo,pcv,wbcc,rbcc | 镜检 + 血常规 |
| 5 | bgr | 单缺血糖 |
| 合计 269 | 其余 93 种模式合计 131 行 |
头部模式清一色是"检验子项成组缺"——血常规四件套、尿检五件套、电解质两项——而非随机散点。这与"检验科室的层级"梯度(§3.2)互为表里:缺失的单位不是格子,而是检查单。
L.2 行级缺失深度分布
按行统计 24 个特征格中的非缺失格数:
| 非缺失格数 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 行数 | 158 | 45 | 33 | 37 | 31 | 33 | 12 | 20 | 8 | 12 | 4 | 7 |
三个读数:其一,仅缺 1-2 格的行有 78 行(45+33)——它们是信息最接近完整的样本,却是 dropna 的最大牺牲品(坑 4 的精确注脚);其二,缺 5 格及以上的行共 96 行,构成"重缺失带";其三,最重的 7 行缺 11 格(df 索引 59、86、104、148、165、222、228),仅剩 13 个特征可用——它们通常是被整单转录失败或危重抢救病例,插补时值得单独标记。
L.3 对插补与建模研究的四条含义
- 整块缺失主导:105 种模式、前 12 覆盖 2/3 样本,意味着插补时同行的多个缺失格会互相校准——KNN/MICE 的近邻里充满同模式行,"编造套编造"风险(§3.3)是结构性的,不是个例。
- 31 行单缺 rbc 是两难样本:按列删丢一个判别特征,按行删丢 31 例——正解是缺失指示列或树模型原生 NaN 通道。
- 缺失模式本身可作特征:前 12 大模式的 one-hot(“缺失模式 ID”)比逐列缺失指示更强——它直接编码"这个患者做了哪套检查"的临床决策信号。
- 复现只要两行:
pat = df.drop(columns=['class']).isna().apply(lambda r: tuple(r), axis=1); pat.value_counts().head(12)。
附录 M:DAIMS 评估逐维详注(§6.5 的证据底稿)
M.1 D 文档完备度 3/5
有:官方摘要(含采集期 “nearly 2 months”)、25 列变量表(24 列有单位/类型标注,唯 pcv 缺 units 字段)、引用格式面板、CC BY 4.0 声明、API 全字段机读。缺:伴生论文(intro_paper: null)、标签判定标准、抽样方式、医院城市(三口径,坑 6)、化验方法与试剂。提分路径:官方补一份 data card(标签口径 + 采样说明 + 城市确认)即可 +2。
M.2 A 可获取性 5/5
三通道全通(§6.1 实测 HTTP 200);无注册、无申请流程;仅一版现行格式(data.csv),无版本困惑;45 KB 即取即用;CC BY 4.0 商用允许。唯一摩擦是下载包 zip 内 rar(坑 5),不影响 data.csv 主通道。
M.3 I 互操作性 4/5
标准 CSV、列名简短、五组特征体系语义分明。扣分项:NaN 字面量(坑 3)、脏值三连(坑 1/坑 2)、sg/al/su 的档位含义只有一句话级说明(需读者自行对齐临床语义,§2.3、附录 N)。
M.4 M 元数据质量 2/5
三处元数据失真(pcv 无 units、bu/sod 标 Integer 实测含小数、feature_types 汇总失真,坑 9)+ 城市三口径 + 类型粒度粗。元数据是本数据集最弱一环——也是本条目补课价值最大的一环(§2.1 实测表即替代数据字典)。
M.5 S 可持续性 4/5
UCI 官方长期托管、DOI 固定、2024-03 仍有维护动作。扣分:旧版布局整体断代(旧链接 404、旧文件无官方存档索引),教程生态的口径漂移无官方仲裁机制。
M.6 18/25 的含义
A 满分、D+M 合计仅 5/10——“拿到手极容易,用好极考功夫”。对 AI-Ready 场景的操作性结论:直接喂模型没问题(先过附录 B/F 两关);引用数字必须带"data.csv 口径"标签;做自动化管线时不要信任 API 元数据,以本条目实测表为准。
附录 N:术语中英对照与检索提示(全 24 特征 + 任务术语)
检索英文文献或写英文论文时的列名对照表;"提示"栏给出本条目已核验的关键口径。
| 中文 | 英文 / 缩写 | 本数据集列名 | 提示 |
|---|---|---|---|
| 年龄 | age | age | demographics 唯一登记项;无性别列 |
| 血压 | blood pressure | bp | 舒张压口径(Bristol 注释版推断,UCI 未注明) |
| 尿比重 | specific gravity | sg | 五档离散值;按序数处理 |
| 尿白蛋白 | albumin | al | 0-5 半定量等级;≠ACR A1-A3 |
| 尿糖 | sugar | su | 0-5 半定量等级 |
| 尿红细胞 | red blood cells | rbc | 形态学二值;缺失 38.0% 全表之冠 |
| 尿脓细胞 | pus cell | pc | 形态学二值 |
| 尿白细胞团 | pus cell clumps | pcc | present/notpresent |
| 尿细菌 | bacteria | ba | present/notpresent |
| 随机血糖 | blood glucose random | bgr | min 22 疑错位(坑 7) |
| 血尿素 | blood urea | bu | ≠BUN;换算 ×2.14(§2.9 警示框一) |
| 血清肌酐 | serum creatinine | sc | eGFR 输入变量;最强单变量(§2.8) |
| 血钠 | sodium | sod | 参考 135-145 mEq/L |
| 血钾 | potassium | pot | 参考 3.5-5.0 mEq/L;max 47 疑错位 |
| 血红蛋白 | hemoglobin | hemo | 贫血轴定量 |
| 红细胞压积 | packed cell volume | pcv | 无官方单位;按 % 解读(坑 9) |
| 白细胞计数 | white blood cell count | wbcc | cells/cmm;§5.6 存照当事列 |
| 红细胞计数 | red blood cell count | rbcc | millions/cmm;缺失 32.75% |
| 高血压 | hypertension | htn | yes/no |
| 糖尿病 | diabetes mellitus | dm | yes/no;含 1 例 \tno(坑 2) |
| 冠脉疾病 | coronary artery disease | cad | yes/no |
| 食欲 | appetite | appet | good/poor |
| 足部水肿 | pedal edema | pe | yes/no |
| 贫血(问诊) | anemia | ane | 与 hemo/rbcc 构成定性+定量双记录 |
| 诊断标签 | class | class | ckd/notckd;2 例 ckd\t(坑 1) |
| 规则可分 | rule-separable | — | §5.4 核心概念;十列合取规则 |
| 基准通胀 | benchmark inflation | — | 单分割 100% vs 5 折 87% 现象 |
| 缺失模式 | missingness pattern | — | 附录 L;实测 105 种组合 |
| 等渗尿 | isosthenuria | — | sg 固定 1.010±0.003(§2.9 警示框二) |
| 标签泄漏 | label leakage | — | 全集 SMOTE 后切分即触发(§5.3) |
附录 O:检索、镜像与再分发实操
O.1 你在找什么 vs 该去哪
| 意图 | 去哪 | 警告 |
|---|---|---|
| 下载数据本体 | archive.ics.uci.edu/static/public/336/data.csv |
唯一官方机读格式;45,092 字节即文件指纹 |
| 拉元数据 | 官方页 + /api/dataset?id=336 |
存在粗口径三连(坑 9),勿自动信任字段 |
| 找旧版 ARFF | 已 404 | 断代,别再找(坑 5) |
| 找教程/notebook | Kaggle / Medium / CSDN / GitHub | 镜像口径漂移:先 diff 再用(坑 5) |
| 找基准数字 | 本条目 §5.1 + §5.7 | 区分直核/转引;协议五要素齐全才有对话资格 |
| 找引用格式 | 官方页 citation 面板 | DOI 10.24432/C5G020(§6.4) |
| 找库内近亲 | 本条目 §10 互链表 | UCI 兄弟(444/485)与 EHR 对照(4/106) |
O.2 再分发数据卡模板(CC BY 4.0 署名义务的最小实现)
# CKD-UCI 清洗版数据卡
- 来源: UCI Machine Learning Repository ID 336, DOI 10.24432/C5G020, CC BY 4.0
- 原始文件: data.csv(45,092 B,401 行×25 列),下载日期: ____
- 本清洗版改动: 1) 全表 strip;2) 极端值处置: ____;3) 插补: ____
- 已验证指纹(未改动项): 缺失 1012 格 / 完整行 158 / class 归一 250-150
- 行号口径: DataFrame 0 基索引(不含表头行)
- 已知问题(原样继承): 标签判定标准未载;元数据粗口径见条目坑 9
- 版本: 本卡日期 ____;引用: Rubini, L., Soundarapandian, P., & Eswaran, P.
Chronic Kidney Disease [Dataset]. UCI ML Repository. DOI 10.24432/C5G020
数据卡的意义不止于合规:它是你清洗决策的"存照"——一年后有人(多半是你自己)拿着你的清洗版问"47 你是怎么处置的",答案必须在这张卡上,而不是在你的记忆里(坑 7 的逐例留痕纪律在再分发环节的延伸)。
附录 P:类别列 value_counts 全存照(14 列,逐列体检对照表)
“军规 2”(value_counts 逐列体检)的完整对照底稿:14 个类别/等级/标签列的原样取值计数(NaN 计入;含全部脏值)。数值列 11 列的画像见附录 J。全部为本编辑部对官方 data.csv 的实测(2026-09-29)。
| 列 | 原样取值计数(含 NaN 与脏值) | 清洗后期望 |
|---|---|---|
| sg | 1.02×106, 1.01×84, 1.025×81, 1.015×75, NaN×47, 1.005×7 | 五档不变,NaN 47 |
| al | 0×199, NaN×46, 1×44, 2×43, 3×43, 4×24, 5×1 | 六档不变,NaN 46 |
| su | 0×290, NaN×49, 2×18, 3×14, 4×13, 1×13, 5×3 | 六档不变,NaN 49 |
| rbc | normal×201, NaN×152, abnormal×47 | 二值,NaN 152 |
| pc | normal×259, abnormal×76, NaN×65 | 二值,NaN 65 |
| pcc | notpresent×354, present×42, NaN×4 | 二值,NaN 4 |
| ba | notpresent×374, present×22, NaN×4 | 二值,NaN 4 |
| htn | no×251, yes×147, NaN×2 | 二值,NaN 2 |
| dm | no×260, yes×137, NaN×2, \tno×1 |
no×261(\tno 归一), yes×137, NaN 2 |
| cad | no×364, yes×34, NaN×2 | 二值,NaN 2 |
| appet | good×317, poor×82, NaN×1 | 二值,NaN 1 |
| pe | no×323, yes×76, NaN×1 | 二值,NaN 1 |
| ane | no×339, yes×60, NaN×1 | 二值,NaN 1 |
| class | ckd×248, notckd×150, ckd\t×2 |
ckd×250(ckd\t 归一), notckd×150 |
P.2 体检对照法
拿到任何一份"CKD 数据"(无论自称官方还是镜像),把你的 value_counts(dropna=False) 输出与上表逐列对照,三分钟内即可判定文件身份:其一,逐格一致 = 与官方 data.csv 同源,可引用本条目全部数字;其二,某些列少了 NaN 或脏值消失 = 清洗过的镜像,数字不可与官方口径混用(坑 5);其三,多出未知取值或行数不等于 400 = 来源不明,丢弃或回溯。这一对照法也是本条目"以磁盘为准"纪律的交接界面——后人拿到的新文件,与 2026-09-29 实测存照只有"一致/不一致"两种关系,不存在第三种解释空间。
数值列的同款对照用附录 J 的 n/均值/标准差/范围四元组:任何一列的四个数字全对上,基本可排除"同列名不同清洗"的静默漂移;有出入时先查极端值处置(坑 7 的 pot 47 / sc 76 / bgr 22 / sod 4.5 四值最易被清洗者动手)。
版本与变更记录(扩写存照)
- v1(775 行版):初稿覆盖 §0-§11、FAQ 十二问、事实清单三十条、附录 A-E。
- v2(本版,2026-09-29):扩写至 1400 行级。新增:§2.9 临床参考区间对照(三源口径)、§5.6 文献数字回源核验存照、§5.7 基准确证档案与被引对照、§7.5 四天王对比、§9 使用指南(三类读者行动清单)、FAQ F13-F44(32 个进阶问题)、事实清单 31-38 条、术语表扩充 8 条、附录 F-P(核心数字复算脚本 / 十大反模式 / 时间线大事记 / 一句话速答卡 / 数值列画像 / 投稿检查单 / 缺失模式明细 / DAIMS 逐维详注 / 术语中英对照 / 检索与再分发实操 / 类别列 value_counts 全存照)。
- 更正:附录 A 三行脏值行存照按 2026-09-29 逐字段实测重写——早期草稿对 df 索引 37 的"健康画像"描述有误,已在附录 A 更正声明中存照;全文行号口径统一为 pandas DataFrame 0 基索引(不含表头行,FAQ F14)。
- 扩写纪律:新增事实全部来自官方 data.csv 逐字段实测(附录 F 脚本可一键复算)或经三源交叉确认的临床/文献口径(尾注 11-14);未引入任何未经核验的新数字;规则可分结构的量化补充(ckd 组 17 例零违反)系本编辑部本轮实测新增存照。
尾注与来源
- UCI Machine Learning Repository — Chronic Kidney Disease 官方页:
https://archive.ics.uci.edu/dataset/336/chronic+kidney+disease(2026-09-29 实抓,HTTP 200)。 - UCI 官方 API:
https://archive.ics.uci.edu/api/dataset?id=336(JSON 6,786 字节,2026-09-29 实抓;intro_paper: null、num_features: 24、creators 三人、DOI 与 license 字段出处)。 - UCI 官方数据本体:
https://archive.ics.uci.edu/static/public/336/data.csv(45,092 字节,2026-09-29 下载;本条目全部实测统计对象)。 - Qin, C. et al. IEEE Access 8:20991-21002, 2019-12-30, DOI 10.1109/ACCESS.2019.2963053(RF 99.75%/集成 99.83%;Google Scholar 被引 379+,2026-09 口径)。
- Chittora, P. et al. IEEE Access 9:17312-17334, 2021-01-22, DOI 10.1109/ACCESS.2021.3053763(DNN 99.6%;LSVM-L2 98.86%)。
- ANFIS-PSO 2026 论文,DOI 10.62762/bish.2026.692582(单分割 100% vs 5 折 CV 87.00%±3.59%;Apollo Manamadurai 口径出处)。
- PLOS ONE 2024 论文,DOI 10.1371/journal.pone.0295234(SMOTE 平衡;bp 均值 76.175;Apollo Managiri 口径出处)。
- Charleonnan et al. 2016(SVM 98.3%)、Gunarathne et al. 2017(99.1%)、Sharma et al. 2016(DT 98.60%)、Al Imran et al. 2019(FF-ANN f1 0.99)、Sossi et al. 2019(XGBoost 100%)——综述转引口径,见 §5.1 注。
- Bristol 大学课程注释版(uob-ds.github.io,Matthew Brett 维护)——Karaikudi “(maybe)” 口径出处。
- 本编辑部实测档案:FACTS.md(writing/chronic-kidney-disease-uci/FACTS.md,抓取时点 2026-09-29),含全部双口径存照与遗留疑点的第一手记录。
- Medscape 临床参考区间表;MedlinePlus 医学百科(kidney function tests 等词条);Kidney Education 临床教材——sc(男 0.6-1.3 / 女 0.5-1.2 mg/dL)、sod(135-145 mEq/L)、pot(3.5-5.0 mEq/L)、hemo(约 12-17 g/dL)、wbcc(5000-10000/mm³)等参考区间的三源交叉口径(2026-09 检索,§2.9)。
- 腾讯医典(血常规/肾功能/电解质词条)——中文侧第四源核对口径(2026-09 检索)。
- KDIGO CKD 2024 指南官方 PDF(kdigo.org)——CKD 定义(结构或功能异常 ≥3 个月且影响健康)、CGA 分期 G1-G5 与 A1-A3 口径;NIDDK(niddk.nih.gov)CKD 词条——"G2 无肾损伤标志物不算 CKD"的补充口径(§2.9 背景框)。
- PeerJ Computer Science 基准论文——自报 wbcc 范围 “(2,200 to 4,800)” 原文存照;本条目实测 [2200, 26400](均值 8406.12)与之相悖,疑排版丢位(§5.6)。
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- framingham — 共享标签:电子健康记录 / 队列研究 / 流行病学
- charls — 共享标签:电子健康记录 / 队列研究 / 流行病学
- opensafely — 共享标签:电子健康记录 / 队列研究 / 真实世界数据
- cprd — 共享标签:电子健康记录 / 队列研究 / 真实世界数据
- twosides — 共享标签:电子健康记录 / 真实世界数据 / 评测基准
- qresearch — 共享标签:电子健康记录 / 队列研究 / 流行病学
- epic-cosmos — 共享标签:电子健康记录 / 真实世界数据 / 流行病学
- iqvia-disease-analyzer — 共享标签:电子健康记录 / 真实世界数据 / 流行病学
- gepard — 共享标签:电子健康记录 / 队列研究 / 真实世界数据
- clif — 共享标签:电子健康记录 / 队列研究 / 评测基准
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

