社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

CHIN MED-UK | 如何科学地挑选西洋参/机器学习预测西洋参生长年限

DrugAI • 3 年前 • 334 次点击  



摘要

疫情反复,想买点西洋参提高下免疫力,又怕买到假货?今天这篇发表在Chinese Medicine (IF=5.4)的文章教你如何科学地剁手鉴定西洋参生长年限。这篇文章由中国食品药品检定研究院胡笑文、严华等人于2021年10月发表,通讯是魏锋和马双成研究员。这项研究基于106批西洋参样本和4种机器学习算法,建立了西洋参年限预测模型。为了进一步适应不同来源的西洋参样本,又基于相似性构建了模型的应用域,最终实现了对西洋参生长年限的准确预测。该方法为西洋参年限造假的鉴别提供了技术支持,论文也提供了完整的模型代码。

1. 介绍

西洋参(American Ginseng,AG)是一种广泛使用的名贵药材,具有抗氧化、抗肿瘤、提高认知等多种功效,具有较高的经济价值。市面上的西洋参价格常常与生长年限相关,而不同年限的西洋参价格差异巨大。这种巨大的价格差也导致了西洋参年限造假的情况时有发生。


传统鉴别西洋参生长年限主要有物理和化学两种方法。物理方法主要依据芦头和枝叶的数量进行判断,但有些样本的芦头可能会被截断或受损,没法应用到所有样本中。化学方法可以使用各种分析仪器,如HPLC、NMR等获取西洋参样本特征,配合数学统计方法,如偏最小二乘分析、主成分分析等进行鉴定。但多数研究样本数量少,方法部署困难,且可信度未知。


为了开发方便快捷的西洋参年限鉴别方法,该项研究收集了来自全国5个地区的西洋参样本,尝试采用机器学习技术对西洋参生长年限进行预测。


2. 材料和方法

2.1 样本收集与特征测定


该研究收集了来自吉林、辽宁、山东、北京、陕西共5个规范种植产区的106批西洋参样本,样本的生长年限都在2~4年。接着通过实验手段,对5种皂苷含量(Rg1、Re、Rb1、Rd、F11),两种浸出物含量(醇溶性、水溶性浸出物含量),和两种物理性质(参根长度、重量)进行了测定,共得到9种西洋参样本特征。


2.2 数据集划分与数据分布分析


作者随后将所有样本划分为了3个数据集。训练集,64条,来自吉林、辽宁、山东。测试集1,25条,来自北京。测试集2,17条,来自陕西。然后采用主成分分析,基于最大方差,将9维特征降至3维,并在空间中展示,查看分布情况。


2.3 机器学习模型建立


建模部分使用了弹性网络 (EN)、最近邻(KNN)、支持向量机(SVM)、多层感知机(MLP) 共4种机器学习算法建模,采用网格搜索策略优化参数,用均方误差(MSE)和决定系数(R2)作为评估指标进行训练。随后使用两个测试集数据进行模型验证,同样以MSE作为指标,验证模型准确性和泛化能力。


2.4 应用域建立


当待预测数据与训练样本差异较大时,往往会导致预测不准的情况发生。因此,文章接着基于欧氏距离为模型建立了应用域(applicability domain)。应用域由两个参数TAD和TS构成:

(详细的参数解释可以查看原文)

简单来说,当一个训练集确定后,可以计算出训练集的阈值TAD,TAD衡量了训练样本的整体相似度。当给定一个待预测样本j后,又可以计算出样本j的阈值TS,TS衡量了待预测样本与训练集的相似度。当TS>TAD时,表明样本j与训练集差异较大,落在应用域外,预测结果不可靠;当TS


该应用域模型由两个经验参数k和Z控制,为了确定最佳参数,调整k和Z,以落在应用域内测试集样本的MSE值为指标,寻找最佳k和Z的取值。


3. 结果与讨论

3.1 样本特征分析

对实验测得的9种理化性质进行初步分析。以年限为横坐标,9种特征作为纵坐标,绘制折线图,结果如图1所示。可以看到部分特征还是与年限呈一定的正相关性,尤其是主成分Rb1,在不同年限间具有显著性差异。


图1. 9种理化特征随年限的变化趋势图。

3.2 数据分布分析


对三个数据集进行主成分分析,从图2中可以看出,三个数据集的数据分布具有一定差异。其中,测试集1(绿色)的数据分布与训练集(红色)比较接近,而测试集2(蓝色)几乎在空间中独立成簇。表明训练集并没有很好地覆盖到测试集2,对测试集2中样本的预测可能会不准确。


图2. 三个数据集的主成分分析结果。红色为训练集,绿色为测试集1,蓝色为测试集2。A.样本在3维空间中的分布。B.样本在三个坐标平面上的投影。

根据产地划分数据集导致训练集失去了代表性,相比之下,随机抽样通常能够得到数据分布一致的训练和测试数据,似乎是一种更优的选择。但人为划分得到的差异较大的测试集却能够为模型的应用域构建、可信度评估提供更有效的数据,关于这部分内容将会在下面两节中讨论。


3.3 模型训练与验证


采用4种机器学习算法在训练集上建立年限预测模型,并在两个测试集上进行验证,模型表现如图3所示。模型在训练集和测试集1上都表现出了较高的准确性。所有模型在训练集上的MSE都在0.05以内,在测试集1上的MSE在0.3以内。


但对于测试集2,所有模型表现都很差,MSE约为1,考虑到之前PCA结果也显示出测试集2与训练集存在较大差异,出现该结果也不算意外。


图3. 4种模型在3个数据集上的表现。灰色为回归曲线。


3. 4 应用域的确定


为了解决预测不准的情况,接下来基于欧氏距离和样本相似性对模型的应用域进行探索。调整k和Z的取值,将42条测试样本作为研究数据,考察落在应用域内测试样本MSE的变化,得到图4所示结果。从图A中可以看到,随着k和Z的不断增加,应用域内样本(ID)数量不断增加,表明应用域逐渐增大。但与此同时,在图B-E中,所有模型对ID的MSE先保持平稳,随后逐渐降低,表明随着应用域增大,预测不准确的结果也被包含进来。最终,选择k=6,Z=1.6作为最佳参数。


图4. 随着k和Z的增加,ID数量的变化(图A),以及4种模型在对ID的MSE值的变化趋势图(图B-E)。黑色点为应用域的最佳取值点


 在配备了应用域后,MLP依然保持了较高的预测准确度,对ID的预测MSE为0.030,能够应用在市场上西洋参年限鉴别任务中。

4. 结论

在这项研究中,作者为了鉴别市场上西洋参的生长年限,收集了5个种植产区的西洋参样本,通过PCA分析、机器学习建模、应用域构建,实现了一套准确预测年限的方法,展现出了机器学习技术在年限造假中的应用前景,同时也为解决其他中药相关的回归任务提供了思路和参考。


参考文献

Hu, Xiaowen, Yan, Hua, Wang, Xiaodong, Wang, et al. Machine learning methods to predict the cultivation age of Panacis Quinquefolii Radix[J]. Chinese Medicine, 2021, 16: 1-10

文章链接:https://github.com/dreadlesss/Panax_age_predictor

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/122576
 
334 次点击