一种基于偏最小二乘判别分析模型的茶叶等级判别方法与流程

文档序号:20274742发布日期:2020-04-03 19:30阅读:220来源:国知局

本发明涉及一种茶叶等级判别方法,尤其是涉及一种基于偏最小二乘判别分析模型的茶叶等级判别方法。



背景技术:

茶叶作为一种深受消费者喜爱的饮品,通常根据茶叶色泽、芳香气味、成熟期及各种品质指标将茶叶分成多个等级。为规范茶叶销售市场,保障消费者的合法权益,杜绝茶叶经销商以次级茶充当优级茶进行欺骗性销售,因此常需对茶叶进行品质检测和等级判别。电子舌技术作为一种仿生传感器技术,结合偏最小二乘判别分析(partialleastsquares–discriminantanalysis,pls-da)模型可以对多等级茶叶样品进行快速分析和识别,从而实现茶叶等级的判别分析。

现有的基于偏最小二乘判别分析模型的茶叶等级判别方法中,为了得到最优分类效果,在采用pls-da模型进行判别分析时,通常先需要采用交叉验证计算来确定pls-da模型的最优潜在变量值,交叉验证计算不但增加了判别过程的复杂性,而且在交叉验证计算的过程中,通常需要确定交叉验证时取样策略和交叉验证折数,这就意味着不同的取样策略和交叉验证折数可能会得到不同的最优潜在变量值,最终造成pls-da模型无法得到最优判别效果,最终导致茶叶等级判别方法的判别精度不高,难以满足精度需求。



技术实现要素:

本发明所要解决的技术问题是提供一种判别过程简单,且判别精度较高的基于偏最小二乘判别分析模型的茶叶等级判别方法。

本发明解决上述技术问题所采用的技术方案为:一种基于偏最小二乘判别分析模型的茶叶等级判别方法,包括以下步骤:

步骤1、获取待判别的m种不同等级的茶叶样本,每种等级的茶叶样本中分别包含n个茶叶样本,获取m种不同等级中每个茶叶样本标注的等级,将第i种等级的茶叶样本标注的等级记为li,m为大于等于1的整数,n为大于等于1的整数;为第i种等级中第j个茶叶样本设定标签,将其标签以m位二进制数的形式表示为yij,且m种不同等级的茶叶样本中任意两个茶叶样本的标签均不相同,i=1,2,…,m,j=1,2,…,n;

步骤2、分别采集m种不同等级中每个茶叶样本的电子舌响应信号向量,将第i种等级中第j个茶叶样本的响应信号向量记为xij;

步骤3、构建m种不同等级中每个茶叶样本的排序差异总和(sumofrankingdifferences,srd)矩阵,具体构建过程为:

3-1、将第i种等级中第j个茶叶样本的排序差异总和(sumofrankingdifferences,srd)矩阵记为sij;

3-2、建立xij与yij之间潜在变量从1到20的20个pls-da模型,得到第i种等级中第j个茶叶样本对应的20个pls-da模型;

3-3、对第i种等级中第j个茶叶样本分别采用建立的20个pls-da模型进行预测,分别得到第i种等级中第j个茶叶样本的20个预测结果,将第i种等级中第j个茶叶样本采用潜在变量为k的pls-da模型进行预测得到的预测结果记为skij,skij为包含1行m列的向量,k=1,2,…,20;

3-4、将skij中的1行m列数据作为第i种等级中第j个茶叶样本的排序差异总和矩阵sij的第k行数据,构建得到sij,sij为20行m列的矩阵;

步骤4、构建m种不同等级中每个茶叶样本的排序差异总和标准参考序列向量,具体构建过程为:

4-1、将第i种等级中第j个茶叶样本的排序差异总和标准参考序列向量记为bij;

4-2、获取sij中每行数据中的最大值,将sij中第k行数据中的最大值作为bij中第k行数据,得到bij,bij为20行1列的向量;

步骤5、构建第一索引值矩阵,将其记为b1,所述的第一索引值矩阵为包含20行1列索引值的矩阵,所述的第一索引值矩阵中第h行1列的索引值等于h,h=1,2,…,20;

步骤6、调整排序差异总和矩阵sij中各行数据的行数,具体过程为:

