2021年国赛高教杯数学建模E题中药材的鉴别解题全过程文档及程序

news2024/10/6 10:33:48

2021年国赛高教杯数学建模

E题 中药材的鉴别解题

原题再现

  不同中药材表现的光谱特征差异较大,即使来自不同产地的同一药材,因其无机元素的化学成分、有机物等存在的差异性,在近红外、中红外光谱的照射下也会表现出不同的光谱特征,因此可以利用这些特征来鉴别中药材的种类及产地。
  中药材的种类鉴别相对比较容易,不同种类的中药材呈现的光谱的区别比较明显。图 1 为两种不同药材的近红外光谱数据曲线图,容易看出两者的差异比较大。
  中药材的道地性以产地为主要指标,产地的鉴别对于药材品质鉴别尤为重要。然而,不同产地的同一种药材在同一波段内的光谱比较接近,使得光谱鉴别的误差较大。另外,有些中药材的近红外区别比较明显,而有些药材的中红外区别比较明显(见图 2 和图 3 所给出的来自某药材 5 个不同产地的近红外和中红外光谱数据曲线图)。当样本量不够充足时,我们可以通过近红外和中红外的光谱数据相互验证来对中药材产地进行综合鉴别。
  附件 1 至附件 4 是一些中药材的近红外或中红外光谱数据,其中 No 列为药材的编号,Class 列表示中药材的类别, OP 列表示该种药材的产地,其余各列第一行的数据为光谱的波数(单位 cm-1)、第二行以后的数据表示该行编号的药材在对应波段光谱照射下的吸光度(注:该吸光度为仪器矫正后的值,可能存在负值)。试建立数学模型,研究解决以下问题。
  问题 1. 根据附件 1 中几种药材的中红外光谱数据,研究不同种类药材的特征和差异性,并鉴别药材的种类。
  问题 2. 根据附件 2 中某一种药材的中红外光谱数据,分析不同产地药材的特征和差异性,试鉴别药材的产地,并将下表中所给出编号的药材产地的鉴别结果填入表格中。
在这里插入图片描述
  问题 3. 根据附件 3 中某一种药材的近红外和中红外数据,试鉴别该种药材的产地,并将下表中所给出编号的药材产地的鉴别结果填入表中。

在这里插入图片描述
  问题 4. 附件 4 给出了几种药材的近红外光谱数据,试鉴别药材的类别与产地,并将下表中所给出编号的药材类别与产地的鉴别结果填入表各中。
在这里插入图片描述
在这里插入图片描述

整体求解过程概述(摘要)

  科学准确地鉴别中药材类别与产地,对于智慧中药产业具有重要的作用。本文构建了基于智能优化和机器学习结合的中药材鉴别模型,有效提高了中药材的鉴别类别与产地的精度,主要解决以下问题:
  针对问题一,首先,对附件1数据进行数据预处理,并将样本进行描述性统计和可视化分析:其次,分别将原始数据、主成分分析降维后数据、提取不同波段长度的特征作为属性数据,通过肘部法则、平均轮廓法和间隔统计量法确定最优聚类数。利用K-means和Ward方法对中药材进行聚类分析,将不同类别的药材数据进行差异性分析。
  针对问题二,将11个不同产地药材的中红外光谱数据进行统计分析,绘制出每个产地对应光谱数据的均值曲线和方差曲线,将原始数据进行了降维和分波段计算特征处理,形成了包括原始数据在内的五类不同数据集,分别利用LightGBM、极端梯度增强 (XGBoost ) 、支持向量机 (SVM) 、随机森林 ( RF ) 、梯度提升决策树 ( GBDT ) 和多层感知机(MLP)六种机器学习算法进行分类,采用交叉验证计算四个评价指标对分类结果进行评价。最后,利用不同机器学习方法给出药材产地。鉴别结果详见下表。
在这里插入图片描述

  针对问题三,基于鲸鱼优化和机器学习的药材产地鉴别模型。首先,提取不同区间波段特征属性,分别将 13 个不同产地药材的近红外光谱数据进行特征分析,分别利用LightGBM 等6种算法对药材产地进行分类识别,并选出有利于产地识别的重要特征;其次,利用中红外光谱数据提取不同区间波段特征属性,利用上述6 种算法对药材产地进行分类识别:利用上述两个方案组成产地识别的特征集,利用不同机器学习方法选定最佳模型:最后,提出基于鲸鱼优化和 LightGBM方法结合的药材产地识别模型,并对药材产地进行识别。鉴别结果详见下表。
