在心血管疾病临床诊断中,心脏衰竭的早期风险评估对降低病死率至关重要。本次以 Kaggle 公开的心脏衰竭临床数据集为基础,用 Python 实现从数据挖掘建模到 Streamlit Web 应用部署的完整决策支持系统,可通过患者 12 项临床指标快速预测 1 年内心脏衰竭死亡风险,为基层医生和患者提供量化的辅助决策依据。



一、项目核心技术栈与开发目标
1.开发目标
基于 299 条心脏衰竭临床记录,构建机器学习模型,实现指标输入→数据转换→风险预测→个性化医学建议的全流程自动化,模型需满足临床辅助决策要求,Web 应用操作简便、适配多设备。
2.核心技术栈
| 技术模块 | 所用工具 / 库 | 核心作用 |
|---|---|---|
| 数据处理与探索 | Pandas、NumPy、Matplotlib | 数据清洗、可视化、异常值处理 |
| 机器学习建模 | Scikit-learn | 数据集划分、特征标准化、随机森林模型训练与评估 |
| 模型持久化 | Pickle | 保存训练好的模型、标准化器,供 Web 应用调用 |
| Web 应用开发 | Streamlit | 快速构建交互式无代码前端,实现多页面交互和中文支持 |
二、数据集探索与分析
本次使用 Kaggle 公开的「Heart Failure Clinical Records Dataset」,由巴基斯坦心脏病研究所收集,是心血管疾病预测的经典基准数据集,无缺失值、数据质量良好,适合作为入门级医学数据挖掘实战案例。
1.数据集核心信息
- 样本规模:299 条患者记录,其中死亡 96 例(32.1%)、存活 203 例(67.9%),轻微类别不平衡,符合临床数据特征;
- 特征维度:12 个输入特征(含基本信息、基础疾病、心脏功能、血液指标)+1 个二分类目标变量(DEATH_EVENT:是否因心脏衰竭死亡);
- 数据类型:包含连续型数值特征(如年龄、射血分数)和二分类特征(如糖尿病、吸烟史);
- 随访周期:4-285 天,平均 130.3 天,确保目标变量标记的可靠性。
2.数据探索核心代码
import pandas as pd
import matplotlib.pyplot as plt
# 配置中文显示与输出格式
plt.rcParams[] = []
plt.rcParams[] =
pd.set_option(, )
pd.set_option(, )
pd.set_option(, )
data_path =
heart_df = pd.read_csv(data_path, encoding=)
(* + + *)
(heart_df.head())
( + * + + *)
heart_df.info()
( + * + + *)
(heart_df.describe().())
( + * + + *)
death_dist = heart_df[].value_counts()
(death_dist)
()
fig, ax = plt.subplots(figsize=(, ))
death_dist.plot(kind=, color=[, ], ax=ax)
ax.set_title(, fontsize=)
ax.set_xlabel(, fontsize=)
ax.set_ylabel(, fontsize=)
ax.set_xticklabels(ax.get_xticklabels(), rotation=)
plt.savefig(, dpi=, bbox_inches=)
plt.close()
()


