当前位置: 首页 > news >正文

基于python实现机器学习的心脏病预测系统

以下是一个基于 Python 实现的简单心脏病预测系统代码示例,我们将使用 Scikit - learn 库中的机器学习算法(这里以逻辑回归为例),并使用公开的心脏病数据集。

步骤:

  1. 数据加载与预处理:加载心脏病数据集,对数据进行划分和标准化处理。
  2. 模型训练:使用逻辑回归算法训练模型。
  3. 模型评估:评估模型的性能。
  4. 预测:使用训练好的模型进行预测。

代码实现:

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, classification_report

# 1. 数据加载与预处理
# 从 CSV 文件中加载心脏病数据集
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/heart-disease/processed.cleveland.data"
column_names = ['age', 'sex', 'cp', 'trestbps', 'chol', 'fbs', 'restecg', 'thalach',
                'exang', 'oldpeak', 'slope', 'ca', 'thal', 'target']
data = pd.read_csv(url, names=column_names)

# 处理缺失值
data = data.replace('?', pd.NA)
data = data.dropna()

# 分离特征和目标变量
X = data.drop('target', axis=1)
y = data['target']
# 将目标变量转换为二进制(0 表示无心脏病,1 表示有心脏病)
y = y.apply(lambda x: 1 if x > 0 else 0)

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 数据标准化
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

# 2. 模型训练
# 创建逻辑回归模型
model = LogisticRegression()
# 训练模型
model.fit(X_train_scaled, y_train)

# 3. 模型评估
# 在测试集上进行预测
y_pred = model.predict(X_test_scaled)

# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"模型准确率: {accuracy:.2f}")

# 打印分类报告
print("分类报告:")
print(classification_report(y_test, y_pred))

# 4. 预测示例
new_patient_data = [[63, 1, 3, 145, 233, 1, 0, 150, 0, 2.3, 0, 0, 1]]
# 对新数据进行标准化处理
new_patient_data_scaled = scaler.transform(new_patient_data)
# 进行预测
prediction = model.predict(new_patient_data_scaled)
if prediction[0] == 1:
    print("预测结果: 有心脏病")
else:
    print("预测结果: 无心脏病")

代码解释:

  1. 数据加载与预处理

    • 使用 pandas 库从 UCI 机器学习库中加载心脏病数据集。
    • 处理缺失值,将 ? 替换为 NaN 并删除包含缺失值的行。
    • 分离特征和目标变量,并将目标变量转换为二进制。
    • 使用 train_test_split 函数将数据集划分为训练集和测试集。
    • 使用 StandardScaler 对数据进行标准化处理。
  2. 模型训练

    • 创建逻辑回归模型并使用训练集进行训练。
  3. 模型评估

    • 使用测试集进行预测,并计算准确率和分类报告。
  4. 预测示例

    • 提供一个新患者的数据,对其进行标准化处理并使用训练好的模型进行预测。

注意事项:

  • 可以尝试使用其他机器学习算法(如决策树、随机森林等)来提高模型性能。
  • 数据集可能需要进一步的特征工程和调优,以获得更好的预测结果。

相关文章:

  • 导出指定文件夹下的文件结构 工具模块-Python
  • PostgreSQL的学习心得和知识总结(一百六十九)|深入理解PostgreSQL数据库之 Group By 键值消除 的使用和实现
  • 【Pandas】pandas Series reindex
  • MySQL 的存储引擎简介
  • “深入浅出”系列之C++:(21)C++23
  • 使用 Ansys HFSS 对植入式医疗设备进行无线电力传输和 SAR 仿真
  • Day41 移除链表元素
  • 查询计算每一天的累计销售金额以及与前一天相比的销售金额增长额
  • 编译linux SDK
  • html网络安全工具源码 网络安全前端
  • 网络安全 逆向 apk 网络安全逆向分析
  • DeepSeek-学习与实践
  • 电容的温度系数分析
  • Qt中的MOC元对象系统内部原理介绍与开发应用
  • 【Git】初识Git 基础操作
  • DL/CV领域常见指标术语(FLOPS/mIoU/混淆矩阵/F1-measure)------一篇入门
  • C/C++流星雨
  • vue3 ref和reactive的区别
  • MOS管炸了,PWM“死区”时间得了解一下
  • 九联UNT403AS_晶晨S905L3S芯片_2+8G_安卓9.0_卡刷固件包
  • 今天北京白天气温超30℃,晚间为何下冰雹?
  • A股三大股指涨跌互现:银行股领涨,两市成交12915亿元
  • 高适配算力、行业大模型与智能体平台重塑工业城市
  • 非洲雕刻艺术有着怎样的“变形之美”
  • 面对非专业人士,科学家该如何提供建议
  • 经济日报刊文:品牌经营不能让情怀唱“独角戏”