一种基于KNN的近红外异常光谱识别方法与流程

文档序号:17086060发布日期:2019-03-13 22:50阅读:547来源:国知局

本发明涉及一种基于knn的近红外异常光谱识别方法。



背景技术:

异常值是指和大多数数据模式不一致的观测样本值。异常值识别对于任何基于经验数据的研究都是不可或缺的部分。在近红外光谱分析等许多现实的应用场合,数据不但含噪声干扰还包含异常数据,导致所得出的模型出现极大的偏差。异常光谱的存在等训练数据集质量问题,已经成为改善近红外光谱分析模型性能的关键和瓶颈。在基于近红外光谱分析的品质参数检测中,异常数据包括异常光谱数据和所预测的品质参数的异常测量值。品质参数一般是一维数据,低维数据的异常值识别相对简单,现有方法可以很好的完成,本章节不作分析研究。而高维的异常光谱数据的识别,是具有挑战性的问题,仍然是近红外光谱分析中值得重点关注和研究的环节,也是本章所要研究的内容。

有研究指出日常数据中异常值出现的概率大概有1%到15%。数据中异常值的出现通常有两种原因。一种是因为实验性错误;另一种是由于少数几个对象的独特特征。同样,近红外光谱分析中,异常光谱可能来源于测量背景异常变化,仪器噪声增加,操作错误等,也有可能源于少数测试样本自身的异常。

在近红外光谱分析中,异常光谱数据的存在严重影响到光谱分析模型的准确性和可靠性。异常光谱数据影响正确的回归模型的构建以及模型参数准确估计,从而影响预测结果的准确性。使用鲁棒的回归分析模型和方法,可以使回归模型在一定程度上减少异常值的影响并尽量代表大多数的数据,但无法完全消除异常值的负面影响。因此在光谱数据分析之前检测和识别异常光谱很重要。异常值识别是构建高质量的回归预测模型的最重要步骤之一。

由于异常光谱识别的重要性,已成为大部分近红外光谱分析研究中一个重要步骤。当前的许多光谱分析方面的研究,通过绘制光谱图,然后由人工去分析和识别异常光谱。这种人工识别方式虽然简单直观,但效率低下,且只能识别出的少量的特别明显的异常光谱,多数异常光谱在大量光谱遮盖下不易发现。有些研究中使用了如基于马氏距离,杠杆值,残差,主成分分析等方法识别异常光谱。

基于马氏距离和杠杠值等识别异常值的传统方法的不可靠和局限性,数十年前在统计领域就被清楚认识到。马氏距离要求样本数大于等于数据维度,这对于许多近红外光谱分析的场合都不能满足。杠杆值计算不但要求样本数不小于数据维度,而且要求数据矩阵满秩,比马氏距离计算的条件更为严格。

基于回归残差的异常值识别,依赖于正确的回归预测模型的构建。而异常光谱数据的存在,又会妨碍回归模型的正确构建,导致参数估计偏离,得到扭曲的预测结果。并且回归残差也依赖于所预测品质参数测量值的准确性,即品质参数的异常值和误差也会严重影响残差的大小。这些因素都会导致基于回归残差的异常光谱识别的不可靠。而且,基于回归残差的异常值识别,只适合于检测训练数据集中的异常光谱,而无法检测预测数据集中的异常光谱,因为预测数据集中的真实的品质参数值是未知的。然而预测光谱数据集中的异常值检测也很重要。

基于马氏距离,杠杆值,残差等的异常值识别方法的不可靠,主要的原因是由于异常值的存在,会扭曲异常值识别方法的度量。异常值相互之间存在浸没(swamping)效应和掩蔽(masking)效应。浸没效应是指正常数据也被误判为异常数据。掩蔽效应是指由于其他异常值的遮蔽,使一些异常值被误认为是正常数据。数据集中异常数据数量越多,这两种效应也会越明显和严重。



技术实现要素:

发明目的:

本发明的目的就是为了解决异常光谱数据影响近红外定量分析模型的性能的问题,准确而全面的更好识别并剔除异常光谱,从而改善近红外定量分析预测模型的准确性和可靠性,提高模型的预测精度。

技术方案:

基于knn(k最近邻)异常数据识别算法,是将样本和第k个最近邻居之间的距离作为异常度量的算法。有些k最近邻方法的变体,将样本与k个最近邻的距离的加权和作为异常度量。

基于距离度量来辨别异常值的方法,可分为两种方式,一种是以到所有样本的均值的距离作为异常度量,暂且称为中心距离法;另一种是所测样本到其近邻的距离作为异常度量。前者是通常使用的方法,包括前述的马氏距离等异常值辨别方法都属于中心距离法;后者则是基于k最近邻的异常数据识别法。

knn方法和前述的马氏距离等中心距离法进行异常光谱识别有着根本的差别。中心距离法假设所有样本在高维空间中近似服从单群体高斯分布(处于超椭球体内),而knn近邻方法不需要这个假设,可适用于任意群体分布。

基于knn的异常值识别方法,隐含着这样的假设:正常光谱相互间相似程度高,和近邻间距离小;异常光谱和其他光谱不相似,和近邻间距离较远。这个假设和异常值的定义很相近,所以可看作几乎没有引入额外的假设和条件。knn需要计算所有n个样本相互之间的距离,再找出每个样本的k个最近邻,对于高维数据计算量非常大。一般通过希尔伯特空间填充曲线将样本空间线性化,减少计算量,加速查找最近邻的过程。

本发明基于knn的近红外异常光谱识别方法,其特征在于,包括以下主要步骤:

(1)选择某种距离度量d(,)作为近红外光谱样本间的相似性度量;

