机器学习在脑卒中预测中的应用:不平衡数据集处理方法详解

news2025/2/23 8:01:25

机器学习在脑卒中预测中的应用:不平衡数据集处理方法详解


目录

  1. 引言

    • 脑卒中的全球影响
    • 机器学习在医疗预测中的挑战
    • 类别不平衡问题的核心痛点
  2. 数据预处理与特征选择

    • 数据来源与清洗
    • 缺失值处理方法
    • 类别特征编码
    • 特征选择技术
  3. 处理类别不平衡的四大方法

    • SMOTE(合成少数类过采样技术)
    • 加权投票集成分类器
    • DNN结合Focal Loss
    • PCA-Kmeans聚类与DNN-Focal Loss的混合方法
  4. 实验设计与结果分析

    • 数据集描述与实验设置
    • 不同方法的性能对比
    • 关键指标解读(F1分数、AUC、准确率)
  5. 代码示例

    • 数据预处理与特征工程
    • SMOTE实现
    • 加权投票分类器构建
    • DNN与Focal Loss模型训练
    • PCA-Kmeans与DNN的混合方法
  6. 结论与未来方向

    • 方法优缺点总结
    • 实际应用建议
    • 研究展望

1. 引言

1.1 脑卒中的全球影响

脑卒中是全球第二大死亡原因,占所有死亡病例的11.8%(GBD 2013)。早期预测中风风险对降低死亡率至关重要,而机器学习技术为此提供了新思路。然而,医疗数据集通常存在严重的类别不平衡问题,即中风病例(少数类)远少于非中风病例(多数类),导致模型倾向于忽略少数类,预测性能下降。

1.2 类别不平衡问题的核心痛点

  • 多数类主导:传统模型(如逻辑回归、SVM)在训练时会偏向多数类。
  • 评估指标误导性:仅依赖准确率会掩盖模型对少数类的预测失败。
  • 数据稀缺性:少数类样本不足,难以捕捉关键特征。

本文基于Kaggle的脑卒中数据集,系统比较了四种解决类别不平衡的方法,并通过实验验证其有效性。


2. 数据预处理与特征选择

2.1 数据介绍

特征名称 描述 取值范围 作用
Patient ID 患者的唯一标识符,用于区分不同的个体。 1到5110(整数) 主要用于数据管理和分析,但在建模时通常会被移除,因为它对预测中风没有直接帮助。
Gender(性别) 患者的性别。 Male(男性)、Female(女性)、Other(其他) 性别可能与中风的风险相关,例如某些研究表明男性中风的风险可能高于女性。
Age(年龄) 患者的年龄。 0.08岁到82岁 年龄是中风的重要风险因素之一,通常中风在老年人中更为常见。
Hypertension(高血压) 患者是否患有高血压。 Yes(是)、No(否) 高血压是中风的主要风险因素之一,与中风的发生有很强的相关性。
Heart Disease(心脏病) 患者是否患有心脏病。 Yes(是)、No(否) 心脏病可能增加中风的风险,因为心脏问题可能导致血液流动异常。
Ever Married(是否曾经结婚) 患者是否曾经结婚。 Yes(是)、No(否) 婚姻状况可能与生活方式和健康行为相关,间接影响中风风险。
Work Type(工作类型) 患者的工作类型。 Self-employed(自雇)、Private(私营企业员工)、Government(政府雇员) 工作类型可能与生活方式相关,间接影响健康。
Residence Type(居住类型) 患者的居住类型。 Urban(城市)、Rural(农村) 居住环境可能与生活方式和健康资源相关,间接影响中风风险。
Avg-Glucose Level(平均血糖水平) 患者的平均血糖水平。 55到272 高血糖是中风的风险因素之一。
BMI(体质指数) 患者的体质指数。 10到98 BMI与肥胖相关,肥胖是中风的潜在风险因素。
Smoking Status(吸烟状态) 患者的吸烟状态。 Unknown(未知)、Never(从不吸烟)、Formerly(曾经吸烟)、Smoked(吸烟) 吸烟是中风的重要风险因素。
Stroke(目标变量) 表示患者是否中风。 1(中风)、0(未中风) 这是需要预测的目标变量。

2.2 数据来源与清洗

数据集包含5110个样本,11个特征(如年龄、血糖水平、BMI等),目标变量为是否中风。清洗步骤包括:

  • 移除异常值(如BMI > 60、年龄 < 25、性别为“其他”的样本)。
  • 处理缺失值(仅BMI存在缺失)。
