gondakly/Intelligent-Programming-final-project_Heart_Detection

GitHub: gondakly/Intelligent-Programming-final-project_Heart_Detection

一个融合规则专家系统与决策树的心脏病风险预测系统,提供可解释的风险评估与可视化分析。

Stars: 0 | Forks: 0

# 心脏病检测系统 一个结合了**基于规则的专家系统**和**决策树机器学习模型**的混合心血管风险评估系统,具备 Streamlit 网页界面。 # 心脏病数据集描述 ## 1. 项目背景 该数据集用于构建一个心脏病诊断工具。它将患者的人口统计学数据与临床检测结果相结合,以对患者的风险等级进行分类。 ## 2. 统计摘要 | 特征 | 数据类型 | 平均值 | 最小值 | 最大值 | 缺失值 | | :--- | :--- | :--- | :--- | :--- | :--- | | **年龄 (Age)** | int64 | 54.43 | 29 | 77 | 0 | | **静息血压 (Trestbps)** | int64 | 131.61 | 94 | 200 | 0 | | **胆固醇 (Cholesterol)** | int64 | 246.00 | 126 | 564 | 0 | | **最大心率 (Thalach)** | int64 | 149.11 | 71 | 202 | 0 | | **ST段压低 (Oldpeak)** | float64 | 1.07 | 0.0 | 6.2 | 2 | ## 3. 属性信息 - **性别 (Sex)**: (1 = 男性; 0 = 女性) - **胸痛类型 (cp)**: 疼痛类型 (0-3)。值 0 为典型心绞痛,而 3 为无症状。 - **空腹血糖 (fbs)**: > 120 mg/dl 记为 1。 - **运动诱发心绞痛 (exang)**: 运动导致心绞痛 (1 = 是)。 - **Ca**: 在荧光透视下可见的主要血管数量 (0-4)。数值越高通常风险越高。 - **目标变量 (Target)**: 预测属性。0 = 低风险(无疾病),1 = 高风险(心脏病)。 ## 4. 观察 - 数据集中心脏病 (51.3%) 与无心脏病 (48.7%) 的分布相对平衡。 - `restecg` 和 `oldpeak` 中存在少量缺失值,需要在处理步骤中进行中位数/均值填补。 - `thalach`(最大心率)和 `cp`(胸痛类型)等特征与目标变量高度相关。 ## 安装 ``` pip install -r requirements.txt streamlit run ui/app.py ``` ## 运行每个步骤 ``` # 步骤 2 — 可视化(5 张图) python notebooks/data_visualization.py # 步骤 4 — 训练决策树 python ml_model/train_model.py # 步骤 5 — 比较系统 python reports/generate_comparison.py # 步骤 3+4+5 — 完整的 Streamlit UI streamlit run ui/app.py # Expert System CLI(交互式) python rule_based_system/expert_system.py ``` ## 使用的特征 | 特征 | 描述 | |---------|-------------| | `oldpeak` | ST段压低(归一化 0–1) | | `exang` | 运动诱发心绞痛 (0/1) | | `thalach` | 最大心率(归一化 0–1) | | `cp` | 胸痛类型 (0=无症状 … 3=典型) | | `ca` | 显影血管数量 (0–4) | | `thal` | 地中海贫血类型 (0=未知, 1=正常, 2=固定, 3=可逆) | | `slope` | ST段斜率 (0=下降, 1=平坦, 2=上升) | | `sex` | 1=男性, 0=女性 | ## 专家系统规则 (12 条) | # | 条件 | 风险 | |---|-----------|------| | 1 | 运动诱发心绞痛 (exang=1) | 高 | | 2 | ST段压低 > 0.4 | 高 | | 3 | 主要血管 ≥ 2 | 高 | | 4 | 可逆性地中海贫血 (thal=3) | 高 | | 5 | 男性无症状胸痛 | 高 | | 6 | 最大心率 < 0.35 (极低) | 高 | | 7 | 下斜型 ST 段 (slope=0) | 中 | | 8 | 1 根血管显影 (ca=1) | 中 | | 9 | 男性中度 ST 段压低 | 中 | | 10 | 低心率 + 平坦斜率 | 中 | | 11 | 固定地中海贫血 (thal=2) | 中 | | 12 | 全部正常 | 低 |
标签:AI预测, Apex, Experta, Kubernetes, Scikit-Learn, Streamlit, 专家系统, 临床数据, 云计算, 交互式UI, 决策树, 分类算法, 医学诊断, 心脏病预测, 心血管疾病, 数据预处理, 机器学习, 模型比较, 模型评估, 混合系统, 特征工程, 统计可视化, 缺失值处理, 规则引擎, 访问控制, 逆向工具