(2)选择超参数k。异常值识别研究中,k值的确定需根据经验决定,尝试若干个k值,选择识别效果较好的k值,本研究中选择k=5;

(3)计算光谱样本和其他所有样本的距离d(,),-1,+1,…,n。n为总样本数;

(4)找出和样本xi距离最短的k个样本;

(5)把xi和第k个样本的距离作为样本xi的异常值度量;或者把和xi最近的k个样本距离加权累加后作为样本的异常度量。前者可看作是后者的特例;

(6)回到步骤3),计算其它每一个近红外光谱样本的异常度量;

(7)将所有近红外光谱样本按照其异常度量从高到低的次序进行排序;

(8)在异常度量最高的序列前端中识别出异常光谱数据。有两种方式,一种方式,确定一个阈值,异常度量大于该阈值的视为潜在异常光谱数据;另一种方式,是结合其他方法,依次考察异常异常度量最高的光谱数据,直到遇到正常光谱为止。

具体实施方式

下面结合具体实施方式对本发明做进一步说明。

实施例1:基于欧氏距离度量的knn的异常光谱识别方法

欧氏距离knn:基于欧氏距离的k最近邻法,样本与其k最近邻样本间的欧氏距离作为异常度量;

欧氏距离是最常用的距离度量和样本间相似性度量。欧氏距离的计算简单快捷,计算速度和算法实现上具有优势,在性能相近的情况下往往成为优先选项。下面给出基于欧氏距离knn的异常值识别方法,一方面考察验证其异常光谱数据的识别能力,另一方面作为后续基于主成分标准化空间的pc-knn方法的参照对比基础。

输入:一个的训练集光谱数据矩阵x,n为光谱样本,p是所测波长点数。

1)选择欧氏距离作为样本间的相似性度量;

2)选择超参数k。异常值识别研究中,k值的确定需根据经验决定,尝试若干个k值,选择识别效果较好的k值,本研究中选择k=5;

3)计算光谱样本和其他所有样本的距离d(,),-1,+1,…,n。n为总样本数;

4)找出和样本距离最短的k个样本;

5)把和第k个样本的距离作为样本的异常值度量;或者把和最近的k个样本距离加权累加后作为样本的异常度量。前者可看作是后者的特例;

6)回到步骤3),计算其它每一个近红外光谱样本的异常度量;

7)将所有近红外光谱样本按照其异常度量从高到低的次序进行排序;

8)在异常度量最高的序列前端中识别出异常光谱数据。有两种方式,一种方式,确定一个阈值,异常度量大于该阈值的视为潜在异常光谱数据;另一种方式,是结合其他方法,依次考察异常异常度量最高的光谱数据,直到遇到正常光谱为止。

实施例2:基于主成分空间距离度量的knn的异常光谱识别方法

基于主成分标准化空间的pc-knn方法,光谱数据进行主成分分析,并对所有主成分(pc)标准化后得到的数据基础上,再使用基于欧氏距离的k最近邻法。

基于欧氏距离的样本间相似性度量,潜在假设是样本分布在各方向上的方差基本相等。而在实际应用中,这个条件不一定满足。基于马氏距离的样本间相似性度量,对各方向的方差大小没有假设和要求。但是马氏距离的计算,不适用于小样本或数据中包含大量的互相关变量的场合,因为这种情况下协方差矩阵是奇异的或者接近奇异。近红外光谱数据一般是小样本高维度,且各维度间存在着高度的互线性关系。因此,近红外光谱分析中,马氏距离度量存在巨大的局限性。前面小节中通过理论分析,已经证明在保留所有主成分时,主成分标准化空间中的欧氏距离,等价于原始光谱数据中的马氏距离。主成分分析对样本数和各维度间线性相关程度没有要求,可广泛适应于近红外光谱分析场合。

基于pc-knn(principalcomponents-knn)的异常光谱识别方法,是在主成分分析后,标准化后的主成分间的knn异常光谱识别方法。该方法既克服欧氏距离度量对样本分布的局限性,又避免马氏距离计算中要求协方差矩阵非奇异的局限性。方法具体流程如下:

输入:一个的训练集光谱数据矩阵x,n为光谱样本,p是所测波长点数。

1)x以列为单位进行居中处理;

2)对x进行主成分分析,得到主成分(pc)空间的新坐标u;

3)选择保留的主成分数pn。默认可以保留所有主成分,这样等同于马氏距离。因为方差最小的主成分往往主要由噪声组成。可以考虑舍弃部分最微弱的主成分。

4)对u进行标准化处理,每个主成分(列)都是零均值,单位方差;

5)选择欧氏距离作为样本在主成分标准化空间的相似性度量;

6)选择超参数k。异常值识别研究中,k值的确定需根据经验决定,尝试若干个k值,选择识别效果较好的k值,本研究中选择k=5;

7)计算光谱样本和其他所有样本的距离d(,),-1,+1,…,n。n为总样本数;

8)找出和样本距离最短的k个样本;

9)把和第k个样本的距离作为样本的异常值度量;或者把和最近的k个样本距离加权累加后作为样本的异常度量。前者可看作是后者的特例;

10)回到步骤7),计算其它每一个近红外光谱样本的异常度量;

11)将所有近红外光谱样本按照其异常度量从高到低的次序进行排序;

在异常度量最高的序列前端中识别出异常光谱数据。有两种方式,一种方式,确定一个阈值,异常度量大于该阈值的视为潜在异常光谱数据;另一种方式,是结合其他方法,依次考察异常异常度量最高的光谱数据,直到遇到正常光谱为止。

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