import pandas as pd

# 加载数据
df = pd.read_csv("stroke_dataset.csv")

# 移除异常值
df = df[(df['BMI'] <= 60) & (df['Age'] >= 25) & (df['Gender'] != 'Other')]

# 处理缺失值(简单填补:用中位数填充BMI)
df['BMI'].fillna(df['BMI'].median(), inplace=True)

2.3 缺失值处理方法对比

论文对比了两种方法:

  1. 简单填补:用中位数、众数等填充。
  2. 回归填补:基于其他特征训练回归模型预测缺失值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2303827.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据表的存储过程和函数介绍

文章目录 一、概述二、创建存储过程三、在创建过程中使用变量四、光标的使用五、流程控制的使用六、查看和删除存储过程 一、概述 存储过程和函数是在数据库中定义的一些SQL语句的集合&#xff0c;然后直接调用这些存储过程和函数来执行已经定义好的SQL语句。存储过程和函数可…

为AI聊天工具添加一个知识系统 之117 详细设计之58 思维导图及观察者效应 之2 概念全景图

&#xff08;说明&#xff1a;本文和上一篇问题基本相同&#xff0c;但换了一个模型 deepseek-r1&#xff09; Q1227、在提出项目“为使用AI聊天工具的聊天者加挂一个专属的知识系统”后&#xff0c;我们已经进行了了大量的讨论-持续了近三个月了。这些讨论整体淋漓尽致体现了…

Error [ERR_REQUIRE_ESM]: require() of ES Module

报错信息&#xff1a; 【报错】Message.js 导入方式不对&#xff0c;用的是 ES Moudle 的语法&#xff0c;提示使用 import 引入文件 项目开发没有用到 js-message 依赖&#xff0c;是 node-ipc 依赖中用到的 js-message 依赖&#xff0c; node-ipc 中限制 js-message 版本&a…

GStreamer源码安装1.24版本

从官网下载 1.24的源码包 https://gitlab.freedesktop.org/gstreamer/gstreamer/-/tree/1.24?ref_typeheads#getting-started &#xff0c;尝试过使用git clone 的方式&#xff0c;但速度贼慢&#xff0c;就选择了下载源码包的方式安装依赖 sudo apt install libssl-dev g me…

从CNN到Transformer:遥感影像目标检测的未来趋势

文章目录 前言专题一、深度卷积网络知识专题二、PyTorch应用与实践&#xff08;遥感图像场景分类&#xff09;专题三、卷积神经网络实践与遥感影像目标检测专题四、卷积神经网络的遥感影像目标检测任务案例【FasterRCNN】专题五、Transformer与遥感影像目标检测专题六、Transfo…

从 x86 到 ARM64:CPU 架构的进化与未来

在计算机发展的历史长河中&#xff0c;x86、x64 和 ARM64 这三大主流 CPU 架构各自书写了辉煌的篇章。它们不仅代表了技术的进步&#xff0c;更承载着无数创新者的梦想与努力。 x86&#xff1a;从 16 位到 32 位的辉煌之路 诞生与崛起 1978 年&#xff0c;英特尔&#xff08;…

Java数据结构第十二期:走进二叉树的奇妙世界(一)

专栏&#xff1a;数据结构(Java版) 个人主页&#xff1a;手握风云 目录 一、树型结构 1.1. 树的定义 1.2. 树的基本概念 1.3. 树的表示形式 二、二叉树 2.1. 概念 2.2. 两种特殊的二叉树 2.3. 二叉树的性质 2.4. 二叉树的存储 三、二叉树的基本操作 一、树型结构 1.…

【AI时代】基于AnythingLLM+ Ollama + DeepSeek 搭建本地知识库

一、本地安装Ollama及DeepSeek 参考教程&#xff1a; https://blog.csdn.net/Bjxhub/article/details/145536134 二、下载并安装AnythingLLM AnythingLLM下载地址&#xff1a; https://anythingllm.com/ 傻瓜式安装即可 可以自定义安装路径。三、配置AnythingLLM并使用 3.…

leetcode刷题记录(一百一十五)——64. 最小路径和

&#xff08;一&#xff09;问题描述 64. 最小路径和 - 力扣&#xff08;LeetCode&#xff09;64. 最小路径和 - 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。说明&#xff1a;每次只能向下…

UE5 编辑器辅助/加强 插件搜集

