数学建模-最优包衣厚度终点判别法-三(Bayes判别分析法和梯度下降算法)

news2024/11/26 19:36:25
💞💞 前言
hello hello~ ,这里是viperrrrrrr~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹
💥个人主页:viperrrrrrr的博客
💥 欢迎学习数学建模算法、大数据、前端等知识,让我们一起向目标进发!

基于近红外光谱的肠溶片最优包衣厚度终点判别法

       包衣是将片剂的外表面均匀地包裹上一层衣膜的过程,旨在控制药物在胃肠道中的释放部位和速度,遮盖苦味或不良气味,防潮、避光,改善外观等。然而,包衣膜太薄或太厚都不利于药效,并且包衣终点的判断方法目前存在一定的难度。近红外光谱技术(NIRS)是一种高效、无需试剂、无污染的分析方法,通过近红外光谱仪、化学计量学软件和应用模型,能快速、简便地实现多组分检测。为实现包衣终点的准确判断,对数据进行分析并完成以下问题:

问题一:对药品在不同包衣时间段包衣片剂的近红外光谱进行特征峰提取,选择具有有效信息的波长片段,即波长选择。

问题二:分析药品包衣厚度分类规律,建立合适的模型对药品包衣不同厚度进行划分,给出方法及结果,并进行灵敏度分析。

问题三:对于不同的包衣厚度,通过建立模型分析包衣之间的关联性,判别出最优的包衣厚度。

我们本次主要解决问题三。

  问题三

        依据问题一选取的特征峰数据以及问题二的初始分类建立判别模型进行包衣终点判别,最终达到该判别模型能够根据样本不同包衣时间段在各谱区吸收值准确预测该样本是否为最优包衣厚度。

1、Bayes判别

        针对问题三,本文使用问题一提取的特征峰数据和问题二聚类得到的初始分类作为判别模型的自变量和分组标记。通过Bayes判别对数据在分类,通过对比判别前后的差异反馈判别的正确率。当正确率较大时,说明该判别方法准确有效,能过对未知分组样本做准确的判别即是否为最优包衣厚度判别,达到有效预测的目的。除此之外,本文还通过梯度分析算法,采用Goldstein原则确定最优步长,同时利用Wolfe法线性搜索,确定损失函数,即我们想要优化的目标。 最后通过迭代,不断刷新损失函数的梯度和参数,迭代次数越多,越接近目标值。

对于解决不确定统计分析的问题,每个类别的样本取得不同特征向量的概率,实现依据某个待识别向量计算该样本每个类别的概率。对应关系公式4所示:

表3 部分符号说明

贝叶斯分类

贝叶斯公式

每类样本的整体出现概率

先验概率

每个类中样本取得某个具体特征向量的概率

类条件概率

要计算的样本取得某一个具体特征向量时属于每一类的概率

后验概率

计算公式如下:

     (4)

以问题二的聚类结果为基础数据,对问题一所提取的特征峰数据标记初始分组,通过Bayes准则下的判别分析方法,对数据进行判别再次划分类别,通过比对Bayes判别前后样本所属类别与初始分组是否一致,计算判别的准确性[4]。针对问题三,我们选取问题一提取的特征峰数据,对不同的包衣时间段各谱区的吸收值,最优包衣在谱区的吸收值和素片在谱区的吸收值进行Bayes判别。初始组别是根据问题二的聚类结果分组。其中组别1表示包衣不足,组别3为最优包衣组,组别三表示除组别1和组别2外的其他包衣样本的集合。如下表所示,1组中有一个样本被重新分组到了第3组,第2组和第3组分组完全正确。最终该Bayes判别预测模型的正确率高达99.3%。而且我们特别关注的第3组(最优包衣)不存在误判,说明该模型判别效果较佳,能够作为预测模型对未知分组样本做准确的最优包衣终点判别。

表4 分类结果a

案例的类别号

预测组成员

合计

1

2

3

初始

计数

1

51

0

1

52

2

0

51

0

51

3

0

0

47

47

%

1

98.1

.0

1.9

100.0

2

.0

100.0

.0

100.0

3

.0

.0

100.0

100.0

  1. 已对初始分组案例中的 99.3% 个进行了正确分类。

2、梯度分析算法