在这里插入图片描述

  针对问题四,将附件4近红外数据进行统计分析并提取特征,参照问题三建模思路,利用不同机器学习算法对中药材的类别和产地进行分类预测;通过构建中药材类别预测模型,为未知的中药材样本类别进行预测和标记,再对中药材产地建模。同理,通过构建中药材产地预测模型,为未知的中药材样本产地进行预测和标记,对中药材类别构建类别预测模型。充分挖掘不同波段对药材类别和产地分类效果差异性,构建基于机器学习的两阶段药材类别与产地识别模型,鉴别结果详见下表。
在这里插入图片描述

  本文创新之处:采用主成分分析对数据进行降维,利用动态 K-eans 实现中药材聚类并进行差异性分析。提出鲸鱼优化和机器学习结合的中药材类别与产地识别模型,该模型识别效果好、精度高,对葡萄酒分类、精准医疗、故障诊断等领域具有重要的参考价值。

模型假设:

  1.不同产地的同一种药材光谱特征不完全相同;
  2.对应波段光谱照射下的吸光度为仪器矫正后的值;
  3.不同种类中药材的光谱特征之间的存在差异;
  4.中药材的红外光谱数据误差在可接受范围内。

问题分析:

  本文主要解决红外光谱下中药材的分析与鉴别问题。要求依据所提供近红外和中红外的光谱数据,对不同种类药材的特征和差异性进行分析,并鉴别药材类别与产地。
  问题一的分析
  根据附件1中已有的几种药材的中红外光谱数据,研究药材的特征和它们之间的差异性,并鉴别药材种类。由于红外光谱的高度特征性,在中红外光谱的照射下要想鉴别药材的种类可以将在对应波段光谱照射下的不同的吸光度来进行分类,将具有相似性的数据认定为同一种类。对附件1进行数据预处理,再对数据进行可视化分析,并将个体样本进行描述性统计分析,再分别利用不同的聚类分析方法对中红外光谱数据进行分类;最后,将不同类别的中药材数据进行特征提取和差异性分析。

  问题二的分析

  根据附件2中某一种药材的中红外光谱数据,分析不同产地药材的特征和差异性,并鉴别药材的产地。首先,分别将 11个不同产地药材的中红外光谱数据进行综合汇总绘制出每个产地对应光谱数据的均值曲线和方差曲线,同时,为更好衡量不同产地药材的差异性和区分度,我们将原始数据进行了降维和分波段计算特征处理,形成了包括原始数据在内的五类不同数据集,比较分析了支持向量机 (SVM) 、随机森林 ( RP) 、 极端梯度增强 (XGBoost) 、梯度提升决策树 (GBDT)、LihtGBM 和多层感知机 (MLP) 这六种机器学习分类算法。本文中的六种分类算法都是根据训练集建立模型,进行五折交叉验证,从而对测试集进行预测,并与真实结果进行对比,应用的评价指标为Precision、Recall、F1-score 以及Accuracy。最后,用不同机器学习方法给出文中所给编号的药材产地鉴别结果。

  问题三的分析

  构建基于机器学习的药材产地鉴别模型。首先,利用近红外光谱数据提取不同区间波段特征属性,分别利用 SVM、RF、XGBoost、GBDT、LSTM 和MLP 等不同机器学习算法对药材产地进行分类识别,并筛选出有利于产地识别的重要特征:其次,利用中红外光谱数据提取不同区间波段特征属性,分别利用上述6 种不同机器学习算法对药材产地进行分类识别,并筛选出对产地鉴别有利的重要特征:再次,利用上述两个方案筛选后组成产地识别的特征集,利用不同机器学习方法选定最佳模型:最后,提出基于鲸鱼优化和XGBoost 结合的药材产地识别模型,并计算出药材的鉴别结果。

  问题四的分析

  借鉴上述问题的建模思路,通过研究不同药材的近红外光谱数据,分析不同药材的特征和差异性,以及不同产地的同一种药材鉴别具有一定难度。本文分三种情形建模:包括已知类别,未知产地的识别模型:未知类别、已知产地的识别模型:类别和产地均未知的识别模型。利用 SVM、RF、XGBoost、GBDT、LSTM 和MLP 等不同机器学习算法对药材类别和产地进行识别,并进行综合评定,最终给出文中所给编号的药材类别与产地的鉴别结果。

模型的建立与求解整体论文缩略图

