和鲸社区数据分析每周挑战【第九十四期:中风患病预测分析】

news2024/11/26 8:28:58

和鲸社区数据分析每周挑战【第九十四期:中风患病预测分析】

文章目录

    • 和鲸社区数据分析每周挑战【第九十四期:中风患病预测分析】
    • 一、前言
      • 1、背景描述
      • 2、数据说明
      • 3、数据集预览
    • 二、数据读取和数据预处理
    • 三、探索性数据分析
      • 1、绘制相关性矩阵
      • 2、中风患病预测分析

一、前言

本周的挑战内容为:中风患病预测分析

大家可以去我的和鲸鱼主页查看这个项目

在这里插入图片描述

1、背景描述

中风是一种医学疾病,由于流向大脑的血液不足导致细胞死亡。中风主要有两种类型:缺血性中风(缺乏血液流动导致)和出血性中风(出血导致)。两者都会导致大脑的某些部分停止正常运作。

中风的体征和症状可能包括一侧身体无法移动或感觉,理解或说话问题,头晕或一侧视力丧失。症状和体征通常在中风发生后不久就会出现。
如果症状持续不到一两个小时,中风就是短暂性脑缺血发作(TIA),也称为小中风。
出血性中风还可能伴有严重的头痛。中风的症状可能是永久性的。长期并发症可能包括肺炎和膀胱失控。

中风的主要危险因素是高血压
其他危险因素包括高血胆固醇、吸烟、肥胖、糖尿病、以前的TIA、终末期肾病和心房颤动

缺血性中风通常是由血管堵塞引起的,尽管也有一些不太常见的原因。
出血性中风是由出血直接进入大脑或进入大脑膜之间的空间引起的。

出血可能是由于脑动脉瘤破裂引起的。诊断通常基于身体检查,并辅以医学成像,如CT扫描或MRI扫描。
CT扫描可以排除出血,但不一定排除缺血,早期的CT扫描通常不会显示缺血。其他检查,如心电图(ECG)和血液检查,以确定危险因素和排除其他可能的原因。低血糖也可能引起类似的症状。

2、数据说明

  • 《中国成人超重和肥胖症预防控制指南》的BMI分类
BMI身体质量指数说明
< 18.5体重过轻
18.5 - 23.9体重正常
24 - 27.9超重
> 28肥胖
  • 血糖水平

    正常空腹血糖浓度的预期值介于

    70 mg/dL 到 100 mg/dL之间。

    或:3.9 mmol/L 和 5.6 mmol/L 之间

3、数据集预览

数据集来源于本次活动提供:

在这里插入图片描述

二、数据读取和数据预处理

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler, LabelEncoder
from sklearn.neural_network import MLPClassifier
from sklearn.metrics import classification_report, confusion_matrix, accuracy_score
from sklearn.model_selection import validation_curve

# 加载数据集
data = pd.read_csv('brain_stroke.csv', encoding='gbk')

# 处理缺失值
data.fillna(data.mean(), inplace=True)
data.head()

在这里插入图片描述

# 使用 LabelEncoder 对分类特征进行编码
le = LabelEncoder()
categorical_features = ['性别', '工作类型', '住宅类型', '吸烟状况']
for col in categorical_features:
    data[col] = le.fit_transform(data[col])

三、探索性数据分析

1、绘制相关性矩阵

#隐藏警告
import warnings
warnings.filterwarnings("ignore")               #忽略警告信息
plt.rcParams['font.sans-serif']  = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False      # 用来正常显示负号
plt.rcParams['figure.dpi']  = 100        #分辨率

plt.figure(figsize=(12, 10))
sns.heatmap(data.corr(), annot=True, cmap='coolwarm')
plt.title('相关矩阵')
plt.show()

在这里插入图片描述

2、中风患病预测分析

# 分割数据集
X = data.drop('是否中风', axis=1)
y = data['是否中风']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

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

# 创建神经网络模型
model = MLPClassifier(hidden_layer_sizes=(12, 8), activation='relu', solver='adam', random_state=42)

# 训练模型
model.fit(X_train, y_train)

# 预测
y_pred = model.predict(X_test)
# 打印分类报告和混淆矩阵
print(classification_report(y_test, y_pred))
print(confusion_matrix(y_test, y_pred))
              precision    recall  f1-score   support

           0       0.95      1.00      0.97       943
           1       0.00      0.00      0.00        54

    accuracy                           0.94       997
   macro avg       0.47      0.50      0.49       997
weighted avg       0.89      0.94      0.92       997

