利用逻辑回归判断病人肺部是否发生病变

      大家好,我是带我去滑雪!

      判断肺部是否发生病变可以及早发现疾病、指导治疗和监测疾病进展,以及预防和促进肺部健康,定期进行肺部评估和检查对于保护肺健康、预防疾病和提高生活质量至关重要。本期将利用相关医学临床数据结合逻辑回归判断病人肺部是否发生病变,其中响应变量为group(1表示肺部发生病变,0表示正常),特征变量为ESR(表示红细胞沉降率)、CRP(表示C-反应蛋白)、ALB(表示白蛋白)、Anti-SSA(表示抗SSA抗体)、Glandular involvement(表示腺体受累)、gender(表示性别)、c-PSA(cancer-specific prostate-specific antigen)、CA 15-3(Cancer Antigen 15-3)、TH17(Th17细胞)、ANA(代表抗核抗体)、CA125(Cancer Antigen 125)、LDH(代表乳酸脱氢酶)。下面开始使用逻辑回归进行肺部病变判断。

(1)导入相关模块与数据

import pandas as pd

import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import confusion_matrix
from sklearn.metrics import classification_report
from sklearn.metrics import cohen_kappa_score#导入包
import numpy as np
from scipy.stats import logistic
import matplotlib.pyplot as plt
titanic = pd.read_csv('filename1.csv')
titanic#导入数据

输出结果:

data.Ageimpute.data.ESR..mean.impute.data.CRP..mean.impute.data.ALB..mean.impute.data.Anti.SSA..median.impute.data.Glandular.involvement..median.impute.data.Gender..median.impute.data.c.PSA..mean.impute.data.CA153..mean.impute.data.TH17..mean.impute.data.ANA..median.impute.data.CA125..mean.impute.data.LDH..mean.data.group
06721.0000004.81000038.6926610000.3000003.5000010.33000013.000000212.2104930
17833.00000012.08991641.1000000000.61093122.400007.465353117.500000485.0000000
26924.0000002.25000042.7000000000.3000005.400008.02000004.360000236.0000000
37143.00000021.80000039.2000000000.30000011.110005.50000016.700000166.0000000
46920.0000002.43000047.6000003000.3000006.930004.31000003.520000223.0000000
.............................................
9546340.2749142.37000040.3000002000.4300006.100006.56000007.720000234.0000000
9556827.0000003.52000041.0000003000.3200007.520004.78000017.150000254.0000000
9566140.27491412.08991640.7000000000.61093112.463031.79000019.392344161.0000000
9576027.00000035.40000038.3000000000.2000007.680005.70000009.290000256.0000000
9586830.0000002.28000044.4000000000.2000005.320004.43000004.710000172.0000000

959 rows × 14 columns

(2)数据处理

X = titanic.iloc[:,:-1]
y = titanic.iloc[:,-1]
X=pd.get_dummies(X,drop_first = True)
X

(3)划分训练集与测试集

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
X_train, X_test, y_train, y_test =  train_test_split(X,y,test_size=0.2,stratify=None, random_state=0)#划分训练集和测试集

(4)拟合逻辑回归

model =  LogisticRegression(C=1e10)
model.fit(X_train, y_train)

model.intercept_    #模型截距
model.coef_       #模型回归系数

输出结果:

array([[ 0.03899236,  0.00458312,  0.000863  , -0.10140358, -0.09681747,0.74167081,  0.56011254,  0.24636358,  0.0226635 , -0.02681392,0.4987412 , -0.01932326,  0.00211805]])

(5)使用逻辑回归测试集进行评价分类准确率

model.score(X_test, y_test)

输出结果:

0.6822916666666666

(6)测试集预测所有种类的概率

prob = model.predict_proba(X_test)
prob[:5]

输出结果:

array([[0.71336774, 0.28663226],[0.34959506, 0.65040494],[0.91506198, 0.08493802],[0.24008149, 0.75991851],[0.55969043, 0.44030957]])

(7)模型预测

