FairHealth:一个面向资源匮乏地区可信医疗AI的开源Python库

arXiv cs.LG 工具

摘要

FairHealth 是一个专为资源匮乏环境下的可信医疗AI设计的开源Python库,提供公平性审计、隐私保护型联邦学习和可解释性模块。

arXiv:2605.08198v1 发布类型:新论文 摘要:我们推出了 FairHealth,这是一个开源的 Python 库,为医疗应用中的可信机器学习提供了一个统一、模块化的框架,特别关注资源匮乏和低收入国家(LMIC)的环境,例如孟加拉国。FairHealth 解决了现有医疗AI工具包中的四个关键空白:(1) 缺乏针对生物信号和临床表格数据的集成公平性审计;(2) 缺乏与标准机器学习工作流兼容的隐私保护型联邦学习工具;(3) 缺少专为低带宽临床决策支持量身定制的可解释性工具;(4) 尚无涵盖全球南方医疗数据集的现有工具包。基于五项同行评审的研究成果,FairHealth 提供了六个模块,涵盖同态加密联邦学习(fairhealth.federated)、交叉性公平性指标(fairhealth.fairness)、混合模糊SHAP可解释性(fairhealth.explain)、多语言登革热分诊(fairhealth.lowresource)、公平的救灾援助分配(fairhealth.equity)以及公共数据集加载器(fairhealth.datasets)。所有使用的数据集均为公开可用,无需机构数据使用协议。FairHealth 可通过 pip install fairhealth 安装(PyPI: pypi.org/project/fairhealth/),并可在 https://github.com/Farjana-Yesmin/fairhealth 获取。
查看原文
查看缓存全文

缓存时间: 2026/05/12 07:03

# 面向资源匮乏环境下可信医疗 AI 的开源 Python 库
来源: https://arxiv.org/html/2605.08198
###### 摘要

我们推出了 FairHealth,这是一个开源 Python 库,为医疗应用中的可信机器学习提供统一、模块化的框架,特别关注资源匮乏和低收入国家(LMIC)环境,如孟加拉国。FairHealth 解决了现有医疗 AI 工具包中的四个关键空白:(1) 生物信号和临床表格数据缺乏集成的公平性审计;(2) 缺乏与标准机器学习工作流兼容的隐私保护联邦学习工具;(3) 缺少专为低带宽临床决策支持定制的模型可解释性工具;(4) 现有工具包未涵盖全球南方(Global South)的医疗数据集。FairHealth 基于五项经过同行评审的研究贡献构建,提供了六个模块,涵盖同态加密联邦学习 (`fairhealth.federated`)、交叉公平性指标 (`fairhealth.fairness`)、混合模糊-SHAP 可解释性 (`fairhealth.explain`)、多语种登革热分诊 (`fairhealth.lowresource`)、公平灾害援助分配 (`fairhealth.equity`) 以及公共数据集加载器 (`fairhealth.datasets`)。所有使用的数据集均公开可用,无需机构数据使用协议。FairHealth 可通过 `pip install fairhealth` 安装,并可在 https://github.com/Farjana-Yesmin/fairhealth 获取。

## 1 引言

机器学习在医疗应用中显示出巨大潜力 [9],但结构性问题限制了其在现实世界中的影响,特别是在资源匮乏的环境中:

人口统计学偏差。基于群体水平数据训练的模型在少数人口群体中往往表现不佳。对于基于心电图(ECG)的心肌梗死检测,未经校正的模型在不同性别组间的差异影响比(disparate impact ratio)为 0.23——远低于算法公平性文献中认为公平的 0.80 阈值 [5]。

隐私。在大多数司法管辖区,医疗记录受法律保护。在不共享原始患者数据的情况下跨医院训练机器学习模型需要联邦学习,但目前没有现有的 Python 库以医疗机器学习研究人员易于访问的形式提供结合密码学同态加密(HE)的联邦学习。

资源匮乏环境下的可解释性。部署在孟加拉国和类似 LMIC 环境中的临床决策支持工具必须在最小连接性下运行,支持当地语言,并提供无需机器学习专业知识即可由临床医生解释的说明。现有的可解释性库(如 SHAP、LIME)不提供临床工作流集成。

现有的医疗 AI 工具包,如 PyHealth [18],广泛覆盖了电子健康记录(EHR)数据集和临床任务,但未涉及公平性审计、联邦学习或针对 LMIC 的具体部署。FairHealth 设计为互补层:它专门关注 PyHealth 刻意留出的可信度维度。