[[941   2]
 [ 54   0]]
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy: {:.2f}%".format(accuracy * 100))
Accuracy: 94.38%
# 绘制损失和准确率曲线
train_scores, valid_scores = validation_curve(
    MLPClassifier(hidden_layer_sizes=(12, 8), activation='relu', solver='adam', random_state=42),
    X_train, y_train,
    param_name="max_iter",
    param_range=np.arange(1, 100, 10),
    cv=5,
    scoring="accuracy"
)

plt.figure(figsize=(12, 6))
plt.subplot(1, 2, 1)
plt.plot(np.arange(1, 100, 10), np.mean(train_scores, axis=1), label="Training accuracy")
plt.plot(np.arange(1, 100, 10), np.mean(valid_scores, axis=1), label="Validation accuracy")
plt.title('Validation Curve - Accuracy')
plt.xlabel('Number of iterations')
plt.ylabel('Accuracy')
plt.legend()

plt.subplot(1, 2, 2)
train_losses, valid_losses = validation_curve(
    MLPClassifier(hidden_layer_sizes=(12, 8), activation='relu', solver='adam', random_state=42),
    X_train, y_train,
    param_name="max_iter",
    param_range=np.arange(1, 100, 10),
    cv=5,
    scoring="neg_log_loss"
)

plt.plot(np.arange(1, 100, 10), -np.mean(train_losses, axis=1), label="训练损失")
plt.plot(np.arange(1, 100, 10), -np.mean(valid_losses, axis=1), label="验证损失")
plt.title('验证曲线 - 损失')
plt.xlabel('迭代次数')
plt.ylabel('损失')
plt.legend()

plt.tight_layout()
plt.show()

在这里插入图片描述

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

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

相关文章

1 os|linxu常用命令|vim编辑器

文章目录 oslinux 常用命令用户配置切换用户添加用户设置&#xff08;修改&#xff09;密码删除用户总结 目录以及文件操作查看文件或者目录改变工作目录显示当前工作目录创建目录删除空目录拷贝文件或者目录移动文件或者目录删除文件或者目录修改目录或者文件的权限文字设定法…

年过30的我,今年也遇到了职场危机 ...

在软件测试行业摸爬滚打这么多年&#xff0c;即将人到中年&#xff0c;也会和大家一样面临转型或者跳槽的问题。这里总结了一下自我的看法。 对于找工作这个事情&#xff0c;有这么个普遍现象。工作供求无法匹配~ 1、对于测试招聘者&#xff0c;特别是一、二线互联网公司的招…

12.动态规划:子集状压DP和位运算

参考&#xff1a; 0x3f&#xff1a;从集合论到位运算&#xff0c;常见位运算技巧分类总结&#xff01;https://leetcode.cn/circle/discuss/CaOJ45/ 状态压缩DP详细讲解 https://zhuanlan.zhihu.com/p/599427567 【动态规划学习】状压/子集 DP https://leetcode.cn/circle/arti…

zabbix-4-触发器

4.触发器 4.1什么是触发器 当监控的值发现变化后&#xff0c;对应的值不符合预期&#xff0c;则应该通过触发器通知管理人员介入&#xff1b; 比如&#xff1a;监控TCP的80端口&#xff0c;如果存活则符合预期&#xff0c;如果不存活则不符合预期&#xff0c;应该通过触发器通…

从一个线上 Android Bug 回看 Fragment 的基础知识

作者&#xff1a;Kotlin上海用户组 公司的项目在最近遇到了一个与 Fragment 有关的线上 crash&#xff0c;导致这个问题的根本原因比较复杂&#xff0c;导致修复方案的可选项非常有限&#xff0c;不过这个问题的背景、crash 点&#xff0c;以及修复过程都非常有趣&#xff0c;值…

unittest教程__Python+unittest+ddt_实现数据驱动测试(7)

我们设计测试用例时&#xff0c;会出现测试步骤一样&#xff0c;只是其中的测试数据有变化的情况&#xff0c;比如测试登录时的账号密码。这个时候&#xff0c;如果我们依然使用一条case一个方法的话&#xff0c;会出现大量的代码冗余&#xff0c;而且效率也会大大降低。此时&a…

知网英语类专刊《中学生英语》是正规刊物吗?

知网英语类专刊《中学生英语》是正规刊物吗&#xff1f; 《中学生英语》是经国家新闻出版署批准在国内公开发行的教育类学术期刊&#xff0c;由教育部主管&#xff0c;华中师范大学主办的国家级期刊&#xff0c;是正规刊物。 《中学生英语》是中国外语教学期刊质量检测网络入…

南京贸易企业增值税居高不下,该如何解决?