在梯度下降算法中,采用Goldstein原则确定最优步长,同时利用Wolfe法线性搜索,确定损失函数(objective function),来代表了我们想要优化的目标。起初,我们需要初始化部分参数,然后开始迭代过程。在每一次迭代中,都会计算出当前参数下损失函数的梯度,并利用该梯度来更新我们的初始参数。因为该方法下迭代次数越多,越接近目标值即包衣终点。

由于样本对不同包衣时间段在各谱区的吸收值存在在线性关系,故建立线性模型如下:

(5)

假设其损失函数为:

(6)

下一步对损失函数最小化,即对

求导:

(7)

其中

,所以不难得出:

(8)

结果如下图所示,其中图中黑色曲线表示梯度下降算法下降时的轨迹。

图7 梯度下降算法结果

样本数据通过迭代过程,最终收敛求得反馈数据即为包衣终点判别结果。

5.3.3灵敏度分析

敏感性分析(sensitivity analysis)是指从定量分析的角度研究有关因素发生某种变化对某一个或一组关键指标影响程度的一种不确定分析技术。每个输入的灵敏度用某个数值表示即敏感性指数(sensitivity index)。SALib是一个基于python进行敏感性分析并提供一个解耦的工作流的开源库,负责使用其中一个采样函数(sample functions)生成模型输入,并使用其中一个分析函数(analyze functions)计算模型输出的灵敏度指数。本文使用蒙特卡洛技术实现全局灵敏度分析,基于方差的方法(sabol方法)将输入和输出的不确定性量化为概率分布,并将输出方差分解为可归因于输入变量和和变量组合的部分。因此,通过该输入引起的输出变化量来度量输出对输入变量的敏感度。本文根据不同包衣时间的肠溶片对成分1和成分2波长下的吸收波变化率和包衣时间进行拟合和灵敏度分析,结果如下:

图8 成分1的灵敏度分析

图9 成分2的灵敏度分析

10 灵敏度拟合图

由图可知,在经过二次拟合再三次拟合之后不同包衣时间下的肠溶片对波长的吸收值二阶灵敏度和总灵敏度。(一个二阶灵敏度会涉及两个变量), 而对应他们名字加上_conf 则表示对应的置信度(95%)。从定量分析的角度研究有关因素发生某种变化对某一个或一组关键指标影响程度的一种不确定分析技术。每个输入的灵敏度用某个数值表示即敏感性指数(sensitivity index)每个x对应不同a,b取值下y的均值以及95%置信区间,得到右图为参数a,b的一阶指数。由图可知,再保证其拟合度不变的情况下,随着时间增加其灵敏度越高,但再一定程度之后其灵敏度将会下降。

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

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

相关文章

Python(10):常见的4种设计模式(单例/工厂/策略/观察者)

文章目录 一、单例模式二、工厂模式三、策略模式四、观察者模式 程序中设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案,这些解决方案是众多软件按开发人员经过相当长的一段时间的实验和错误总结出来的。使用设计模式是为了重用代码、让代码更容易…

对于所有对象都通用的方法⭐良好习惯总结

对于所有对象都通用的方法⭐良好习惯总结 Object是每个类的父类,它提供一些非final方法:equals、hashCode、clone、toString、finalize... 这些方法在设计上是可以被子类重写的,但是重写前需要遵守相关的规定,否则在使用时就可能…

MYBATIS获取参数值

MYBATIS最核心的莫过于动态的获取各种的参数值, 为了将来更好的使用MYBATIS进行开发, 我们必须先打好 "获取参数值" 这一基础 一. MYBATIS获取参数值的两种情况: 1.${} 实质:字符串的拼接 注解:${}使用的字符串拼接的方式拼接SQL语句, 所以, 如果其中出现了字符串…

23. 【Android教程】轮播滚动视图:ViewFlipper

轮播视图 ViewFlipper 是 Android 从第一个版本就开始提供的 UI 控件,它能够承载多个 View,但一个时机只会有一个 View 展示在屏幕上。通过 ViewFlipper 我们可以实现很多常见的带有展示类型的功能,类似 Gallery、轮播图、导航栏、广告banner…

基于Springboot+Vue的Java项目-旅游网站系统(附演示视频+源码+LW)

大家好!我是程序员一帆,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &am…

C# WinForm —— 项目目录结构