pred = model.predict(X_test)
pred[:5]#计算测试集的预测值,展示前五个值

输出结果:

array([0, 1, 0, 1, 0], dtype=int64)

(8)计算混淆矩阵

table = pd.crosstab(y_test, pred, rownames=['Actual'], colnames=['Predicted'])
table

输出结果:

Predicted01
Actual
09922
13932

(9)计算基于混淆矩阵诸多评价指标 

print(classification_report(y_test, pred, target_names=['yes', 'no']))

输出结果:

                precision    recall  f1-score   supportyes       0.72      0.82      0.76       121no       0.59      0.45      0.51        71accuracy                           0.68       192macro avg       0.65      0.63      0.64       192
weighted avg       0.67      0.68      0.67       192

(10)绘制ROC曲线

from scikitplot.metrics import plot_roc
plot_roc(y_test, prob)
x = np.linspace(0, 1, 100)
plt.plot(x, x, 'k--', linewidth=1)
plt.title('ROC Curve (Test Set)')#画ROC曲线
plt.savefig("E:\工作\硕士\博客\squares1.png",
            bbox_inches ="tight",
            pad_inches = 1,
            transparent = True,
            facecolor ="w",
            edgecolor ='w',
            dpi=300,
            orientation ='landscape')

输出结果:

 

 需要数据集的家人们可以去百度网盘(永久有效)获取:

链接:https://pan.baidu.com/s/1E59qYZuGhwlrx6gn4JJZTg?pwd=2138
提取码:2138 


更多优质内容持续发布中,请移步主页查看。

   点赞+关注,下次不迷路!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式系统入门实战:探索基本概念和应用领域

嵌入式系统是一种专用的计算机系统,它是为了满足特定任务而设计的。这些系统通常具有较低的硬件资源(如处理器速度、内存容量和存储容量),但具有较高的可靠性和实时性。嵌入式系统广泛应用于各种领域,如家用电器、汽车、工业控制、医疗设备等。 嵌入式系统的基本概念 微控…

力扣2. 两数相加

2. 两数相加 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个…

从《离婚律师》中学习代理模式

〇、前言 在2014年的时候,有一部非常火爆的电视剧叫做《离婚律师》,里面讲述了两名离婚律师池海东和罗郦的爱恨情仇,片子非常好看,当时我自己也怒刷了好几遍。 那么,在本剧的第四集中,有一段非常搞笑的剧情…

docker 04.更加重要的命令

之前的都是基础命令, 前台交互进程和后台守护进程: 重新进入容器: docker中的导入导出: docker中的拷贝到:

AliOS-Things引入

目录 一、简介 1.1 硬件抽象层 1.2 AliOS-Things内核 rhino ​编辑 1.3 AliOS-Things组件 二、如何进行AliOS-Things开发 三、安装环境 安装python pip git 修改pip镜像源 安装aos-cube 一、简介 AliOS-Things是阿里巴巴公司推出的致力于搭建云端一体化LoT软件。AliOS-…

centos升级python3.10,中间遇到问题,终于解决了

升级为python3.10 yum updateyum install openssl-devel bzip2-devel libffi-develyum groupinstall "Development Tools"wget https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tgztar -xzf Python-3.10.2.tgzcd Python-3.10.2./configure --enable-optimi…

Spring Boot Actuator的Env端点存在本地文件包含(LFI)漏洞CVE-2020-5421

文章目录 0.前言1.参考文档2.基础介绍3.漏洞利用原理3.解决方案1. 升级Spring Boot版本2. 限制端点的访问3. 禁用环境端点4. 不公开敏感的Actuator端点5. 开启安全审计 0.前言 背景: Spring Boot Actuator的Env端点存在本地文件包含(LFI)漏洞CVE-2020-5421。被扫描到…

Pytorch学习:神经网络模块torch.nn.Module和torch.nn.Sequential

文章目录 1. torch.nn.Module1.1 add_module(name,module)1.2 apply(fn)1.3 cpu()1.4 cuda(deviceNone)1.5 train()1.6 eval()1.7 state_dict() 2. torch.nn.Sequential2.1 append 3. torch.nn.functional.conv2d 1. torch.nn.Module 官方文档…