南京贸易企业增值税居高不下&#xff0c;该如何解决&#xff1f; 《税筹顾问》专注于园区招商&#xff0c;您的贴身节税小能手&#xff0c;合理合规节税&#xff01; 南京作为省会城市&#xff0c;近年来由于芯片、生物医药等产业的发展而跻身前十&#xff0c;随着它在教育、军…

【探索 Kubernetes|作业管理篇 系列 11】控制器的核心功能

前言 大家好&#xff0c;我是秋意零。 上一篇结束了 Pod 对象的内容。 今天要探讨的内容是 “控制器”&#xff0c;它是 Kubernetes 编排最核心的功能。理解了 “控制器”&#xff0c;你就能理解 Deployment、StatefulSet、DaemontSet、Job、CroJob 控制器对象。 最近搞了一…

使用parcel搭建threejs开发环境

一、什么是parcel parcel官网&#xff1a;https://www.parceljs.cn/ Parcel是一个快速、零配置的Web应用打包器&#xff0c;可将JavaScript、CSS、HTML和图像等静态文件打包到一个捆绑文件中。它的主要目标是简化Web应用程序的打包过程&#xff0c;使开发人员可以更快速地创建…

测试开发工是做什么的?2023年往后测试之路发展前景?

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 现在公司企业对测…

Linux目录分类说明

在Linux根目录下一般包括如下目录&#xff0c;这里就这些目录的特点做一些归纳。&#xff08;centos8为例&#xff09; 一、/var目录 /var目录是一个包含经常变化的文件的目录。它是Variable的缩写&#xff0c;也有些人解释为Versioned Archives。通常包含以下内容&#xff1a;…

Groovy基础教程

一、概述 Groovy是一种基础JVM(Java虚拟机)的敏捷开发语言&#xff0c;他结合了Python、Ruby和Smalltalk的特性&#xff0c;Groovy代码能够于Java代码很好的结合&#xff0c;也能用于扩展现有代码。由于其运行在JVM的特性&#xff0c;Groovy可以使用其他Java语言编写法的库。 …

电源ATE测试系统-电源模块自动化测试软件ATECLOUD-Power

ATECLOUD-Power测试应用场景 研发测试、产线测试、老化测试、一测二测等 ATECLOUD-Power解决测试痛点 ☁ 人工手动测试&#xff0c;效率低&#xff0c;需要提高测试效率和准确性&#xff1b; ☁ 测试产品种类繁多&#xff0c;测试方法多样&#xff0c;客户需要灵活的解决方案…

六、SpringBoot集成elasticsearch

目录 官网API介绍 1、新建maven项目 2、检查elasticsearch依赖的版本 3、配置RestHighLevelClient对象 4、使用springboot-test测试API的使用 官网API介绍 Java API Client https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/current/index.html …

TypeScript基础使用方法

Author: 德玛玩前端 Date: 2023-06-07 TypeScript 一、Typescript介绍 1.1、TypeScript产生的原因 旧JS是弱类型语言&#xff0c;一个变量先后可以保存不同类型的数据&#xff0c;所以不可靠。旧JS是解释执行语言&#xff0c;一边解释&#xff0c;一边执行&#xff0c;一些低…

python接口自动化(二)--什么是接口测试、为什么要做接口测试(详解)

简介 上一篇和大家一起科普扫盲接口后&#xff0c;知道什么是接口&#xff0c;接口类型等&#xff0c;对其有了大致了解之后&#xff0c;我们就回到主题-接口测试。 什么是接口测试 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各…

7.SpringCloudAlibaba 整合 Sentinel

一、分布式系统遇到的问题 1 服务雪崩效应 在分布式系统中,由于网络原因或自身的原因,服务一般无法保证 100%是可用的。如果一个服务出现了问题,调用这个服务就会出现线程阻塞的情况,此时若有大量的请求涌入,就会出现多条线程阻塞等待,进而导致调用服务瘫痪。 由于服务…

SDP协议是什么,详解SDP协议

一、SDP协议简介 SDP&#xff08;Session Description Protocol&#xff09;是一种会话描述协议&#xff0c;用于描述多媒体会话的参数。它是一种文本协议&#xff0c;通常用于VoIP&#xff08;Voice over Internet Protocol&#xff09;和视频会议等应用中。SDP协议定义了一种…

【自监督论文阅读 1】SimCLR

文章目录 一、摘要二、引言三、方法3.1 主要框架3.2 训练一个大的batchsize 四、数据增强4.1 实验一 数据增强的组合对学习好的特征表达非常重要4.2 对比学习需要更多的数据增强 五、一些实验证明5.1 大模型更有利于无监督对比学习5.2 非线性层的预测头增加了特征表示5.3可调节…