中药材在大辞典中已记载有12,000多种,而不同类中药材又分布在众多的产地中,因此鉴别中药材产地的任务极为艰巨。本文以2021年“高教社杯”全国大学生数学建模竞赛E题“附件3”所提供的近红外光谱数据与中红外光谱数据为研究样本,先对所提供数据进行预处理、提取特征向量、降维处理,然后通过支持向量机(SVM)算法进行求解并运用评价指标在训练集上达到了83.8%的正确率,在测试集上达到98.7%的正确率。 There are more than 12,000 kinds of traditional Chinese medicine recorded in the dictionary, and different kinds of traditional Chinese medicine are distributed in many places of origin, so the task of identifying the place of origin of traditional Chinese medicine is extremely difficult. In this paper, the near-infrared spectral data and mid infrared spectral data provided by the 2021 “Higher Education Society Cup” National Undergraduate Mathematical Modeling Contest E question “Ap-pendix 3” are taken as research samples. First, the data provided are preprocessed, feature vectors are extracted, and dimensions are reduced. Then, support vector machine (SVM) algorithm is used to solve the problem and evaluation indicators are used to achieve 83.8% accuracy in training sets and 98.7% accuracy in test sets.
中药材在大辞典中已记载有12,000多种,而不同类中药材又分布在众多的产地中,因此鉴别中药材产地的任务极为艰巨。本文以2021年“高教社杯”全国大学生数学建模竞赛E题“附件3”所提供的近红外光谱数据与中红外光谱数据为研究样本,先对所提供数据进行预处理、提取特征向量、降维处理,然后通过支持向量机(SVM)算法进行求解并运用评价指标在训练集上达到了83.8%的正确率,在测试集上达到98.7%的正确率。
中药材产地,支持向量机,红外光谱,机器学习
Huanyu Yang1, Ying Chen2, Tongtong Qiu1, Zirong Zhang1, Weijun Luo1
1Zhanjiang Preschool Normal College, Zhanjiang Guangdong
2Zhanjiang Mechanical and Electrical School, Zhanjiang Guangdong
Received: Jan. 22nd, 2023; accepted: Feb. 21st, 2023; published: Feb. 28th, 2023
There are more than 12,000 kinds of traditional Chinese medicine recorded in the dictionary, and different kinds of traditional Chinese medicine are distributed in many places of origin, so the task of identifying the place of origin of traditional Chinese medicine is extremely difficult. In this paper, the near-infrared spectral data and mid infrared spectral data provided by the 2021 “Higher Education Society Cup” National Undergraduate Mathematical Modeling Contest E question “Appendix 3” are taken as research samples. First, the data provided are preprocessed, feature vectors are extracted, and dimensions are reduced. Then, support vector machine (SVM) algorithm is used to solve the problem and evaluation indicators are used to achieve 83.8% accuracy in training sets and 98.7% accuracy in test sets.
Keywords:Origin of Chinese Medicinal Herbs, Support Vector Machine, Infrared Spectrum, Machine Learning
Copyright © 2023 by author(s) and beplay安卓登录
This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).
http://creativecommons.org/licenses/by/4.0/
中药材的产地对于衡量药材的品质尤为重要,是大众比较关心的问题。由于中药材的种类较多且不同地区名称也可能不同,导致中药材的产地难以鉴别。传统中药材鉴别方法很多,如来源鉴别、性状鉴别、显微鉴别、理化鉴别等,这些鉴别方法效率较低,鉴别准确度不高。DNA分子和色谱鉴别对中药材的鉴别准确率极高,但存在预处理较为复杂且分析的时间长、成本较高、操作繁琐,快速鉴别较难等不足。现如今的研究有:文献 [
图1. 中红外光谱数据图
图2. 近红外光谱数据图
图3. 中近红外光谱合并图
本文以2021年“高教社杯”全国大学生数学建模竞赛E题“附件3”的基础数据为研究对象,“附件3”中提供了255个中药材基础样本数据,其中No列为药材的编号,OP的名单显示了这种药材的来源。其它列第一行中的数据是光谱的波数(单位cm−1),第二行后的数据表示暴露于相应波段的编号药材的光谱吸光度(552~3999 cm−1 4004~10,000 cm−1) (见图1~3)。其中,245个样品为已知来源(编号为1至17),10个样品为未知来源。对附件3中的数据进行预处理,检查是否存在缺失值、是否存在异常值、是否存在大量重复值,通过处理明确了每条记录有光谱波数552 cm−1至3999 cm−1共878,985个数据项,光谱波数4004 cm−1至10,000 cm−1共1,528,980个数据项,均未发现大量重复数据和异常数据,光谱波数列中未发现缺失数据。表示产地的OP列除去需鉴别场地的17个缺失项外也无缺失项,数据完整性良好。
欧几里得度量也称为欧氏距离 [
由于支持向量机 [
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) , ⋯ , ( x 1 , y 1 ) }
其中, x i ∈ X = R n , y i ∈ Y = { + 1 , − 1 } , i = 1 , 2 , 3 , ⋯ , N ,
N表示为有N个样本实例,Xi则表示为第i个特征向量,
该假设的目标是要从中提取出一个分离超平面,并将正负类分别分在该超平面的两侧。
分离超平面的对应方程可写为:
ω ⋅ x + b = 0
当给定的训练数据值处于线性可分的状态时,存在无数个这样的分离超平面,感知机利用误分类的点来求解,则有无数个解。
SVM可以通过最大化间隔来获得最优超平面和唯一解。
假设分类决策函数为:
f ( x ) = s i g n ( ω ⋅ x + b )
从图1~3可知来自17个产地中药材的中近红外光谱数据图整体趋势差别不大,不同产地的药材吸光度差异较小,其数据曲线贴合度较高。本文对附件3中近红外光谱数据(见图4)、中红外光谱数据(见图5)、中与近红外光谱数据(见图6)进行一阶平滑处理,处理后图像如下。
图4. 近红外光谱数据一阶平滑处理后
图5. 中红外光谱数据一阶平滑处理后
图6. 中近红外光谱数据一阶平滑处理后
我们定义,当一个光谱波数区间 [ m , n ] 上每个光谱波数 V i ( m ≤ i ≤ n ) 在所有药材记录中的吸光度Ai最大值减去最小值(即极差)大千所有波数吸光度的平均极差。则称该区间为特征区间 [
A i max − A i min > A mean m ≤ i ≤ n
通过Python所计算出的结果,显示在附件3光谱波数区间共有六个特征区间,总长度为3005,即包含3005个不同且连续的光谱波数(区间与区间之间波数不连续)。在寻找到特征区间之后,以光谱波数作为x坐标,以吸光度作为y坐标。把我们将要分类的10条药材记录与已分类的245条药材记录在特征区间上计算曲线间的欧式距离, X i j , 1 ≤ i ≤ 10 , 1 ≤ j ≤ 245
X i j = 1 n ∑ k = 1 n ( x k i − x k j ) 2 + ( y k i − y k j ) 2 1 ≤ i ≤ 10 , 1 ≤ j ≤ 245 , n = 3005
使用Python计算出未分类的10条药材记录与已分类的245条记录之间的距离矩阵如下(见表1~3)。
No | OP | 4004 | 4005 | 4006 | 4007 | ... | 9997 | 9998 | 9999 | 10,000 |
---|---|---|---|---|---|---|---|---|---|---|
1 | 14 | 0.869187 | 0.869187 | 0.869769 | 0.869769 | ... | 0.420397 | 0.420397 | 0.420397 | 0.420764 |
2 | 13 | 0.944521 | 0.944521 | 0.944225 | 0.944225 | ... | 0.382062 | 0.382062 | 0.382062 | 0.382062 |
3 | 17 | 0.959754 | 0.959754 | 0.961532 | 0.961532 | ... | 0.401349 | 0.401349 | 0.401349 | 0.40136 |
4 | 0 | 0.869418 | 0.869418 | 0.87161 | 0.87161 | ... | 0.405511 | 0.405511 | 0.405511 | 0.40605 |
5 | 16 | 0.913759 | 0.913759 | 0.915178 | 0.915178 | ... | 0.417069 | 0.417069 | 0.417069 | 0.418042 |
6 | 17 | 0.949069 | 0.949069 | 0.950782 | 0.950782 | ... | 0.412635 | 0.412635 | 0.412635 | 0.412939 |
7 | 5 | 1.01663 | 1.01663 | 1.0169 | 1.0169 | ... | 0.458986 | 0.458986 | 0.458986 | 0.459253 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
249 | 7 | 0.915109 | 0.915109 | 0.916006 | 0.916006 | ... | 0.390883 | 0.390883 | 0.390883 | 0.391525 |
250 | 7 | 0.941788 | 0.941788 | 0.942736 | 0.942736 | ... | 0.391661 | 0.391661 | 0.391661 | 0.392434 |
251 | 16 | 0.952433 | 0.952433 | 0.953022 | 0.953022 | ... | 0.405308 | 0.405308 | 0.405308 | 0.405596 |
252 | 2 | 0.959031 | 0.959031 | 0.959407 | 0.959407 | ... | 0.402501 | 0.402501 | 0.402501 | 0.402977 |
253 | 17 | 0.955752 | 0.955752 | 0.957249 | 0.957249 | ... | 0.397983 | 0.397983 | 0.397983 | 0.398028 |
254 | 11 | 0.909227 | 0.909227 | 0.909961 | 0.909961 | ... | 0.4059 | 0.4059 | 0.4059 | 0.406435 |
255 | 6 | 0.902235 | 0.902235 | 0.902844 | 0.902844 | ... | 0.386275 | 0.386275 | 0.386275 | 0.386464 |
表1. 近红外光谱矩阵
No | OP | 552 | 553 | 554 | 555 | ... | 3996 | 3997 | 3998 | 3999 |
---|---|---|---|---|---|---|---|---|---|---|
1 | 14 | 0.026602 | 0.031197 | 0.031197 | 0.034768 | ... | 0.006093 | 0.006118 | 0.006118 | 0.006148 |
2 | 13 | 0.027282 | 0.033386 | 0.033386 | 0.038157 | ... | 0.006356 | 0.006385 | 0.006385 | 0.006415 |
3 | 17 | 0.019621 | 0.028953 | 0.028953 | 0.036467 | ... | 0.012187 | 0.012229 | 0.012229 | 0.012268 |
4 | 0 | 0.004992 | 0.019785 | 0.019785 | 0.031172 | ... | 0.006427 | 0.006437 | 0.006437 | 0.006427 |
5 | 16 | 0.017975 | 0.028234 | 0.028234 | 0.036466 | ... | 0.015257 | 0.015259 | 0.015259 | 0.015276 |
6 | 17 | 0.020617 | 0.02996 | 0.02996 | 0.037593 | ... | 0.009919 | 0.009931 | 0.009931 | 0.009933 |
7 | 5 | 0.028366 | 0.034168 | 0.034168 | 0.0387 | ... | −0.000311 | −0.00317 | −0.000317 | −0.000321 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
249 | 7 | 0.027861 | 0.032238 | 0.032238 | 0.035482 | ... | 0.001628 | 0.001621 | 0.001621 | 0.001604 |
250 | 7 | 0.025559 | 0.028484 | 0.028484 | 0.030757 | ... | −0.000159 | −0.00181 | −0.000181 | −0.000217 |
251 | 16 | −0.00863 | 0.012856 | 0.012856 | 0.02829 | ... | 0.01229 | 0.010264 | 0.010264 | 0.010315 |
252 | 2 | 0.026924 | 0.030733 | 0.030733 | 0.03356 | ... | 0.003821 | 0.0038 | 0.0038 | 0.003755 |
253 | 17 | 0.027081 | 0.032876 | 0.032876 | 0.037407 | ... | 0.003574 | 0.003578 | 0.003578 | 0.003574 |
254 | 11 | 0.027094 | 0.031609 | 0.031609 | 0.034978 | ... | 0.00566 | 0.005663 | 0.005663 | 0.005671 |
255 | 6 | 0.026076 | 0.029686 | 0.029686 | 0.032365 | ... | 0.002604 | 0.002613 | 0.002613 | 0.002619 |
表2. 中红外光谱矩阵
No | OP | 552 | 553 | 555 | 556 | ... | 9997 | 9998 | 9999 | 10,000 |
---|---|---|---|---|---|---|---|---|---|---|
1 | 14 | 0.026602 | 0.031197 | 0.034768 | 0.034768 | ... | 0.420397 | 0.420397 | 0.420397 | 0.420764 |
2 | 13 | 0.027282 | 0.033386 | 0.038157 | 0.038157 | ... | 0.382062 | 0.382062 | 0.382062 | 0.382062 |
3 | 17 | 0.019621 | 0.028953 | 0.036467 | 0.036467 | ... | 0.401349 | 0.401349 | 0.401349 | 0.40136 |
4 | 0 | 0.004992 | 0.019785 | 0.031172 | 0.031172 | ... | 0.405511 | 0.405511 | 0.405511 | 0.40605 |
5 | 16 | 0.017975 | 0.028234 | 0.036466 | 0.036466 | ... | 0.417069 | 0.417069 | 0.417069 | 0.418042 |
6 | 17 | 0.020617 | 0.02996 | 0.037593 | 0.037593 | ... | 0.412635 | 0.412635 | 0.412635 | 0.412939 |
7 | 5 | 0.028366 | 0.034168 | 0.0387 | 0.0387 | ... | 0.458986 | 0.458986 | 0.458986 | 0.459253 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | |
249 | 7 | 0.027861 | 0.032238 | 0.032238 | 0.035482 | ... | 0.390883 | 0.390883 | 0.390883 | 0.391525 |
250 | 7 | 0.025559 | 0.028484 | 0.028484 | 0.030757 | ... | 0.391661 | 0.391661 | 0.391661 | 0.392434 |
251 | 16 | −0.008635 | 0.012856 | 0.012856 | 0.02829 | ... | 0.405308 | 0.405308 | 0.405308 | 0.405596 |
252 | 2 | 0.026924 | 0.030733 | 0.030733 | 0.03356 | ... | 0.402501 | 0.402501 | 0.402501 | 0.402977 |
253 | 17 | 0.027081 | 0.032876 | 0.032876 | 0.037407 | ... | 0.397983 | 0.397983 | 0.397983 | 0.398028 |
254 | 11 | 0.027094 | 0.031609 | 0.031609 | 0.034978 | ... | 0.4059 | 0.4059 | 0.4059 | 0.406435 |
255 | 6 | 0.026076 | 0.029686 | 0.029686 | 0.032365 | ... | 0.386275 | 0.386275 | 0.386275 | 0.386464 |
表3. 近中红外光谱矩阵
将10条未分类药材记录与已分类的药材记录对比,若两者之间的欧式距离最小,则可以认为二者的光谱波数数据曲线在特征区间上重合度较高,即二者极大可能产自同一产地,光谱波数数据(见表4、表6、表8)。
筛选近红外光谱数据得到重合度最高的光谱数据与初步得出对应的产地为下(见表5、表7、表9)。
No | 4 | 15 | 22 | 30 | 34 | 45 | 74 | 114 | 170 | 209 |
---|---|---|---|---|---|---|---|---|---|---|
曲线 | 24 | 141 | 52 | 160 | 75 | 134 | 171 | 161 | 232 | 39 |
表4. 近红外光谱数据得到重合度对称曲线
No | 4 | 15 | 22 | 30 | 34 | 45 | 74 | 114 | 170 | 209 |
---|---|---|---|---|---|---|---|---|---|---|
OP | 4 | 11 | 1 | 2 | 16 | 3 | 4 | 10 | 9 | 10 |
表5. 根据近红外光谱数据初步产地鉴别
筛选中红外光谱数据得到重合度最高的光谱数据与初步得出对应的产地为下。
No | 4 | 15 | 22 | 30 | 34 | 45 | 74 | 114 | 170 | 209 |
---|---|---|---|---|---|---|---|---|---|---|
OP | 4 | 11 | 1 | 2 | 16 | 3 | 4 | 10 | 9 | 10 |
表6. 中红外光谱数据得到重合度对称曲线
No | 4 | 15 | 22 | 30 | 34 | 45 | 74 | 114 | 170 | 209 |
---|---|---|---|---|---|---|---|---|---|---|
曲线 | 24 | 141 | 52 | 160 | 75 | 134 | 171 | 161 | 232 | 39 |
表7. 根据中红外光谱数据初步产地鉴别
筛选近中红外光谱数据得到重合度最高的光谱数据与初步得出对应的产地为下。
No | 4 | 15 | 22 | 30 | 34 | 45 | 74 | 114 | 170 | 209 |
---|---|---|---|---|---|---|---|---|---|---|
曲线 | 225 | 141 | 214 | 98 | 251 | 182 | 19 | 149 | 230 | 369 |
表8. 近中红外光谱数据得到重合度对称曲线
No | 4 | 15 | 22 | 30 | 34 | 45 | 74 | 114 | 170 | 209 |
---|---|---|---|---|---|---|---|---|---|---|
OP | 4 | 6 | 3 | 9 | 16 | 3 | 12 | 6 | 9 | 15 |
表9. 根据近中红外光谱数据初步产地鉴别
本章节为作者提供“资助信息”的示例。通过欧式距离可以初步确定10种未分类药材记录的来源。为了提高识别的准确性,使用支持向量机求解来源不明的药材记录模型。
我们选择LLE降维方法 [
对于输入空间中的非线性分类问题,可以通过非线性变换将其转化为维度特征空间中的线性分类问题,并且可以在高维特征空间中学习线性支持向量机 [
输入训练数据集 [
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x N , y N ) } 其 中 x i ∈ X = R n , y i ∈ { + 1 , − 1 } , i = 1 , 2 , ⋯ , N ;
输出分类决策函数;
选择适当的核函数 K ( x , z ) 和惩罚参数C > 0来构造和求解凸二次规划问题:
min α 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j K ( x i , x j ) − ∑ i = 1 n α i
使得:
∑ i = 1 n α i y i = 0 0 ≤ α i ≤ C , i = 1 , 2 , ⋯ , N
得到最优解 α * = ( α 1 * , α 2 * , ⋯ , α N * ) T
计算,选择 α * 的一个分量 α j * 满足条件 0 < α j * < C ,
计算 b * = y j − ∑ i = 1 n α i * y j K ( x i , x j )
分类决策函数: f ( x ) = s i g n ( ∑ i = 1 n α i * y j K ( x i , x j ) + b * )
调用python的sklearn库 [
中红外光谱的模型在训练集达到了86.5%的正确率,而且在测试集上达到98.3%的正确率。
近中红外光谱的模型在训练集达到了83.8%的正确率,而且在测试集上达到98.7%的正确率。鉴别出未知中药材产地如下(见表10)所示。
No | 4 | 15 | 22 | 30 | 34 | 45 | 74 | 114 | 170 | 209 | 备注 |
---|---|---|---|---|---|---|---|---|---|---|---|
OP | 1 | 11 | 1 | 9 | 4 | 2 | 16 | 4 | 16 | 10 | 近红外 |
OP | 16 | 10 | 1 | 9 | 4 | 2 | 16 | 4 | 4 | 11 | 中红外 |
OP | 2 | 11 | 1 | 9 | 4 | 2 | 16 | 4 | 16 | 14 | 近中红外 |
表10. 未知药材产地初步鉴别结果
因为支持向量机(SVM)被用来发现在不同的数据集上获得的结果并不完全相同,并且其在再训练集和测试集上的准确性是相同的。最后,使用从特征间隔差异较大的中红外数据获得的结果来校正从近红外数据和连接表数据得到的结果。综合考虑,最终得出以下结果(见表11)。
No | 4 | 15 | 22 | 30 | 34 | 45 | 74 | 114 | 170 | 209 |
---|---|---|---|---|---|---|---|---|---|---|
OP | 17 | 11 | 1 | 9 | 4 | 2 | 16 | 4 | 16 | 14 |
表11. 未知药材产地最终鉴别结果
传统中药材鉴别方法有很多,如来源鉴别、性状鉴别、显微鉴别、理化鉴别等,这些鉴别方法效率较低,鉴别准确度不高。DNA分子和色谱鉴别对中药材的鉴别准确率极高,但存在预处理较为复杂且分析的时间长、成本较高、操作繁琐,快速鉴别较难等不足,而支持向量机(SVM)算法具有可用于线性或非线性分类,也可以用于回归,泛化错误率低,具有良好的学习能力且学到的结果具有很好的推广性。也就是说具有低成本、高效性且鉴别精度较高的特点。本文对原始数据进行了一阶平滑处理并且运用欧氏距离初步鉴别出中药材产地,之后进一步将原始数据进行降维处理,形成了包括原始数据在内的不同数据集利用机器学习中的支持向量机算法(SVM)进行鉴别分析,比较充分地衡量出不同中药材产地之间的差异性与区分度,为今后的中药材产地鉴别提供了一种新思路。
ZY2022QNCX01 (青年创新人才项目)。
杨环瑜,陈 莹,丘彤彤,张子荣,罗伟军. 基于SVM算法的中药材产地鉴别模型研究Study on Identification Model of Chinese Medicinal Herbs Based on Support Vector Machine Algorithm[J]. 理论数学, 2023, 13(02): 364-374. https://doi.org/10.12677/PM.2023.132040
https://doi.org/10.19717/j.cnki.jjun.2016.03.026