沉浸式VR虚拟实景样板间降低了看房购房的难度

720 全景是一种以全景视角为特点的虚拟现实展示方式,它通过全景图像和虚拟现实技术,将用户带入一个仿佛置身其中的沉浸式体验中。720 全景可以应用于旅游、房地产、展览等多个领域,为用户提供更为直观、真实的体验。 在房地产领域&#xff0c…

node-red - 读写操作redis

node-red - 读写操作redis 一、前期准备二、node-red安装redis节点三、node-red操作使用redis节点3.1 redis-out节点 - 存储数据到redis3.2 redis-cmd节点 - 存储redis数据3.3 redis-in节点 - 查询redis数据 附录附录1:redis -out节点示例代码附录2:redi…

Java eight 解读流(Stream)、文件(File)、IO和异常处理的使用方法

目录 Java 流(Stream)、文件(File)和IO读取控制台输入读写文件FileInputStreamFileOutputStream Java目录 Java 异常处理 Java 流(Stream)、文件(File)和IO java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。 Java.io 包中的流支持很多种…

matlab-对数据集加噪声并实现tsne可视化

matlab-对数据集加噪声并实现tsne可视化 最近才知道,原来可以不用模型,也能实现对数据集数据的可视化。 **一、**以COIL-100数据集为例子。 问题: 前提:首先对COIL-100数据集根据角度0-175和180-255,分别划分成C1,C…

c++学习之vector的实现

在学习实现vector之前我们会看到对于库中的vector的实现,这里并非使用在学习string那样的定义方式,而是利用迭代器,也就是指针来实现的,这在功能的实现时极大的方便了我们。 那么我们就模仿库这样的方式实现我们呢经常会用到的一些…

PowerBuilder连接SQLITE3

PowerBuilder,一个古老的IDE,打算陆续发些相关的,也许还有人需要,内容可能涉及其他作者,但基本都是基于本人实践整理,如涉及归属,请联系. SQLite,轻型数据库,相对与PowerBuilder来说是个新事务,故发数来,以供参考. PB中使用OLE Microsoft OLE DB方式进行连接,如下 // Profile…

邮件群发的功能特性

自动切换IP登录多账户发送 保证第三方发件邮箱系统发送成功率 由于第三方免费邮箱如同个IP登录多个163账号会造成被屏蔽的问题,我们采用自动拨号vps的方式可全国多个地区自动拨号切换IP,自动保证每个账号同时只登录一个账号发送,更可以多种类型小号混合…

kafka+Kraft模式集群+安全认证

Kraft模式安全认证 前章内容聊到了Kafka的Kraft集群的配置及使用。本篇再来说说kafka的安全认证方面的配置,。 Kafka提供了多种方式来进行安全认证,包括身份认证、授权和加密传输。一些常用的Kafka安全认证方式: SSL/TLS:使用S…

数据库的基本概念

数据库 数据库由表集合组成,它是以一定的组织方式存储的相互有关的数据集合。 表:记录:行,字段(属性):列,以行列的形式就组成了表(数据存储在表中)。 关系数…

学术加油站|基于端到端性能的学习型基数估计器综合测评

编者按 本文系东北大学李俊虎所著,也是「 OceanBase 学术加油站」系列第 11 篇内容。 「李俊虎:东北大学计算机科学与工程学院在读硕士生,课题方向为数据库查询优化,致力于应用 AI 技术改进传统基数估计器,令数据库选…

【LeetCode】3. 无重复字符的最长子串

3. 无重复字符的最长子串(中等) 方法:滑动窗口 哈希表 思路 这道题主要用到思路是:滑动窗口 什么是滑动窗口? 其实就是一个队列,比如例题中的 abcabcbb,进入这个队列(窗口)为 ab…

版本控制 Git工具的使用

版本控制的概念: 版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。简单来说就是用于管理多人协同开发…