在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:(代码和文档not free)

from sklearn.decomposition import PCA   #主成分分析法

#PCA方法降维
#保持90%的信息
pca = PCA(n_components=0.95)
pca_95 = pca.fit_transform(data.iloc[1:,:])
pca_95.shape
pca.explained_variance_ratio_
pca.explained_variance_ratio_.sum()
plt.figure(dpi = 600,figsize = (5,3))
plt.scatter(pca_95[:,0],pca_95[:,1])
# K-Means聚类
# 惯性值
SSE = []
# 轮廓分数
SIL = []
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
for i in range(2,8):
    kmeans = KMeans(n_clusters = i,n_init = 100)
    y_pred = kmeans.fit_predict(pca_95)
    SSE.append([i,kmeans.inertia_])
    SIL.append([i,silhouette_score(pca_95,kmeans.labels_)])
# 将list转为DataFrame
sse = pd.DataFrame(SSE,columns = ["k","SSE"])
sil = pd.DataFrame(SIL,columns = ["k","SIL"])
# 绘制手肘图
plt.figure(dpi = 600,figsize = (5,3))
plt.plot(sse["k"],sse["SSE"])
plt.scatter(sse["k"],sse["SSE"])
plt.savefig("手肘图.png")
kmeans = KMeans(n_clusters = 3,n_init = 100)
y_pred = kmeans.fit_predict(pca_90)
y_pred
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

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

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

相关文章

软件工程-期末复习题

第1章软件工程概述 1、软件的概念及特点 概念: 计算机软件是由专业人员开发并长期维护的软件产品。完整的软件产品包括了在各种不同容量和体系结构计算机上的可执行的程序,运行过程中产生的各种结果,以及以硬复制和电子表格等多种方式存在的软…

ChatGPT 和爬虫有什么区别

目录 ChatGPT的概念和功能 爬虫的概念和功能 ChatGPT和爬虫的区别 ChatGPT的概念和功能 ChatGPT是一个基于自然语言处理和机器学习的智能对话模型,具有以下功能: 1. 问题回答:ChatGPT可以回答用户提出的各种问题。不论是有关常识、历史、科…

【数据结构】---TopK问题

本文提供用建堆来解决TopK问题的一个思路 N个数中找出最大的或者最小的前k个 假设现从N个数中找最大的前k个 ①堆排序,时间复杂度O(N*logN),这N个数排一下序,前k个数就是需要的②建堆N个数的小堆,HeapPop 9次,就选出…

嵌入式工程师常见面试题(持续更新版本)

前言:鄙人于学堂求学十余载,终是要踏足江湖求一寸安身处!以前都忙着学习新东西以及做项目,现如今也需要面对找工作的压力。此篇博客是作者准备的嵌入式工程师常见的面试题目汇总,其答案包含网络搜索和作者自己感悟总结…

6月,视频号爆火的账号有哪些?

六月伊始,视频号就借着六一节点上线青少年内容分级功能,让视频号内容及安全管理更精细化。紧接着开展了“特效大拍档”招募活动,激励各垂类头部创作者持续活跃,与他们共建更丰富健康的内容生态。在官方各种活动激励之下&#xff0…

Python语法基础07(文件与异常)

文件 输出文件中的内容 在项目代码同路径下创建一个pi_digits文件 3.14159265358979323846在fileDemo0.py中将其打开,并输出 #用函数open()打开文件,并将对象赋给file,对于open中的文件路径,可以使用相对路径也可以使用绝对路径 with ope…

2023年淘宝天猫内部大额隐藏粉丝福利购店铺优惠券领取入口在哪里怎么找到免费领取淘宝天猫优惠券?

草柴优惠券APP应用市场下载入口 草柴优惠券APP已上架的应用市场:华为应用市场、小米应用市场、OPPO应用市场、VIVO应用市场及百度手机助手,请打开以上应用市场搜索:草柴优惠券,即可下载通过应用市场审核验证通过的安全可信应用&a…

JavaWeb Cookie

1.Cookie 介绍 Cookie是一种用于在Web浏览器和Web服务器之间传递数据的机制。 它是由服务器发送给浏览器的小型文本文件,存储在浏览器的本地计算机上。 浏览器在后续请求中会自动将Cookie发送回服务器,以便服务器可以识别用户并提供个性化的服务。 C…

涨知识,周鸿伟当年踩的坑,如果用这么一个工具就能事半功倍

