44、基于深度学习的癌症检测(matlab)
1、基于深度学习的癌症检测原理及流程
基于深度学习的癌症检测是利用深度学习算法对医学影像数据进行分析和诊断,以帮助医生准确地检测癌症病变。其原理和流程主要包括以下几个步骤:
-
数据采集:首先需要收集包括X光片、CT扫描、MRI等医学影像数据以及对应的癌症诊断结果的大量数据集。
-
数据预处理:对采集的医学影像数据进行预处理,包括去噪、标准化、图像增强等操作,以确保数据的质量和一致性。
-
特征提取:利用深度学习算法对预处理后的影像数据进行特征提取,提取出代表影像中癌症病变特征的高级特征表示。
-
训练模型:搭建深度学习模型,如卷积神经网络(CNN)、循环神经网络(RNN)等,使用提取的特征表示进行训练,让模型能够自动学习影像数据中与癌症相关的模式和规律。
-
模型评估:通过验证集或交叉验证等方法对训练好的深度学习模型进行评估,评估模型在未见过的数据上的性能表现。
-
癌症检测:使用训练好的深度学习模型对新的医学影像数据进行检测和诊断,判断是否存在癌症病变,并输出诊断结果。
-
可解释性分析:在输出诊断结果的同时,深度学习模型还可以提供对诊断依据的可解释性分析,解释模型是如何判断出病变的,并帮助医生理解判断依据。
通过以上流程,基于深度学习的癌症检测技术可以提高检测的准确性和效率,帮助医生更早地发现和治疗癌症,促进癌症的早期诊断和治疗。
2、基于深度学习的癌症检测说明
针对问题
训练一个神经网络来使用蛋白质表达谱上的质谱数据检测癌症。
数据来源
来自 FDA-NCI 临床蛋白质组学计划数据库的ovarian_dataset.mat文件
数据预处理
新文件包含变量 Y、MZ 和 grp。
说明:
Y 中的每列表示从一名患者身上获取的测量值。Y 中有 216 列,表示有 216 个患者,其中 121 个是卵巢癌患者,95 个是非癌症患者。
Y 中的每行表示 MZ 中指示的特定质量-电荷值下的离子强度水平。MZ 中有 15000 个质量-电荷值,Y 中的每行代表在特定质量-电荷值下患者的离子强度水平。
grp 保存关于哪些样本表示癌症患者以及哪些样本表示非癌症患者的索引信息。
3、关键特征排名
说明
特征的数量远大于观测值的数量,但是单个特征即可实现正确分类。因此,目标是找到一个分类器,该分类器应适当学习如何加权多个特征,同时生成不会过拟合的广义映射。
找到重要特征的简单方法:假设每个 M/Z 值都是独立的,并计算双向 t 检验。rankfeatures 返回最重要的 M/Z 值的索引,例如,按检验统计量绝对值排名的 100 个索引。
x 中的每一列表示 216 个不同患者中的一个。
x 中的每行表示每个患者在 100 个特定质量-电荷值之一下的离子强度水平。
变量 t 具有两行,包含 216 个值,其中每个值为 [1;0](表示癌症患者)或 [0;1](表示非癌症患者)。
代码
[x,t] = ovarian_dataset;
whos x t%显示数据信息
4、使用前馈神经网络进行分类
1)说明
已确定一些重要特征,可以使用这些信息对癌症样本和正常样本进行分类
设置随机种子以便每次都重现相同的结果
代码
setdemorandstream(672880951)
2)创建单隐藏层前馈神经网络
说明:创建并训练具有 5 个隐藏层神经元的单隐藏层前馈神经网络。
输入样本和目标样本自动分为训练集、验证集和测试集。
训练集用于对网络进行训练。只要网络针对验证集持续改进,训练就会继续。
测试集提供独立的网络准确度测量。
输入和输出的大小为 0,因为网络尚未配置成与输入数据和目标数据相匹配。在训练网络时会进行此配置。
代码
net = patternnet(5);
view(net)
视图效果
3) 开始训练
说明:样本自动分为训练集、验证集和测试集。训练集用于对网络进行训练。只要网络针对验证集持续改进,训练就会继续。测试集提供独立的网络准确度测量。
代码
[net,tr] = train(net,x,t);
4)均方误差图
说明:性能以均方误差衡量,并以对数刻度显示。随着网络训练的加深,均方误差迅速降低。
代码
plotperform(tr)
视图效果
5) 测试训练的神经网络
说明:从主数据集划分出来的测试样本测试经过训练的神经网络。
在训练中没有以任何方式使用过测试数据,因此测试数据是可用来测试网络的“样本外”数据集。这样可以估计出当使用真实数据进行测试时,网络的表现如何。
网络输出的范围为 0-1。对输出应用阈值以获得 1 和 0,分别表示癌症患者和非癌症患者。
代码
testX = x(:,tr.testInd);
testT = t(:,tr.testInd);
testY = net(testX);
testClasses = testY > 0.5
6)混淆矩阵图
说明
混淆矩阵图:衡量神经网络数据拟合程度
该混淆矩阵显示了正确和错误分类的百分比。正确分类表示为矩阵对角线上的绿色方块。红色方块表示错误分类。
如果网络是准确的,则红色方块中的百分比应该很小,表示几乎没有错误分类。
如果网络不准确,则可以尝试训练更长时间,或者训练具有更多隐藏神经元的网络。
正确和错误分类的总体百分比
代码
[c,cm] = confusion(testT,testY);
fprintf('Percentage Correct Classification : %f%%\n', 100*(1-c));
fprintf('Percentage Incorrect Classification : %f%%\n', 100*c);
7)受试者工作特征图
说明
受试者工作特征图:衡量神经网络数据拟合程度
显示随着输出阈值从 0 变为 1,假正率和真正率之间的相关性。
线条越偏向左上方,达到高的真正率所需接受的假正数越少。最佳分类器是线条从左下角到左上角再到右上角,或接近于该模式。
第 1 类表示癌症患者,第 2 类表示非癌症患者。
代码
plotroc(testT,testY)
legend('种类1','种类2')
视图效果
5、总结
基于深度学习的癌症检测在 MATLAB 中的实现通常涉及以下几个关键步骤:
-
数据预处理:首先,收集和准备医学影像数据集,包括癌症病变的影像数据和对应的标签(是否患有癌症)。然后对数据进行预处理,包括图像的调整、裁剪、缩放、标准化等,以确保数据质量和一致性。
-
构建深度学习模型:使用 MATLAB 中深度学习工具箱中的函数和工具来构建深度学习模型,如卷积神经网络(CNN)、循环神经网络(RNN)等。在模型的构建过程中,需要定义网络的架构、层的数量和类型,以及激活函数等参数。
-
数据划分和训练:将数据集划分为训练集、验证集和测试集。然后,使用训练集数据对深度学习模型进行训练,通过反向传播算法来不断调整模型参数,提高模型的准确性和泛化能力。
-
模型评估和优化:在训练过程中,通过验证集来评估模型的性能,根据评估结果进行模型的优化和调整,以提高模型在未见过数据上的泛化能力。
-
测试和应用:最终,在训练好的深度学习模型上使用测试集来评估模型的性能和准确性。通过模型对新的医学影像数据进行预测和诊断,实现癌症病变的检测。
通过以上步骤,基于深度学习的癌症检测在 MATLAB 中可以很好地实现,并且 MATLAB 提供了丰富的深度学习工具和函数,方便用户搭建和训练深度学习模型,应用于医学影像数据的分析和诊断。
6、源代码
代码
%% 基于深度学习的癌症检测
%说明:训练一个神经网络来使用蛋白质表达谱上的质谱数据检测癌症。
%数据来源:来自 FDA-NCI 临床蛋白质组学计划数据库的ovarian_dataset.mat文件
%数据预处理:新文件包含变量 Y、MZ 和 grp。
%Y 中的每列表示从一名患者身上获取的测量值。Y 中有 216 列,表示有 216 个患者,其中 121 个是卵巢癌患者,95 个是非癌症患者。
%Y 中的每行表示 MZ 中指示的特定质量-电荷值下的离子强度水平。MZ 中有 15000 个质量-电荷值,Y 中的每行代表在特定质量-电荷值下患者的离子强度水平。
% grp 保存关于哪些样本表示癌症患者以及哪些样本表示非癌症患者的索引信息。
%% 关键特征排名
%说明:特征的数量远大于观测值的数量,但是单个特征即可实现正确分类。因此,目标是找到一个分类器,该分类器应适当学习如何加权多个特征,同时生成不会过拟合的广义映射。
%找到重要特征的简单方法:假设每个 M/Z 值都是独立的,并计算双向 t 检验。rankfeatures 返回最重要的 M/Z 值的索引,例如,按检验统计量绝对值排名的 100 个索引。
%x 中的每一列表示 216 个不同患者中的一个。
%x 中的每行表示每个患者在 100 个特定质量-电荷值之一下的离子强度水平。
%变量 t 具有两行,包含 216 个值,其中每个值为 [1;0](表示癌症患者)或 [0;1](表示非癌症患者)。
[x,t] = ovarian_dataset;
whos x t%显示数据信息
%% 使用前馈神经网络进行分类
%说明:已确定一些重要特征,可以使用这些信息对癌症样本和正常样本进行分类。
%设置随机种子以便每次都重现相同的结果
setdemorandstream(672880951)
%创建并训练具有 5 个隐藏层神经元的单隐藏层前馈神经网络。输入样本和目标样本自动分为训练集、验证集和测试集。训练集用于对网络进行训练。只要网络针对验证集持续改进,训练就会继续。测试集提供独立的网络准确度测量。
%输入和输出的大小为 0,因为网络尚未配置成与输入数据和目标数据相匹配。在训练网络时会进行此配置。
net = patternnet(5);
view(net)
%开始训练
%样本自动分为训练集、验证集和测试集。训练集用于对网络进行训练。只要网络针对验证集持续改进,训练就会继续。测试集提供独立的网络准确度测量。
[net,tr] = train(net,x,t);
%性能以均方误差衡量,并以对数刻度显示。随着网络训练的加深,均方误差迅速降低。
%绘图会显示训练集、验证集和测试集的性能。
plotperform(tr)
%从主数据集划分出来的测试样本测试经过训练的神经网络。
%在训练中没有以任何方式使用过测试数据,因此测试数据是可用来测试网络的“样本外”数据集。这样可以估计出当使用真实数据进行测试时,网络的表现如何。
%网络输出的范围为 0-1。对输出应用阈值以获得 1 和 0,分别表示癌症患者和非癌症患者。
testX = x(:,tr.testInd);
testT = t(:,tr.testInd);
testY = net(testX);
testClasses = testY > 0.5
%混淆矩阵图:衡量神经网络数据拟合程度
%该混淆矩阵显示了正确和错误分类的百分比。正确分类表示为矩阵对角线上的绿色方块。红色方块表示错误分类。
%如果网络是准确的,则红色方块中的百分比应该很小,表示几乎没有错误分类。
%如果网络不准确,则可以尝试训练更长时间,或者训练具有更多隐藏神经元的网络。
%正确和错误分类的总体百分比
[c,cm] = confusion(testT,testY);
fprintf('Percentage Correct Classification : %f%%\n', 100*(1-c));
fprintf('Percentage Incorrect Classification : %f%%\n', 100*c);
%受试者工作特征图:衡量神经网络数据拟合程度
%显示随着输出阈值从 0 变为 1,假正率和真正率之间的相关性。
%线条越偏向左上方,达到高的真正率所需接受的假正数越少。最佳分类器是线条从左下角到左上角再到右上角,或接近于该模式。
%第 1 类表示癌症患者,第 2 类表示非癌症患者。
plotroc(testT,testY)
legend('种类1','种类2')
相关文章:

44、基于深度学习的癌症检测(matlab)
1、基于深度学习的癌症检测原理及流程 基于深度学习的癌症检测是利用深度学习算法对医学影像数据进行分析和诊断,以帮助医生准确地检测癌症病变。其原理和流程主要包括以下几个步骤: 数据采集:首先需要收集包括X光片、CT扫描、MRI等医学影像…...

Vue3 【仿 react 的 hook】封装 useTitle
效果预览 页码加载时,自动获取网页标题通过input输入框,可以实时改变网页标题 代码实现 index.vue <template><h1>网页的标题为: {{ titleRef }}</h1><p>通过input输入框实时改变网页的标题 <input v-model"…...
CSS 计数器
CSS 计数器 CSS 计数器是 CSS 中一个强大但经常被忽视的功能。它们允许开发者创建和管理计数器,这些计数器可以在文档中自动递增,非常适合用于编号章节、列表项或其他文档元素。在本文中,我们将深入探讨 CSS 计数器的使用方法、优势和实际应用场景。 CSS 计数器的基本概念…...
磁力搜索器,解读新一代的搜索引擎方式,磁力王、磁力猫等引擎的异同及原理
最近国内几年,不依赖追踪服务器的磁力搜索开始流行,成为新的资源搜索的方式。 我们平常所说的磁力王(jigecili.com)、磁力猫(yinghuacili.com)、bt磁力(btcili.cn)、磁力狗最新版(cilizhai.net)、磁力兔子、磁力宝、人…...