FairHealth 做出以下贡献:

1. 一个统一的、可通过 pip 安装的 Python 库,包含六个模块,涵盖联邦学习、公平性、可解释性、低资源工具、公平性及数据集。
2. 第一个完全基于公开可用数据集构建的医疗 AI 工具包,无需机构数据使用协议。
3. 收集了特定的孟加拉国健康数据集(母婴健康、登革热监测、洪水 PDNA),这些数据集在任何现有的机器学习库中均不可用。
4. 五项经过同行评审方法的开放实现,确保可复现性和可扩展性。

## 2 相关工作

医疗 AI 工具包。PyHealth [18] 是最全面的开源医疗机器学习库,涵盖 20 多个 EHR 数据集和 33 多种临床模型。然而,它不包含公平性指标、联邦学习或差分隐私。FATE [12] 提供联邦学习基础设施,但不是专门针对医疗领域,且需要大量的工程开销。IBM AIF360 [2] 提供公平性指标,但未与特定于医疗的数据集或联邦工作流集成。FairHealth 填补了这三个领域的交集。

面向 LMIC 的可信 AI。医疗 AI 研究 overwhelmingly 集中于来自北美和欧洲的数据集——MIMIC-III、eICU、UK Biobank——这些数据需要独立研究人员无法访问的机构数据使用协议。FairHealth 是第一个整理和标准化来自南亚(包括孟加拉国母婴健康记录、登革热监测数据和政府官方洪水损害评估)的公开健康数据集的工具包。

## 3 库设计

### 3.1 架构

FairHealth 采用模块化架构,每个子模块对应一项特定的研究贡献(图 1)。模块之间松耦合:用户只需导入 `fairhealth.fairness` 而无需安装联邦学习依赖项。

```bash
pip install fairhealth

pip install "fairhealth[federated]"

pip install "fairhealth[explain]"

pip install "fairhealth[all]"
```

### 3.2 设计原则

仅使用公共数据。`fairhealth.datasets` 中的每个数据集加载器均从公开可用来源下载数据。无需机构隶属关系或数据使用协议(DUA)。这是一种 deliberate 的设计选择,旨在使任何国家的独立研究人员能够复现结果。

基于论文支持的模块。每个模块都锚定于一篇特定的经过同行评审的出版物,模块文档字符串中记录了论文的关键结果。这使得用户能够追溯每一个实现决策到可引用的来源。

临床框架。公平性指标、解释和分诊输出采用临床语言而非机器学习术语进行框架化,遵循 [14] 中记录的 14 名临床医生验证研究的反馈。

## 4 模块

### 4.1 `fairhealth.fairness`—— 生物信号的公平性指标

动机。可穿戴系统中的基于心电图的疾病预测模型表现出显著的人口统计学偏差。在 PTB-XL 数据集 [11](4,367 条记录,20% 子样本)上评估,未经校正的 CNN 分类器在不同性别组间的差异影响(DI)为 0.23——远低于 0.80 的公平阈值。使用梯度反转层进行对抗性去偏后 [6],DI 改善至 0.71,同时 AUROC 保持在 0.8472 [16]。

实现。该模块提供:

```python
from fairhealth.fairness.metrics import (
    demographic_parity_diff,
    equalized_odds_diff,
    disparate_impact,
    intersectional_fairness,
    fairness_summary,
)

dpd = demographic_parity_diff(y_pred, sensitive=sex_array)
```

所有指标均接受 numpy 数组且与模型无关。`intersectional_fairness` 函数将标准对等性指标扩展至多个同时存在的敏感属性(例如,性别 × 年龄组),解决了 [16] 中识别的交叉性差距。

### 4.2 `fairhealth.explain`—— 混合模糊-XGBoost 可解释性

动机。黑盒模型在临床环境中造成信任缺失,特别是在资源受限的环境中,临床医生无法咨询机器学习专家 [10]。一项临床医生验证研究(N=14 名医疗专业人员)表明,在三个临床案例中,71.4% 的临床医生更喜欢混合模糊+SHAP 解释,优于仅 SHAP(24%)或仅分数(5%)的解释 [14]。

实现。混合模糊-XGBoost 模型在 UCI 母婴健康风险数据集 [4] 上实现了 88.67% 的准确率(ROC-AUC=0.9703),比最佳基线(梯度提升:86.21%)高出 2.46 个百分点。该模块提供事前的(模糊规则)和事后的(SHAP)解释:

```python
from fairhealth.explain.fuzzy import get_fired_rules, score_to_label

rules = get_fired_rules(age=42, sbp=145, bs=12.0, hr=88)
for r in rules:
    print(f"Rule {r['id']}: {r['condition']} -> {r['outcome']}")
```

公平性分析显示区域性能公平(孟加拉国 8 个分区的 $\sigma=0.0766$),医疗保健准入评分与模型准确率之间存在反直觉的负相关($r=-0.876$)——表明模型在专家专业知识最稀缺的地方表现最好 [14]。

### 4.3 `fairhealth.federated`—— 隐私保护联邦学习

动机。在大多数司法管辖区,跨医院共享患者数据是被法律禁止的。标准联邦学习(FedAvg [7])传输的梯度更新容易受到成员推断攻击(MIA),在标准 FL 中,最坏情况下的攻击成功率高达 56.3% [17]。

实现。MedHE 将自适应梯度稀疏化与 CKKS 同态加密协同设计 [3]。仅将前 10% 的梯度幅度打包到 CKKS 密文中进行传输,将通信量从 1,277 MB 减少到 32 MB(减少 97.5%),同时保持宏 F1=0.950±0.005,在统计上等同于标准 FedAvg($p=0.32$)。MIA 抵抗力提高至 51.1%(接近随机,理想值为 50%)[17]:

```python
from fairhealth.federated.privacy import (
    clip_weights,
    add_gaussian_noise,
    sparsify,
    dp_fedavg_aggregate,
)

sparse_w, rate = sparsify(weights, sparsity=0.975)
noisy_w = add_gaussian_noise(clipped_w, epsilon=1.0)
```

### 4.4 `fairhealth.lowresource`—— 多语种登革热分诊

动机。孟加拉国在 2023 年报告了 321,179 例登革热病例和 1,705 人死亡——这是 2000 年以来最致命的爆发 [1]。在爆发期间,医疗设施不堪重负,从而产生了对能够在低带宽条件下运行并支持孟加拉语的 AI 辅助初步分诊的需求。

实现。该模块实现了在人口统计学特征(年龄、性别、地区类型、房屋类型、地区)上训练的决策树分类器,在非泄露特征上实现了准确率=0.79,F1=0.802,AUC=0.851。年龄是主要预测因子(基尼重要性=0.686),地区和房屋类型是次要信号,已通过 SHAP 分析确认 [15]。置信阈值机制($P<0.70 \rightarrow$ 转诊至医生)在试点研究(n=50)中实现了 75% 的用户满意度:

```python
from fairhealth.lowresource.triage import assess_dengue_risk

result = assess_dengue_risk(
    age=8, gender="male", area_type="urban",
    district="Dhaka", language="bangla"
)
```

### 4.5 `fairhealth.equity`—— 公平的灾害援助分配

动机。孟加拉国的灾后援助分配系统性地忽视了农村 Haor 地区,尽管这些地区的洪水脆弱性更高。2022 年孟加拉国洪水影响了 720 万人,在 11 个地区造成 4.055 亿美元的损失 [8],但基于历史分配数据训练的标准 AI 模型延续了现有的城市偏见。

实现。对抗性去偏架构采用梯度反转层来学习区域不变脆弱性表示。在官方 PDNA 数据集的 87 个 upazilas 上评估,公平模型将统计对等性差异减少了 41.6%,区域公平性差距减少了 43.2%,仅以 2.7 个百分点的 $R^2$ 成本为代价(0.784 对比 0.811 基线)[13]。优先级排名发生显著变化:70.6% 的 upazilas 获得不同的排名,Sunamganj(42.7% 贫困率,1.596 亿美元损失)从第 14 位升至第 6 位:

```python
from fairhealth.equity.flood_aid import generate_priority_ranking

rankings = generate_priority_ranking(verbose=True)
```

### 4.6 `fairhealth.datasets`—— 公共数据集加载器

所有数据集加载器均在运行时将数据下载到本地缓存(`~/.fairhealth/data/`)。表 1 中的任何数据集均无需机构隶属关系、医院 DUA 或特殊凭证。

表 1: `fairhealth.datasets` 中可用的数据集

## 5 与相关库的比较

表 2 将 FairHealth 与现有的医疗 AI 和公平性工具包进行对比定位。

