R语言机器学习之影像组学分析的原理详解

a6e8b01df9a3473c99c3a0d6e40df1d2.jpg


 

概要

 

影像组学从常规医学图像中高通量提取大量的放射学定量数据,并以非侵入性方式探索它们与临床结果的相关性,在医学研究中得到广泛的应用。


 

01 影像组学(Radiomics)的概念:

影像组学(Radiomics)和机器学习技术结合是AI影像辅助诊断的常用方法。

影像组学研究的一般步骤如下:从CT、PET或MRI等医学图像中高通量地提取并分析影像学特征,而后基于图像分割、提取筛选特征、构建预测模型等机器学习算法来实现疾病的诊断、评估、预测等临床应用。

2ed22b9ec50f45839a542f79c692a1f7.png

 即,获取图像、勾画感兴趣区(Region of interset, ROI)、从 ROI中提取定量特征及降维、筛选特征,最后基于不同机器学习模型利用筛选得到的特征构建预测和分类模型。

 

02 影像组学特征的介绍:

影像组学特征:影像组学可从医学图像中提取大量定量特征,在一定程度上反映生物医学图像中隐藏的潜在病理生理学信息。

影像组学特征可分为语义特征和不可知特征:

① 语义特征包括:尺寸、形状等参数;

② 不可知特征包括:一阶、二阶和高阶特征;

一阶特征描述个体体素值分布而不考虑空间关系;二阶特征主要描述图像的纹理特征;高阶特征则需以多种滤波器网络获取,包括小波变换和拉普拉斯变换等。

影像组学通过图像分割和标注获取特征。在图像分割前通常需要预先对医学影像数据进行标注,而后通过机器学习等算法模型展开训练,进行自动图像分割。目前国内外标注软件多是功能单一的附带简单标注功能的医学图像处理软件。例如,LabelImg和LabelMe是两款常见的标注工具,可支持对图像进行多边形、圆形、线段和点等形式的勾画,但不具备获取、存储和管理医疗数据及数据统计等功能,且不同专病医学影像检查涉及的设备不同,医学图像格式类型各异,常见的标注工具难以同时支持多种格式类型的医学图像标注。

影像组学所需的特征工程:不同专病影像涉及的器官位置、需提取的图像特征(如轮廓、灰度、纹理、毛刺、边缘等)不尽相同,且特征选择的过程非常复杂。通常需要先提取成百上千种图像特征,经过相关性分析后筛选出少数几种和任务具有强相关的特征。特征选择的过程对模型诊断的准确率至关重要,但需要计算机视觉的专业知识。

 

03 影像组学分析平台:

影像组学分析平台包含:数据管理、阅片标注、课题管理和丰富的影像组学及机器学习组件。

通过本平台,临床医生无需任何编程便可完成影像组学的全流程分析,包括特征提取、特征分析、模型选择等,并生成相应的结构化分析报告(英文表述)。该报告可直接用于科研论文的撰写。

640?wx_fmt=png&tp=wxpic&wxfrom=5&wx_lazy=1&wx_co=1

bab78afae4c84831bfdbd929003ec47a.png

 影像组学分析平台一般流程如下:平台提供了基于影像组学和机器学习技术的分析建模全周期功能,所有过程都提供中间数据,并根据中间数据生成对应图表,作为分析报告提供给用户,以便进行分析总结。

① 分析数据选择:在进行课题分析时,用户可根据数据分布情况选择部分或全部当前课题组所有的案例进行分析。为了避免模型过拟合,所选案例最少不低于20例。

② 特征值计算:对所选案例,平台可自动提取每个案例的1688个影像组学特征,特征包括灰度特征、三维特征、纹理特征、小波变换特征。

③ 分析特征选择:用户可从影像组学特征和临床特征中选择部分或全部特征,进入模型建立模块。单次可只选择影像组学特征或临床特征分别建模,也可联合两部分特征共同建模。

④ 数据分组:在建模模块时,平台提供了2种数据分组方法:随机法和K折法,随机法将按指定比例进行数据分组;K折法将数据随机分为等量的K组,进行K次训练,第X次训练以第X组作为测试集,其余组作为训练集。

⑤ 特征筛选:根据影像组学方法,在进行机器学习建模前,需要筛选所选特征。平台提供了3种特征筛选方法:方差选择法(Variance Threshold)、单变量特征值选择法(SelectKBest)和最小绝对收缩算子(Lasso)。