怎么让员工有效率地工作?如何考核员工?如何让员工有积极的心态?公司的汇报体系应该怎么设计? 这些问题都让360创始人周鸿伟感到困惑! 说到“红衣大炮”周鸿伟的本事,那真的不是吹! 近期&…

github:网址为 https://github.com/ 的网页可能暂时无法连接,或者它已永久性地移动到了新网址

一、无法访问github 二、尝试ping gitlab.com 三、打开站长工具 查找 ip地址 “www.github.com”A记录/cname检测结果--Dns查询|dns查询--站长工具 四、打开host文件(C:\Windows\System32\drivers\etc) 20.205.243.166 github.com 五、再次ping github&…

地图制图小技巧_点匹配线方向

目录 目的 实现步骤 功能介绍 功能入口 关键参数 结果 问题延伸 目的 我们在配图的时候,会遇到一种特定的需求:需要对点设置一个风格,并且符号风格自动跟相连或者相交的线保持垂直。 这种是否能够在SuperMap iDesktopX中自动实现呢&#xff0…

直流运算放大电路-----Howland(二)

目录 豪兰德电路形式1 电路图 计算公式 仿真与分析 豪兰德电路形式2 电路图 计算公式 豪兰德电路形式3 电路图 计算公式 改进电路 豪兰德电路形式1 模拟电子技术基础(第五版)5.7 电路图 计算公式 仿真与分析 如图,红框内为负反馈&…

.net项目开发-EF框架解决添加默认值问题

文章目录 前言EF中核心类DbContextDbContext中的SaveChanges()方法重写SaveChanges()方法注意点-Modified 其它状态下的实体如何操作 前言 最近开发.net项目,持久层用的是EF框架,也是第一次使用这个框架,用这个框架的好处就是基于实体的开发…

【UnityDOTS 小知识】如何通过DOTS修改材质属性以及替换材质与网格

如何通过DOTS修改材质属性以及替换材质与网格 一、DOTS修改材质属性 1.利用 Material Overide Asset Material Overide Asset是一个Unity资产,可以通过Create创建。 创建后指定要修改的材质,以及对应材质的属性,即可完成这个资源创建。 然…

hive关联键 NULL 关联 NULL

结论:关联键 NULL NULL时,不进行关联,即两表关联失败 案例如下: 表A 表B 表A 关联 表B selecta.id as a_id,a.name as a_name,b.id as b_id,b.name as b_name from表A a left join表B b on a.id b.id …

【FFmpeg实战】FFplay音视频同步

作者:Mirs 链接:https://www.jianshu.com/p/d7ead3a5f2bd PTS的由来 音视频同步依赖的一个东西就是pts(persentation time stamp )显示时间戳 告诉我们该什么时间显示这一帧 ,那么,这个东西是从哪里来的呢&#xff1f…

Jvm创建对象之内存分配-JVM(七)

上篇文章介绍了jvm创建,会校验是否已加载类,没有则加载,通过之前学的源码,classLoader加载完之后,虚拟机开始给类分配内存,指针移动分配和free链表分配,解决并发分配情况用cap和TLAB方法。之后设…

编写LED灯的驱动,创建三个设备文件,每个设备文件和一个LED灯绑定,当操作这个设备文件时只能控制设备文件对应的这盏灯

.编写LED灯的驱动&#xff0c;创建三个设备文件&#xff0c;每个设备文件和一个LED灯绑定&#xff0c;当操作这个设备文件时只能控制设备文件对应的这盏灯 实验现象 test.c #include <stdlib.h> #include <stdio.h> #include <sys/types.h> #include <s…

【linux】使用 sftp 替换 vsftpd

为什么使用 sftp&#xff1f; 1. 基于 ssh 协议&#xff0c;保证数据安全性 2. 大多数防火墙不会阻止 ssh 协议 3. 完全基于文件系统权限对用户进行管理 4. 配置比 vsftpd 简单 另外&#xff0c;我在集成商工作服务于各大甲方&#xff0c;在厦门的一些企业&#xff0c;如&…

一步一步指导如何使用 FastSAM进行图像分割

它以50倍的速度实现了与SAM方法相当的性能。 (SAM) 是一个强大的视觉基础模型,可以根据用户交互提示分割图像中的任何对象。SAM 一经发布就因其准确性而在计算机视觉社区中获得了巨大的关注。然而,SAM 广泛使用计算量大的Transformer (ViT) 架构限制了其实际应用,特别是在…