1. WinForm 应用程序项目 Properties:属性文件夹存放了一个自动生成的类文件AssemblyInfo.cs,保存了一些应用程序集的一些信息引用存放了一些为应用程序提供所需的,某些功能的一些程序集(dll文件)等添加引用&#xff…

一些知识点小细节

当遇到的问题有关逆序输出,可以转换一下思想,就是使用for循环的时候,i的初始化是从数组或者是字符串的最后一个,然后注意设置循环结束的条件,最重要的是不要忘记i--;而不是I; 注意:当要逆序输出…

蚓链赋能企业拥有“数据能力”会带来哪些变革?

数字时代,对任何一家无论大小的企业,数据都是不可或缺的资源和工具。蚓链赋能企业拥有“数据能力”将会给企业带来哪些变革呢? 首先,将会提高企业的业务效率,通过数据分析和挖掘,企业可以更好地了解客户需…

Composer安装与配置

Composer,作为PHP的依赖管理工具,极大地简化了PHP项目中第三方库的安装、更新与管理过程。本文将详细介绍Composer的安装步骤、基本配置方法,以及一些实用的操作示例,帮助读者快速上手并熟练运用Composer。 一、Composer安装 环…

redis 数据迁移到rds2214(TongRDS-2.2.1.3.Load版 by lqw)

​ 文章目录 一.备份redis文件 vi redis.conf ,看看有没有这两行设置,有的话改成跟下面的一致: appendonly yes appendfilename “appendonly.aof” 之后连接redis客户端,输入INFO persistence,如图所示即为开启成功…

中国历年GDP统计-探数API统计

数据介绍 时间维度:1978年-2021年 单位:亿元 该数据来源于国家统计局发布的中国统计年鉴2021,为按当年价格计算的中国历年GDP以及人均GDP。 数据说明: 数据来源于国家统计局。

SpringBoot-自定义Starter精华版

SpringBoot自定义Starter精华版 一、自定义 Starter 分析 项目首先加载 starter,starter加载自动配置类,然后再通过配置绑定对象读取配置属性,注册组件。 二、实现步骤 ​ 开发的自定义 Starter 需求是,项目依赖starterTest-spring-boot-s…

重生奇迹MU圣导师与弓箭手职业对比

职业定位对比 在职业定位上,弓箭手是一个远程物理输出职业,不过弓箭手也有一定的辅助能力,可以为队友提供控场效果,还能为队友提供一个攻击力加成BUFF。同时弓箭手也是一个非常需要操作的职业,想要玩好这个职业&#…

智能体Agent是AI时代普通人可参与的第一个红利机会

自从生成式 AI 兴起,掌握 prompt 能让 AI 工具更好为我们服务。而智能体的出现,让 AI 的使用门槛更是不断降低——都不用写 Prompt 了,直接用智能体就行了。 智能体Agent是AI时代普通人可参与的第一个红利机会© 由 ZAKER科技 提供 前几…

基于java+springboot+vue实现的药品管理系统(文末源码+Lw)23-297

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,药品信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能满足广…

Go 自定义14位时间类型 yyyyMMddHHmmss

目录 功能 代码 功能 数据库或者接口时间类型,经常会使用14位的时间格式。每次都转换有点麻烦。可以自定义一个时间类型。 自定义类型需要实现json接口中的MarshalJSON与UnmarshalJSON两个函数,这样在做json编码解码时就会自动转为14位的时间格式了。…

【力扣】142. 环形链表 II

142. 环形链表 II 题目描述 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环&am…

第6章:6.3.3 正则表达式的应用 (MATLAB入门课程)

讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 到目前为止,我们已经系统地介绍了正则表达式的基本语…

Bytebase 2.15.0 - GitOps 整体升级

🔔 GitOps 整体升级 新版 GitOps 和之前版本不兼容,如果需要升级协助,请联系我们。 使用访问令牌进行身份验证。支持项目中配置多个 VCS 连接器。支持在 VCS 连接器中指定数据库分组为目标(默认情况下应用于项目中的所有数据库&…

uni-app实现下拉刷新

业务逻辑如下: 1.在滚动容器中加入refresher-enabled属性,表示为开启下拉刷新 2.监听事件,添加refresherrefresh事件 3.在事件监听函数中加载数据 4.关闭动画,添加refresher-triggered属性,在数据请求前开启刷新动画…