Apache Doris 全新分区策略 Auto Partition 应用场景与功能详解 | Deep Dive系列
编辑:SelectDB 技术团队 在当今数据驱动的时代,如何高效、有序地管理数据库中的海量数据成为挑战。为了处理庞大的数据集,分布式数据库引入了类似分区和分桶策略,通过将数据按特定规则划分成较小的单位并分布到不同节点上&#x…...

【Linux】关于在华为云中开放了端口后仍然无法访问的问题
已在安全组中添加规则: 通过指令: netstat -nltp | head -2 && netstat -nltp | grep 8080 运行结果: 可以看到服务器确实处于监听状态了. 通过指令 telnet 公网ip port 也提示: "正在连接xxx.xx.xx.xxx...无法打开到主机的连接。 在端口 8080: 连接失败"…...

Linux系统ubuntu20.04 无人机PX4 开发环境搭建(失败率很低)
Linux系统ubuntu20.04 无人机PX4 开发环境搭建 PX4固件下载开发环境搭建MAVROS安装安装地面站QGC PX4固件下载 PX4的源码处于GitHub,因为众所周知的原因git clone经常失败,此处从Gitee获取PX4源码和依赖模块。 git clone https://gitee.com/voima/PX4-…...
中间件(express)
中间件(express) 在Express.js中,中间件(Middleware)是一个重要的组成部分,用于处理HTTP请求和响应。中间件函数具有特定的签名,并可以接受请求对象(req)、响应对象&…...
【代码随想录算法训练Day44】LeetCode 322.零钱兑换、LeetCode 279.完全平方数、LeetCode139.单词拆分
Day44 动态规划第六天 LeetCode 322.零钱兑换 dp数组的含义:装满容量为j的背包需要的最少物品数为dp[j] 递推公式:dp[j]min(dp[j-coins[i]]1,dp[j]) 初始化:dp[0]0,dp[j]INT_MAX 遍历顺序:个数问题与遍历顺序无关,都…...
ChatGLM2-6B 部署
本文主要对 ChatGLM2-6B 模型的部署和推理过程进行介绍。 一、部署环境 在阿里云服务器上部署,具体环境如下: modelscope:1.9.5 pytorch 2.0.1 tensorflow 2.13.0 python 3.8 cuda 118 ubuntu 20.04 CPU 8 core 内存 30 GiB GPU NVIDIA A10 2…...