⑥ 机器学习建模:平台提供了12种常见的机器学习算法模型组件供用户调用。按照学习方式,这些模型可分为监督式学习、非监督式学习、半监督式学习、增强学习4类。按照学习任务,这些模型可分为分类、回归、聚类3类。其中,分类与回归都属于监督学习,前者是预测一个离散的标签,后者是预测一个连续的数量,聚类则属于无监督学习。

平台模型库中共包含13种机器学习算法模型,用于数据分析建模,分别是:K近邻(k-nearest neighbor, KNN)、支持向量机(support vector machines, SVM)、极端梯度提升(extreme gradient boosting, XGBoost)、梯度提升树(gradient boosting machine, GBM)、伯努利贝叶斯分类(Bernoulli NB)、高斯朴素贝叶斯(Gaussian NB)、决策树(decisiontree, DT)、线性判别分析(linear discriminant analysis, LDA)、随机森林(random forest, RF)、逻辑回归(logistic regression, LR)、自适应(adaptive boosting, AdaBoost)、多项式朴素贝叶斯(Multinomial NB)以及随机梯度下降(stochastic gradient descent, SGD)。

3156a422b6214a93a58cea6ad6d5b7f6.png

⑦ 模型验证:分析模型建立后,为了评估模型的性能,平台会自动计算模型在训练集和测试集上的敏感性(sensitivity, SE)、特异性(specificity, SP)、

准确率(accuracy, Acc)、曲线面积(area under curve, AUC)、可信度等指标,部分指标公式如下:

  • SE=TP/(TP+FN) (1)

  • SP=FP/(FP+TN) (2)

  • Acc=(TP+FN)/(TP+TN+FP+FN) (3)

式中:TP、FP、FN、TN分别是指模型预测为阳性的阳性案例、预测为阳性的阴性案例,预测为阴性的阳性案例,预测为阴性的阴性案例。

⑧ 分析报告:平台将数据分析和模型运行的中间过程生成的图表汇总,生成分析报告。报告中包括特征筛选过程图、筛选后的特征列表、模型在训练集和验证集上的性能表、ROC曲线图等。

6f3799bdcea44cc1939ddd0d7219c483.png

 

 

04 总结:

f99604bc372c4e288a57e1763fa7f1ad.png

 

 

今天的内容就到这里,欢迎点赞收藏转发,感谢🙏

 

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

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

相关文章

React Context(上下文)

1 Context Context 通过组件树提供了一个数据传递的方法,从而避免了在每一个层级手动传递props属性。 有部分小伙伴应该使用props属性进行组件上下传值的操作。当多个组件嵌套的时候,就需要慢慢向上寻找最初的值是什么。 2 API React.createContext:…

Jmeter之Beanshell解析并提取json响应

1:前置条件 将fastjson-1.2.49.jar包置于jmeter的lib目录下,并将该jar包添加到测试计划的Library中;否则会报:Typed variable declaration : Class: JSONObject not found in namespace的错误 2:解析思路 利用beansh…

了解Unity编辑器之组件篇UI(一)

UI组件:提供了用户交互,信息展示,用户导航等功能 一、Button:用于响应用户的点击事件 1.Interactable(可交互):该属性控制按钮是否可以与用户交互,如果禁用则按钮无法被点击。可以通…

Ubuntu18.04配置PX4开发环境

源文件下载 读者可以参考PX4中文维基百科,或者使用下面命令↓ git clone https://github.com/PX4/PX4-Autopilot.git --recursive 下载完成之后,执行脚本安装命令,PX4给我们提供了脚本安装模式 bash ./PX4-Autopilot/Tools/setup/ubuntu.sh …

Spring Boot-3

学习笔记(今天又读了好多篇的博客,做个今天的总结,加油!!!) PS:快到中伏了,今天还是好热 使用阿里巴巴 FastJson 的设置 1、jackson 和 fastJson 的对比 有很多人已经…

Linux 网络收包流程

哈喽大家好,我是咸鱼 我们在跟别人网上聊天的时候,有没有想过你发送的信息是怎么传到对方的电脑上的 又或者我们在上网冲浪的时候,有没有想过 HTML 页面是怎么显示在我们的电脑屏幕上的 无论是我们跟别人聊天还是上网冲浪,其实…

Python绘制多条y轴范围不同的曲线并在一张图上显示