6-1、根据bij中包含的20行数据的大小对bij中各行数据的行数进行调整,具体调整规则为:数据小的行数小,数据大的行数大,当出现两个或者多个相等的数据时,这几个相等的数据所处行数的大小按序随机确定即可,将调整后的bij记为b1ij;

6-2、根据b1ij对sij中各行数据的行数进行调整,使b1ij中每行数据的行数与该行数据从sij中获取时所处行数据的行数相等,由此得到调整后的sij,将调整后sij记为s1ij。

步骤7、构建包含20行m列索引值的第二索引值矩阵,具体过程为:构建用于存放20个索引值的索引值列向量cij,比较s1ij中位于第i列中20个数据的大小,按照以下方式设定s1ij中位于第i列中20个数据的索引值:

首先找到s1ij中位于第i列中20个数据中的最小数据,将最小数据的索引值设定为1,如果存在r个最小数据,r为大于等于2的整数,则这r个最小数据的索引值均设定为1,然后找到第二小的数据,将其索引值设定为r+1,如果存在t个第二小的数据,t为大于等于2的整数,则这t个第二小的数据的索引值均设定为r+1,接着找到第三小的数据,将其索引值设定为r+t+1,以此类推,直至找到最大数据完成最大数据的索引值设定;

将s1ij中位于第i列中20个数据的索引值存放到cij中,且每个数据的索引值在cij中所处行数等于该数据在s1ij所处行数,将cij中的20行1列数据作为矩阵的第i列数据,最终得到包含20行m列索引值的第二索引值矩阵;

步骤8、将第二索引值矩阵中第i列索引值与第一索引值矩阵中1列数据的绝对差值之和记为srdij,其中srdij等于第二索引值矩阵中第i列第1行索引值与第一索引值矩阵中第1行1列数据之差的绝对值~第二索引值矩阵中第i列第20行索引值与第一索引值矩阵中第20行1列数据之差的绝对值之和,得到m个绝对差值之和srd1j~srdmj;

步骤9、比较计算得到的srd1j~srdmj,找到其中的最小值,并确定计算得到该最小值的第二索引值矩阵中的一列索引值所对应的列数,该列数即为第i种等级中第j个茶叶样本所对应的茶叶等级;

步骤10、按照步骤2-步骤9的方法得到m种不同等级中每个茶叶样本的等级,然后将得到的第i种等级的茶叶样本的等级与其标注的等级li进行比较,判定两者是否相同,从而完成m种不同等级中所有茶叶样本等级的快速鉴别。

与现有技术相比,本发明的优点在于直接构建茶叶样本的响应信号向量与茶叶样本的设定标签之间潜在变量从1到20的20个pls-da模型,采用得到的20个pls-da模型分别对每个茶叶样本进行预测并预测结果构建茶叶样本的排序差异总和(sumofrankingdifferences,srd)矩阵,然后基于茶叶样本的排序差异总和矩阵构建得到每个茶叶样本的排序差异总和标准参考序列向量以及构建包含20行1列索引值的第一索引值矩阵后,调整排序差异总和矩阵中各行数据的行数构建得到第二索引值矩阵,最后通过计算第二索引值矩阵中每列索引值与第一索引值矩阵中1列数据的绝对差值之和得到m个绝对差值之和,基于绝对差值之和的最小值确定茶叶样本等级,本发明的方法中无需进行交叉验证来计算pls-da模型的最优潜在变量,基于排序差异总和方式对pls-da模型进行优化,判别过程简单,且判别精度较高。

具体实施方式

以下结合实施例对本发明作进一步详细描述。

实施例:一种基于偏最小二乘判别分析模型的茶叶等级判别方法,包括以下步骤:

步骤1、获取待判别的m种不同等级的茶叶样本,每种等级的茶叶样本中分别包含n个茶叶样本,获取m种不同等级中每个茶叶样本标注的等级,将第i种等级的茶叶样本标注的等级记为li,m为大于等于1的整数,n为大于等于1的整数;为第i种等级中第j个茶叶样本设定标签,将其标签以m位二进制数的形式表示为yij,且m种不同等级的茶叶样本中任意两个茶叶样本的标签均不相同,i=1,2,…,m,j=1,2,…,n;