武汉工程大学24计算机考研数据,有学硕招收调剂,而专硕不招收调剂!
武汉工程大学是一所以工为主,覆盖工、理、管、经、文、法、艺术、医学、教育学等九大学科门类的多科性教学研究型大学,是湖北省重点建设高校、湖北省国内一流学科建设高校,入选卓越工程师教育培养计划、中西部高校基础能力建设工程、“新工科…...

python爬虫之selenium自动化操作
python爬虫之selenium自动化操作 需求:操作淘宝去掉弹窗广告搜索物品后进入百度回退又前进 selenium模块的基本使用 问题:selenium模块和爬虫之间具有怎样的关联? 1、便捷的获取网站中动态加载的数据 2、便捷实现模拟登录 什么是selenium模块&#x…...

【漏洞复现】红帆iOffice.net wssRtSyn接口处存在SQL注入
【产品&&漏洞简述】 红帆iOffice.net从最早满足医院行政办公需求(传统OA),到目前融合了卫生主管部门的管理规范和众多行业特色应用,是目前唯一定位于解决医院综合业务管理的软件,是最符合医院行业特点的医院综…...

云计算【第一阶段(17)】账号和权限管理
目录 一、用户账号和组账号概述 1.1、用户账号的三种角色 1.2、组账号的两个角色 二、用户账号文件 2.1、/etc/passwd 2.2、/etc/shadow 2.3、chage 命令 三、组账号文件 3.1、/etc/group 3.2、/etc/gshadow 四、添加组账户 4.1、添加删除组成员 4.2、删除组账号 …...