表 2: 与相关库的功能比较

## 6 安装和使用

FairHealth 需要 Python 3.9+,并在 Python 3.9–3.12 上进行了测试。

```bash
pip install fairhealth
```

```python
import fairhealth as fh
import numpy as np
from fairhealth.fairness.metrics import demographic_parity_diff
from fairhealth.explain.fuzzy import get_fired_rules
from fairhealth.lowresource.triage import assess_dengue_risk
from fairhealth.equity.flood_aid import generate_priority_ranking
from fairhealth.federated.privacy import sparsify

dpd = demographic_parity_diff(y_pred, sensitive)
rules = get_fired_rules(age=42, sbp=145, bs=12.0, hr=88)
result = assess_dengue_risk(8, "male", "urban", "Dhaka",
                           language="bangla")
rankings = generate_priority_ranking(verbose=False)
sparse_w, rate = sparsify(weights, sparsity=0.975)
```

## 7 结论

FairHealth 提供了第一个统一的 Python 库,用于可信医疗 AI,同时解决公平性、隐私和可解释性问题,并特别关注资源匮乏和 LMIC 环境。其六个模块均锚定于经过同行评审的研究,确保每个实现都可追溯、可复现且可引用。通过完全依赖公开可用的数据集,FairHealth 使全球研究人员——包括那些无法访问机构医院的人——能够进行严谨的医疗 AI 研究。

未来的工作将扩展联邦模块,以包括基于 TenSEAL 的完整 CKKS 加密用于神经网络权重矩阵,添加 PTB-XL 对抗性去偏模型作为训练后的工件,并扩展登革热模块以实现与实时 DGHS 仪表板的集成。

## 致谢

作者感谢参与临床医生验证调查的 14 名医疗专业人员,感谢孟加拉国政府公开提供 PDNA 和 DGHS 数据,并感谢 UCI 机器学习存储库、PhysioNet 和 Kaggle 的维护者托管开放健康数据集。

## 参考文献

- [1] Y. Arafet 等人 (2024) Emerging health implications of climate change: dengue outbreaks in bangladesh. 引用自:§4.4。
- [2] AI fairness 360: an extensible toolkit for detecting, understanding, and mitigating unwanted algorithmic bias. 外部链接: Link. 引用自:§2。
- [3] J.H. Cheon, A. Kim, M. Kim, 和 Y. Song (2017) Homomorphic encryption for arithmetic of approximate numbers. In ASIACRYPT. 引用自:§4.3。
- [4] D. Dua 和 C. Graff (2021) UCI machine learning repository: maternal health risk dataset. 外部链接: Link. 引用自:§4.2。
- [5] M. Feldman, S.A. Friedler, J. Moeller, C. Scheidegger, 和 S. Venkatasubramanian (2015) Certifying and removing disparate impact. In Proceedings of the 21st ACM SIGKDD, pp. 25

相似文章

介绍 HealthBench

OpenAI Blog

OpenAI 推出了 HealthBench,这是一个用于评估医疗保健环境中人工智能系统的新基准。该基准由来自 60 个国家的 262 名医生共同创建,包含 5,000 个逼真的健康对话和医生编写的评分标准,用于评估模型在有意义、可信和可改进的指标上的性能。

OpenAI for Healthcare

OpenAI Blog

OpenAI 推出 OpenAI for Healthcare,这是一套企业级产品,包括 ChatGPT for Healthcare 和 API 解决方案,旨在支持医疗组织采用符合 HIPAA 标准的人工智能。该产品提供针对医疗优化的 GPT-5 模型、带有引用的基于证据的检索、策略集成以及工作流自动化工具,这些工具已在斯坦福医学院和加州大学旧金山分校等主要机构中部署。

用AI健康教练拯救生命

OpenAI Blog

# 用AI健康教练拯救生命 来源:[https://openai.com/index/healthify/](https://openai.com/index/healthify/) Healthify十多年来一直在开创性地使用AI驱动健康和健身领域的行为改变。到2018年,Healthify已经拥有超过500万用户,数百名营养师和教练每月与客户交换数百万条信息,每月还有数万小时的通话、饮食和健身计划。Healthify的数据管道

如何打造“谦逊”的AI

MIT News — Artificial Intelligence

MIT研究人员提出了一种用于医疗领域的“谦逊”AI框架,鼓励系统表达不确定性,并以协作副驾驶而非权威预言者的身份发挥作用。