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

案例2:逻辑回归预测糖尿病

引言

糖尿病是一种常见的慢性疾病,早期准确的诊断对于疾病的治疗和管理至关重要。机器学习算法在医学诊断领域有着广泛的应用潜力,其中逻辑回归作为一种简单且有效的分类算法,可以用于预测个体是否患有糖尿病。本文将利用糖尿病数据集,通过逻辑回归模型进行糖尿病的预测分析,并对模型的性能进行评估。

数据加载与预处理

  1. 数据加载:使用 sklearn 库中的 load_diabetes 函数加载糖尿病数据集。该数据集包含了关于患者的多种生理特征信息,如年龄、性别、体重指数等,目标变量为患者的糖尿病相关指标。
diabetes = load_diabetes()
X = diabetes.data
y = (diabetes.target > 140).astype(int)  # 目标值大于140视为有糖尿病

这里将目标变量进行了二值化处理,将目标值大于 140 的样本标记为 1(患有糖尿病),小于等于 140 的样本标记为 0(无糖尿病)。

  1. 数据划分:使用 train_test_split 函数将数据集划分为训练集和测试集,其中测试集占比为 20%,并设置随机种子为 42 以确保结果的可重复性。
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
  1. 特征标准化:由于不同特征的取值范围可能差异较大,为了提高模型的训练效果和收敛速度,使用 StandardScaler 对特征进行标准化处理,将特征缩放到均值为 0,标准差为 1 的范围内。
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

模型训练与预测

  1. 模型选择与训练:选择逻辑回归模型 LogisticRegression,并使用训练集数据对模型进行训练,拟合模型的参数。
model = LogisticRegression()
model.fit(X_train, y_train)
  1. 预测:使用训练好的模型对测试集数据进行预测,得到预测结果。
y_pred = model.predict(X_test)

模型评估

  1. 混淆矩阵:通过 confusion_matrix 函数计算混淆矩阵,展示模型在不同类别上的预测情况。
print("混淆矩阵:")
print(confusion_matrix(y_test, y_pred))

混淆矩阵中的元素分别表示真正例(TP)、假正例(FP)、真反例(TN)和假反例(FN)的数量,通过这些值可以进一步分析模型的性能。

  1. 分类报告:使用 classification_report 函数生成分类报告,报告中包含了精确率、召回率、F1 值等指标,从多个角度评估模型的分类性能。
print("\n分类报告:")
print(classification_report(y_test, y_pred))

精确率衡量了预测为正例的样本中实际为正例的比例,召回率衡量了实际为正例的样本中被正确预测为正例的比例,F1 值是精确率和召回率的调和平均数。

  1. 准确率:通过 accuracy_score 函数计算模型的准确率,即所有预测正确的样本占总样本的比例。
print("准确率:", accuracy_score(y_test, y_pred))

单个样本预测

为了展示模型在实际应用中的预测能力,我们假设一个新的样本,该样本包含了与糖尿病数据集相同的 10 个特征。首先对新样本进行标准化处理,然后使用训练好的模型进行预测。

new_sample = np.array([[0.038, 0.050, 0.061, 0.081, 0.043, 0.061, 0.033, 0.015, 0.023, 0.056]])  # 10个特征
new_sample_scaled = scaler.transform(new_sample)
prediction = model.predict(new_sample_scaled)
print("新样本预测结果(0 = 无糖尿病, 1 = 患有糖尿病):", prediction[0])

通过预测结果可以判断该样本是否患有糖尿病。

结论

通过对糖尿病数据集的逻辑回归分析,我们建立了一个能够预测个体是否患有糖尿病的模型,并对模型进行了全面的评估。从评估结果来看,模型在测试集上取得了一定的准确率,但也存在一定的误判情况。在实际应用中,逻辑回归模型可以作为一种辅助工具帮助医生进行糖尿病的初步诊断,但还需要结合更多的医学知识和临床经验进行综合判断。同时,未来可以进一步探索其他更复杂的机器学习算法或对模型进行优化,以提高糖尿病预测的准确性和可靠性。

写在最后

机器学习实战百例训练营正在持续更新中!
在这里插入图片描述

相关文章:

  • 计算机网络面试篇
  • 基于开源 AI 大模型、AI 智能名片及 S2B2C 商城小程序源码的个人 IP 用户运营策略研究
  • 从零开始搭建向量数据库:基于 Xinference 和 Milvus 的文本搜索实践
  • C++语法之命名空间二
  • Kali Linux 2025.1a 发布:新增工具、年度主题更新
  • 【前端】-jQuery(带你让你深入了解学习使用jQuery)
  • 在 Elasticsearch 中探索基于 NVIDIA 的 GPU 加速向量搜索
  • Ubuntu20.04安装并配置Pycharm2020.2.5
  • 再学:delegateCall使用及合约升级
  • TypeScript模块 vs JavaScript模块:现代化开发的模块化之道
  • 绿盟科技春招面试
  • 游戏开发全流程及其工具详解
  • 【QA】策略模式在QT有哪些应用
  • JavaScript进阶篇:六、JavaScript 作用域与闭包
  • Linux | 环境变量PATH+编写第一个自己的命令
  • axios和fetch的对比
  • 【在校课堂笔记】Python 第6节课 总结
  • 计算机毕业设计:小型图书管理系统设计与实现
  • Nginx
  • ‌C# I/O 核心用法
  • 公安部部署“昆仑2025”专项工作,严打环食药等领域突出犯罪
  • 习近平同瑞典国王卡尔十六世·古斯塔夫就中瑞建交75周年互致贺电
  • 农行原首席专家兼浙江省分行原行长冯建龙主动投案,正接受审查调查
  • 用社群活动维系“不开发”古镇的生命力
  • A股高开高走,三大股指涨超1.1%:两市成交1.3万亿元,近5000股收涨
  • 赵心童世锦赛历史性夺冠,你今天打斯诺克很可能订不到位