步骤2、分别采集m种不同等级中每个茶叶样本的电子舌响应信号向量,将第i种等级中第j个茶叶样本的响应信号向量记为xij;

步骤3、构建m种不同等级中每个茶叶样本的排序差异总和(sumofrankingdifferences,srd)矩阵,具体构建过程为:

3-1、将第i种等级中第j个茶叶样本的排序差异总和(sumofrankingdifferences,srd)矩阵记为sij;

3-2、建立xij与yij之间潜在变量从1到20的20个pls-da模型,得到第i种等级中第j个茶叶样本对应的20个pls-da模型;

3-3、对第i种等级中第j个茶叶样本分别采用建立的20个pls-da模型进行预测,分别得到第i种等级中第j个茶叶样本的20个预测结果,将第i种等级中第j个茶叶样本采用潜在变量为k的pls-da模型进行预测得到的预测结果记为skij,skij为包含1行m列的向量,k=1,2,…,20;

3-4、将skij中的1行m列数据作为第i种等级中第j个茶叶样本的排序差异总和矩阵sij的第k行数据,构建得到sij,sij为20行m列的矩阵;

步骤4、构建m种不同等级中每个茶叶样本的排序差异总和标准参考序列向量,具体构建过程为:

4-1、将第i种等级中第j个茶叶样本的排序差异总和标准参考序列向量记为bij;

4-2、获取sij中每行数据中的最大值,将sij中第k行数据中的最大值作为bij中第k行数据,得到bij,bij为20行1列的向量;

步骤5、构建第一索引值矩阵,将其记为b1,第一索引值矩阵为包含20行1列索引值的矩阵,第一索引值矩阵中第h行1列的索引值等于h,h=1,2,…,20;

步骤6、调整排序差异总和矩阵sij中各行数据的行数,具体过程为:

6-1、根据bij中包含的20行数据的大小对bij中各行数据的行数进行调整,具体调整规则为:数据小的行数小,数据大的行数大,当出现两个或者多个相等的数据时,这几个相等的数据所处行数的大小按序随机确定即可,将调整后的bij记为b1ij;

6-2、根据b1ij对sij中各行数据的行数进行调整,使b1ij中每行数据的行数与该行数据从sij中获取时所处行数据的行数相等,由此得到调整后的sij,将调整后sij记为s1ij。

步骤7、构建包含20行m列索引值的第二索引值矩阵,具体过程为:构建用于存放20个索引值的索引值列向量cij,比较s1ij中位于第i列中20个数据的大小,按照以下方式设定s1ij中位于第i列中20个数据的索引值:

首先找到s1ij中位于第i列中20个数据中的最小数据,将最小数据的索引值设定为1,如果存在r个最小数据,r为大于等于2的整数,则这r个最小数据的索引值均设定为1,然后找到第二小的数据,将其索引值设定为r+1,如果存在t个第二小的数据,t为大于等于2的整数,则这t个第二小的数据的索引值均设定为r+1,接着找到第三小的数据,将其索引值设定为r+t+1,以此类推,直至找到最大数据完成最大数据的索引值设定;

将s1ij中位于第i列中20个数据的索引值存放到cij中,且每个数据的索引值在cij中所处行数等于该数据在s1ij所处行数,将cij中的20行1列数据作为矩阵的第i列数据,最终得到包含20行m列索引值的第二索引值矩阵;

步骤8、将第二索引值矩阵中第i列索引值与第一索引值矩阵中1列数据的绝对差值之和记为srdij,其中srdij等于第二索引值矩阵中第i列第1行索引值与第一索引值矩阵中第1行1列数据之差的绝对值~第二索引值矩阵中第i列第20行索引值与第一索引值矩阵中第20行1列数据之差的绝对值之和,得到m个绝对差值之和srd1j~srdmj;

步骤9、比较计算得到的srd1j~srdmj,找到其中的最小值,并确定计算得到该最小值的第二索引值矩阵中的一列索引值所对应的列数,该列数即为第i种等级中第j个茶叶样本所对应的茶叶等级;

步骤10、按照步骤2-步骤9的方法得到m种不同等级中每个茶叶样本的等级,然后将得到的第i种等级的茶叶样本的等级与其标注的等级li进行比较,判定两者是否相同,从而完成m种不同等级中所有茶叶样本等级的快速鉴别。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1