环境配置02:CUDA安装
1. CUDA安装 Nvidia官网下载对应版本CUDA Toolkit CUDA Toolkit 12.1 Downloads | NVIDIA Developer CUDA Toolkit 12.5 Downloads | NVIDIA Developer 安装配置步骤参考:配置显卡cuda与配置pytorch - 知乎 (zhihu.com) 2. 根据CUDA版本,安装cudnn …...

Ranger配置图片及json文件预览
文章目录 前言下载apt下载pip下载 配置使用json文件预览方法一 修改scope用cat预览方法二 安装jq预览配置ranger 图片文件预览方法一 使用img2txt预览方法二 使用fim预览配置ranger 总结 前言 本文主要讲解Ranger12如何配置json及图片的预览设置,如下是ranger的介绍…...

C语言 | Leetcode C语言题解之第169题多数元素
题目: 题解: int majorityElement(int* nums, int numsSize) {int ans 0;for (int i 0, cnts 0; i < numsSize; i) {if (nums[i] ans) {cnts;} else if (cnts 0) {ans nums[i];} else {cnts--;}}return ans; }...

常说的云VR是什么意思?与传统vr的区别
虚拟现实(Virtual Reality,简称VR)是一种利用计算机技术模拟产生一个三维空间的虚拟世界,让用户通过视觉、听觉、触觉等感官,获得与现实世界类似或超越的体验。VR技术发展历程可追溯至上世纪,经历概念提出、…...

华为云CodeArts API:API管理一体化平台 5月新特性上线啦!
CodeArts API是华为云API全生命周期管理一体化解决方案平台,支持开发者高效实现API设计、API开发、API测试、API托管、API运维、API变现的一站式体验。 通过以API契约为锚点,CodeArts API保证API各阶段数据高度一致,为开发者提供友好易用的A…...

ubuntu16因swap分区uuid错误启动慢排查
感觉ubuntu16启动特别慢 dmesg查看如下: [ 10.050123] audit: type1400 audit(1718608189.395:11): apparmor"STATUS" operation"profile_load" profile"unconfined" name"webbrowser-app//oxide_helper" pid708 comm&q…...

网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...

04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

wpf在image控件上快速显示内存图像
wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...
tomcat指定使用的jdk版本
说明 有时候需要对tomcat配置指定的jdk版本号,此时,我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...
前端中slice和splic的区别
1. slice slice 用于从数组中提取一部分元素,返回一个新的数组。 特点: 不修改原数组:slice 不会改变原数组,而是返回一个新的数组。提取数组的部分:slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...