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

基于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. 预测示例

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

注意事项:

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

http://www.kler.cn/a/559665.html

相关文章:

  • 23贪心算法
  • 在 Mac mini M2 上使用Docker快速部署MaxKB:打造本地知识库问答系统
  • C语言多人聊天室 ---chat(客户端聊天)
  • 记录一下VScode可以使用nvcc编译,但VS不行的解决方案
  • DeepSeek技术演进史:从MoE到当前架构
  • 彻底卸载kubeadm安装的k8s集群
  • 深入理解P2P网络架构与实现
  • ubuntu离线安装ollama
  • 【在 Debian Linux下安装 privoxy 将 Socks5 转换为 HTTP 代理与privoxy的过滤配置】
  • 《深度学习实战》第2集:卷积神经网络(CNN)与图像分类
  • pytorch入门级项目--基于卷积神经网络的数字识别
  • 【Python爬虫(45)】Python爬虫新境界:分布式与大数据框架的融合之旅
  • Java List 自定义对象排序 Java 8 及以上版本使用 Stream API
  • 打破常规:用 Python Enum 管理常量的趣味之旅
  • 【计算机网络】传输层TCP协议
  • 详解 为什么 tcp 会出现 粘包 拆包 问题
  • MySQL数据库习题(选择题)
  • 蓝思科技赋能灵伴科技:AI眼镜产能与供应链双升级
  • 设计模式| 观察者模式 Observer Pattern详解
  • Python 网络爬虫入门与实践:从基础到高级技巧