如何使用Python绘制多条y轴范围不同的曲线,然后把它们合并在一张图上显示 import matplotlib.pyplot as plt import numpy as npdef multilines(target, x, ys, types, colors, x_label, labels):"""用来绘制多条y轴范围不同的线,并在一…

代码随想录 DAY28 93.复原IP地址 78.子集 90.子集II

93.复原IP地址 切割字符串,并且在每一个切割过的字符串后面加上 ‘ .’ 返回条件:逗点个数3 如果最后一小节符合要求,就将该字符串添加到结果集中 循环中:从start到i 符合要求,就继续添加逗点和字符 不符合下面就不用…

数学建模的六个步骤

一、模型准备 了解问题的实际背景,明确其实际意义,掌握对象的各种信息,以数学思路来解释问题的精髓,数学思路贯彻问题的全过程,进而用数学语言来描述问题。要求符合数学理论,符合数学习惯,清晰…

苹果iOS 16.6 RC发布:或为iPhone X/8系列养老版本

今天苹果向iPhone用户推送了iOS 16.6 RC更新(内部版本号:20G75),这是时隔两个月的首次更新。 按照惯例RC版基本不会有什么问题,会在最近一段时间内直接变成正式版,向所有用户推送。 需要注意的是,鉴于iOS 17正式版即将…

第1题 好的序列(seq)

一个长为k的序列b1, b2, ..., bk (1 ≤ b1 ≤ b2 ≤ ... ≤ bk ≤ n),如果对所有的 i (1 ≤ i ≤ k - 1),满足bi | bi1,那么它就是好的序列。这里a | b表示a是b的因子,或者说a能整除b。 给出n和k,求…

git取消文件或文件夹追踪

1. 创建仓库时,在本地仓库根目录,创建.gitignore文件,写入忽略规则。规则可以是文件名,或者正则表达式。git 对于 .gitignore配置文件是按行从上到下进行规则匹配的。对于.gitignore文件本身的修改也会被提交到远程端。 2. 删除已…

Python获取接口数据

首先我们需要下载python,我下载的是官方最新的版本 3.8.3 其次我们需要一个运行Python的环境,我用的是pychram,需要库的话我们可以直接在setting里面安装 代码: # -*- codeing utf-8 -*- from bs4 import BeautifulSoup # 网页…

docker中搭建lnmp

目录 一:项目环境 1、主机ip需求 2、 任务需求 二:多级构建Dockerfile实验部署 lnmp 1、先部署一个有所有依赖包的镜像 2、搭建nginx 3、搭建mysql 4、搭建php 三:一级构建安装lnmp 1、构建自定义docker网络 2、构建nginx容器&#x…

Java版Spring Cloud+Spring Boot+Mybatis+uniapp知识付费平台讲解

提供私有化部署,免费售后,专业技术指导,支持PC、APP、H5、小程序多终端同步,支持二次开发定制,源码交付。 Java版知识付费-轻松拥有知识付费平台 多种直播形式,全面满足直播场景需求 公开课、小班课、独…

降压电路原理 12V电源是如何下降到5V?

引言: 12V-5V开关电源设计原理:以12V电压作为输入,通过控制开关电路的通断时间,实现电感的充放电时间,改变输出电压的平均值,然后进行LC滤波,对输出电压进行电压和电流反馈控制,使其…

企业知识管理系统安全是重中之重

企业开展知识管理工作的益处是全方位的,效果能从业务的各方面得到体现,最终效果就是企业竞争力的提升与企业经营业绩的提升。 知识管理系统的意义在于,构建系统的知识库,对纷杂的知识内容(方案、策划、制度等&#xf…

Maven引入第三方jar包到问题处理

Maven项目引入第三方jar包到问题处理 背景:1. 下载jar包,通过maven命令手动安装到本地maven仓库2. jar放到项目路径下,通过pom直接引用 背景: 开发中会遇到需要使用第三方依赖的时,第三方依赖在中央仓库没有,解决方法 1. 下载jar包,通过maven命令手动安装到本地maven仓库 mv…

MybatisPlus使用排序查询时,将null值放到最后

1用户需求 查询结果,按照某些字段进行排序,将为null的值放到最后。按照更新时间排序,但是更新时间可能为null,因此将null的数据放到最后。 2解决方案 最简单的方式,当然是下面这种直接在SQL最后面 NULLS LAST &…

502 Bad GateWay报错的解决方法

什么是502 bad gateway 报错 简单来说 502 是报错类型代码 bad gateway 错误的网关。是Web服务器作为网关或代理服务器时收到无效的响应。 用我们的口语说就是运行网站的服务器暂时挂了(不响应)。 产生错误的原因 1.连接超时 我们向服务器发送请求 由于服务器当前链接太多&am…