1. Actor Locker 地址&#xff1a;https://www.fab.com/listings/ec26ac5e-4720-467c-a3a6-b5103b6b74d0 使用说明&#xff1a;https://github.com/Gradess2019/ActorLocker 支持&#xff1a;5.0 – 5.5 简单的编辑器扩展。它允许你通过世界轮廓窗口/热键/上下文菜单在编辑器视…

怎么在Github上readme文件里面怎么插入图片?

环境&#xff1a; Github 问题描述&#xff1a; 怎么在Github上readme文件里面怎么插入图片&#xff1f; https://github.com/latiaoge/AI-Sphere-Butler/tree/master 解决方案&#xff1a; 1.相对路径引用 上传图片到仓库 将图片文件&#xff08;如 .png/.jpg&#xff…

什么是矩阵账号?如何高效运营tiktok矩阵账号

‍‌​​‌‌​‌​‍‌​​​‌‌​​‍‌​​​‌​‌​‍‌​​‌​​‌​‍‌​‌‌​‌‌‌‍‌​‌​‌​​​‍‌​​‌​‌‌​‍‌​​​​‌‌​‍‌​‌​​‌‌‌‍‌​​‌‌​‌​‍‌​‌​​‌‌‌‍‌​‌‌‌​​‌‍‌‌​​‌‌‌​‍‌‌​​‌‌​​‍‌…

SpringSecurity初始化的本质

一、对SpringSecurity初始化的几个疑问 通过前面第一次请求访问的分析我们明白了一个请求就来后的具体处理流程 对于一个请求到来后会通过FilterChainProxy来匹配一个对应的过滤器链来处理该请求。那么这里我们就有几个疑惑。 FilterChainProxy什么时候创建的?过滤器链和对应的…

自注意力机制和CNN的区别

CNN&#xff1a;一种只能在固定感受野范围内进行关注的自注意力机制。​CNN是自注意力的简化版本。自注意力&#xff1a;具有可学习感受野的CNN。自注意力是CNN的复杂形态&#xff0c;是更灵活的CNN&#xff0c;经过某些设计就可以变为CNN。 越灵活、越大的模型&#xff0c;需要…

本地部署DeepSeek-R1模型教程

文章目录 第一步&#xff1a;安装运行框架 哈喽各位小伙伴们&#xff0c;最近deepseek非常的火&#xff0c;不过因为全球访问量剧增经常会导致deepseek的服务器繁忙&#xff0c;如果想要稳定使用就得靠本地部署了&#xff0c;不仅可以稳定使用还能保护数据隐私&#xff0c;今天…

k2路由器登录校园网

教程1刷入Breed&#xff0c;并手动刷入Padavan固件&#xff1a;斐讯K1、K2、K2P 刷机、刷入Breed 辅助工具 | tb (tbvv.net) Padavan下载网址&#xff1a; 我用的是&#xff1a; Padavan 登录的网址是 192.168.123.1 Padavan配置教程&#xff1a; 先用网线连上校园网&#…

基于Springboot学生宿舍水电信息管理系统【附源码】

基于Springboot学生宿舍水电信息管理系统 效果如下&#xff1a; 系统登陆页面 系统用户首页 用电信息页面 公告信息页面 管理员主页面 用水信息管理页面 公告信息页面 用户用电统计页面 研究背景 随着高校后勤管理信息化的不断推进&#xff0c;学生宿舍水电管理作为高校后勤…

手机怎样玩电脑游戏?

如果您正在寻找一款能够实现手机远程控制电脑玩游戏的软件&#xff0c;本文推荐远程看看软件。这款软件不仅支持手机远程控制电脑&#xff0c;还具备电脑与电脑之间的多端互控功能&#xff0c;您能够随时随地畅玩游戏&#xff0c;享受无缝的游戏体验。此外&#xff0c;远程看看…

【Linux网络】认识协议(TCP/UDP)、Mac/IP地址和端口号、网络字节序、socket套接字

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;Linux 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 1、初识协议2、UDP、TCP3、Mac、IP地址4、端口号5、网络字节序6、socket 1、初识协议 协议就是一种约定。如何让不同厂商生产的计…

【软考知识】奇偶校验码,循环冗余码,海明码介绍

文章目录 **1. 奇偶校验码 (Parity Check Code)****基本原理****算法流程****优点与缺点****应用场景** **2. 循环冗余码 (Cyclic Redundancy Check, CRC)****基本原理****算法流程****例子****优点与缺点****应用场景** **3. 海明码 (Hamming Code)****基本原理****算法流程**…