基于核密度估计与香农熵的风电机组数据异常检测方法

未命名 08-15 阅读:173 评论:0


1.本技术属于异常检测技术领域,尤其涉及一种基于核密度估计与香农熵的风电机组数据异常检测方法。


背景技术:

2.近年来,全球可再生能源利用率越来越高,风力发电是可再生能源的重要组成部分。风力发电机组是将风的动能转换为电能的系统,简称为风电机组。风电机组的叶片转速、产生电力、叶片温度、倾斜角度等多维数据,也称为风电机组数据。风电机组数据的分析研究对推动风电技术发展具有重要的意义,在对风电机组数据的分析研究中,如何检测到数据中的异常值,成为了研究人员关注的热点。
3.基于密度的异常检测技术包含了很多的种类,如基于邻居的密度方法、基于频率的密度方法和基于分类的密度方法等。这些技术在许多领域已经得到了广泛的应用,如工业质检、医疗影像分析、视频监控等。基于密度估计的异常检测方法,具有可解释性强、算法复杂度较低等优点,密度估计的目的是了解潜在的概率密度,从中绘制了一组独立的和同分布的例子,因此可以在无监督的条件下,对数据进行分析。通过得到的密度值,寻找数据之间的关系,由此判断出数据是否为异常值。
4.尽管基于密度的数据异常检测已经取得了显著的成果,但仍然存在一些挑战和难点,例如如何更加精准的得到数据的密度分布、采用何种方法来衡量数据间的关系、如何降低方法中一些参数的取值对效果的影响等。


技术实现要素:

5.本技术的目的是提供一种基于核密度估计与香农熵的风电机组数据异常检测方法,用于检测出包含异常值的数据集中的异常样本。
6.为了实现上述目的,本技术技术方案如下:
7.一种基于核密度估计与香农熵的风电机组数据异常检测方法,包括:
8.对所有待检测数据点中任意一个数据点,求以马氏距离为标准的k个邻居数据点;
9.对所有数据点进行核密度估计,得到每个数据点的密度估计值;
10.利用密度估计值,针对一个数据点和它的k个邻居点进行归一化并求局部熵值;
11.将局部熵值除以数据点的密度估计值,得到熵密度比,将熵密度比按照大小进行排序,筛选出异常数据点。
12.进一步的,所述对所有数据点进行核密度估计,得到每个数据点的密度估计值,采用如下公式:
[0013][0014]
其中表示数据点x的密度估计值,数据点x是d维的数据,n是指数据集中数据
点的个数,h表示拟合过程中的带宽,表示核函数。
[0015]
进一步的,所述核函数采用高斯核函数。
[0016]
进一步的,所述利用密度估计值,针对一个数据点和它的k个邻居点进行归一化并求局部熵值,包括:
[0017]
对数据点xi的密度估计值进行归一化操作,得到归一化之后的密度估计值
[0018][0019]
其中,表示数据点xi的密度估计值,knn(xi,k)表示数据点的xi的k个邻居数据点集合;
[0020]
对数据点xi的第j个邻居数据点x
ij
进行归一化操作,得到归一化之后的密度估计值
[0021][0022]
其中,表示数据点x
ij
的密度估计值,表示数据点x
il
的密度估计值;
[0023]
通过如下公式,计算得到数据点xi的局部熵值e(xi):
[0024][0025]
其中,
[0026]
进一步的,所述将熵密度比按照大小进行排序,筛选出异常数据点,包括:
[0027]
将熵密度比按照大小进行排序,预设输出的异常数据点数量t,然后按照熵密度比的排序,由大到小选择t个数据点作为异常数据点。
[0028]
本技术提供的一种基于核密度估计与香农熵的风电机组数据异常检测方法,首先需要输入维度相同的数据集和不超过数据点数量的k值,然后基于马氏距离,求出每个数据点的k个邻居点;之后,对所有数据点进行核密度估计,针对每个点和它的邻居点,利用密度值计算局部概率值,并通过归一化概率值求熵;之后将每个点的熵值除以其自身的密度值,得到熵密度比;最后,通过对熵密度比进行排序,得到熵密度比大的点为异常点。具有以下技术效果:
[0029]
使用了机器学习中的knn、核密度估计和信息论中香农熵的相关方法,实现了传统算法与机器学习算法的相结合,在提高算法精确度的基础上,尽可能地降低算法复杂度。
[0030]
有效解决数据集中孤立点异常和集群异常的情况,在低维和高维数据集中都具有很高的检测准确率。
[0031]
本发明具有很强的鲁棒性,一般采用knn算法的异常检测算法的效果会被邻居个数k的大小严重影响,但本发明经过测试对k值具有很强的鲁棒性。
附图说明
[0032]
图1为本技术基于核密度估计与香农熵的风电机组数据异常检测方法流程图。
[0033]
图2为本技术方法在十维数据上检测与其余方法比较的结果图。
具体实施方式
[0034]
为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本技术,并不用于限定本技术。
[0035]
在一个实施例中,如图1所示,提出了一种基于核密度估计与香农熵的风电机组数据异常检测方法,包括:
[0036]
步骤s1、对所有待检测数据点中任意一个数据点,求以马氏距离为标准的k个邻居数据点。
[0037]
本实施例以风电机组的多维数据作为待检测数据,可以是某一台或多台风电机组的多维数据,通过采样获得各个待检测数据点,数据点的数据具有相同维度。
[0038]
本实施例预先设定邻居个数k,代表的是一个数据点寻找其邻居数据点(简称为邻居点)的个数,因此k值应当小于数据集中的数据点个数。
[0039]
本实施例求取一个数据点的k个邻居数据据点,采用马氏距离用于衡量数据点之间的距离,在低维数据中马氏距离与常用的欧式的距离的结果相近,但当在高维数据中,欧氏距离就不能很好地衡量出点与点之间的距离,因为在不同的维度上,由于数据的方差和均值不同,导致欧式距离在距离度量上的性能较差。马氏距离在计算过程中使用了数据点之间的协方差矩阵,可以更加考虑到各个维度上的数据特征,在高维数据中,具有更好的性能。马氏距离的公式表达,如下所示:
[0040][0041]
其中,dm(xi,xj)表示数据点xi与xj之间的马氏距离,(x
i-xj)
t
表示点xi各个维度的值与点xj各个维度的值的差的转置,σ-1
表示xi和xj的协方差矩阵的逆。
[0042]
将马氏距离作为点与点之间距离的衡量标准,改进knn算法。knn算法是机器学习算法,是指寻找以一个中心点最近的k个邻居点,通过寻找邻居点,可以判断该数据点所处的分布特征,使用马氏距离可以更准确地寻找到高维数据中的邻居点,公式表达如下:
[0043]
knn(xi,k)=s(dm(xi,xj),k),xj∈x,xj≠xi[0044]
其中,knn(xi,k)表示以xi为中心的最近的k个邻居数据点,s(dm(xi,xj),k)表示与xi马氏距离最小的k个数据点,xj属于全体数据点且不等于xi。
[0045]
步骤s2、对所有数据点进行核密度估计,得到每个数据点的密度估计值。
[0046]
本步骤用于对所有的数据点进行核密度估计,由此得到全局的数据点的密度值。核密度估计方法属于非参数检验方法之一,其不利用有关数据分布的先验知识,对数据分布不附加任何假定,是一种从数据样本本身出发研究数据分布特征的方法,核密度估计的目的是估测所给样本数据的概率密度函数,其估计的结果主要受估计带宽和核函数影响,由于不同的数据具有不同的特征,因此需要有不同的核函数用于估计,估计的带宽决定了估计过程中所使用的样本数据点。特别需要注意,当在数据维度不确定或者在高维度数据
中,需要将估计带宽乘以d次方。核密度估计的公式表示如下所示:
[0047][0048]
其中表示数据点x的密度估计值,数据点x是d维的数据,n是指数据集中数据点的个数,h表示拟合过程中的带宽,表示核函数。
[0049]
考虑到大部分的现实数据中,分布规律多为高斯分布,而且高斯分布在数理统计中更加具有一般性,因此本技术采用高斯核函数作为本方法的核函数,其表示如下所示:
[0050][0051]
其中exp表示指数函数,‖x‖表示数据点x的范数。
[0052]
将高斯核函数带入核密度估计值的公式,本实施例针对某个数据点的核密度估计值,如下所示:
[0053][0054]
其中xj表示数据集中除xi的其余点。
[0055]
由上式可以得到在所有数据点的核密度估计结果,可以更好地衡量每个数据点在数据集中的密度值,密度值越大,说明这个点附近的点越多,越处于数据点集群中,密度值越小,说明这个点附近的点越少,越处于孤立的位置。
[0056]
步骤s3、利用密度估计值,针对一个数据点和它的k个邻居点进行归一化并求局部熵值。
[0057]
结合步骤s1中knn算法得到的xi的邻居点和步骤s2中对所有数据点采用核密度估计法得到的密度估计值,可以得到以点xi为中心的局部熵值。
[0058]
在一个具体的实施例中,所述利用密度估计值,针对一个数据点和它的k个邻居点进行归一化并求局部熵值,包括:
[0059]
步骤s3.1、对数据点xi的密度估计值进行归一化操作,得到归一化之后的密度估计值
[0060]
核密度估计后的密度估计值可能会出现大于1的密度估计值。考虑到在求熵过程中,需要满足所求的数据点的概率值之和需要等于1,因此针对数据点xi以及以数据点xi为中心的邻居数据点,可以采用先用指数函数进行转换,再使用归一化的方法得到经过归一化之后的密度估计值。
[0061]
数据点xi局部归一化之后的密度估计值,表示如下所示:
[0062][0063]
其中,表示数据点xi的密度估计值,knn(xi,k)表示数据点的xi的k个邻居数据点集合,xm表示集合knn(xi,k)中的数据点。
[0064]
步骤s3.2、对数据点xi的第j个邻居数据点x
ij
进行归一化操作,得到归一化之后的密度估计值
[0065]
其公式表示如下:
[0066][0067]
其中x
ij
表示点xi的第j个邻居数据点,表示x
ij
的归一化之后的密度估计值,表示数据点x
ij
的密度估计值,表示数据点x
il
的密度估计值,数据点x
il
表示数据点xi的邻居数据点。
[0068]
步骤s3.3、通过如下公式,计算得到数据点xi的局部熵值e(xi):
[0069][0070]
本实施例计算得到的局部熵值,采用香农熵。在信息论中,香农熵被用来表现出信息量的多少,在机器学习中,香农熵,反映了一个系统的无序化(有序化)程度。一个系统越有序,信息熵就越低,反之就越高。在概率中主要表现为,概率分布是否平均,其要求用于计算的点的概率值之和要等于1。
[0071]
在前面步骤中,已经实现了归一化,因此在这里,可以直接以归一化之后的密度估计值求以点xi为中心的局部熵值,其表示如下所示:
[0072][0073]
式中e(xi)表示点xi的局部熵值,对数据集中所有的数据点都求取局部熵值。
[0074]
本实施例根据概率的定义,得到当前数据点在局部所有点中出现的概率,表示如下所示:
[0075][0076][0077]
步骤s4、将局部熵值除以数据点的密度估计值,得到熵密度比,将熵密度比按照大小进行排序,筛选出异常数据点。
[0078]
在步骤s3中,得到了数据点xi的局部熵值,这个局部熵值用来描述当前数据点所处的局部密度关系,用于衡量当前数据点的密度分布是否均匀。在本步骤中,需要考虑数据点在全局数据点的位置,因此将熵值除以点xi的密度估计值,得到有关全局数据的熵密度比,表示如下所示:
[0079]
[0080]
其中ed(xi)表示点xi的熵密度比,e(xi)表示点xi的局部熵值,表示点xi的全局密度估计值。
[0081]
当ed(xi)越大,则表示该点的密度值越小和局部熵值越大,可以判断为异常点;当ed(xi)越小,则表示该点的密度值越大和局部熵值越小,可以判断为正常点。
[0082]
在求出的数据集中所有数据点的熵密度比之后,对其进行排序,然后根据排序结果筛选出异常数据点。
[0083]
具体的,根据排序结果筛选出异常数据点,可以预设输出的异常数据点数量t,然后按照熵密度比的排序,由大到小选择t个数据点作为异常数据点。也可以设定熵密度比的判断阈值,将熵密度比大于判断阈值的数据点作为异常数据点。
[0084]
通过以上步骤,最终输出异常数据点的序号和异常数据点的熵密度比,完成了数据集中的异常检测。
[0085]
本技术还给出了实验数据,通过实验验证本技术的方法有效性和效率,在一个十维数据集上进行测试,这个数据集中有700个数据点,其中有70个异常点。为了测试本技术方法对于knn中k值的鲁棒性,将k值由50逐渐变为290,间隔为10。并针对knn、dcrod和本技术的方法进行异常检测测试,得到如图2所示结果(mdne为本技术方法),并将具体的k值下的结果绘制如下表。
[0086]
表1本发明与其他基于密度异常检测方法的auroc评分的比较
[0087][0088]
表1
[0089]
如表1所示,将三种方法在相同的数据集上进行测试,发现knn和dcrod在十维数据下的测试结果会收到k值的极大影响,而本技术的方法表现出很高的鲁棒性,并且auroc值维持在0.97以上。
[0090]
总体而言,本技术提出一种基于核密度估计与香农熵的数据异常检测方法。使用了knn、核密度估计和香农熵这几种方法,分别从局部和全局的角度对数据集中的数据点进行分析,并获得了用于衡量异常点的指标——熵密度比,针对熵密度比,可以筛选出数据集中的异常点。经过测试和验证,本技术方法具有比其他基于密度的异常检测方法更强的鲁棒性和auroc值。
[0091]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。

技术特征:
1.一种基于核密度估计与香农熵的风电机组数据异常检测方法,其特征在于,所述基于核密度估计与香农熵的风电机组数据异常检测方法,包括:对所有待检测数据点中任意一个数据点,求以马氏距离为标准的k个邻居数据点;对所有数据点进行核密度估计,得到每个数据点的密度估计值;利用密度估计值,针对一个数据点和它的k个邻居点进行归一化并求局部熵值;将局部熵值除以数据点的密度估计值,得到熵密度比,将熵密度比按照大小进行排序,筛选出异常数据点。2.根据权利要求1所述的基于核密度估计与香农熵的风电机组数据异常检测方法,其特征在于,所述对所有数据点进行核密度估计,得到每个数据点的密度估计值,采用如下公式:其中表示数据点x的密度估计值,数据点x是d维的数据,n是指数据集中数据点的个数,h表示拟合过程中的带宽,表示核函数。3.根据权利要求2所述的基于核密度估计与香农熵的风电机组数据异常检测方法,其特征在于,所述核函数采用高斯核函数。4.根据权利要求1所述的基于核密度估计与香农熵的风电机组数据异常检测方法,其特征在于,所述利用密度估计值,针对一个数据点和它的k个邻居点进行归一化并求局部熵值,包括:对数据点x
i
的密度估计值进行归一化操作,得到归一化之后的密度估计值的密度估计值进行归一化操作,得到归一化之后的密度估计值其中,表示数据点x
i
的密度估计值,knn(x
i
,k)表示数据点的x
i
的k个邻居数据点集合;对数据点x
i
的第j个邻居数据点x
ij
进行归一化操作,得到归一化之后的密度估计值进行归一化操作,得到归一化之后的密度估计值其中,表示数据点x
ij
的密度估计值,表示数据点x
il
的密度估计值;通过如下公式,计算得到数据点x
i
的局部熵值e(x
i
):其中,
5.根据权利要求1所述的基于核密度估计与香农熵的风电机组数据异常检测方法,其特征在于,所述将熵密度比按照大小进行排序,筛选出异常数据点,包括:将熵密度比按照大小进行排序,预设输出的异常数据点数量t,然后按照熵密度比的排序,由大到小选择t个数据点作为异常数据点。

技术总结
本发明公开了一种基于核密度估计与香农熵的风电机组数据异常检测方法,基于马氏距离,寻找到每个数据点的邻居点,之后利用以高斯函数为核函数的核密度估计方法,对所有的数据进行密度估计。结合邻居点和密度估计值,计算出了以每个点为中心的局部熵值,局部熵值可以用来衡量局部点的密度是否均匀,可以用来更高效地检测集群异常。之后,将每个点的局部熵值除以每个点的密度估计值,得到熵密度比。熵密度比越高,说明局部熵值越高,说明当前局部的密度较为分散,同时,也表明当前点的密度值较小,说明当前点出现的概率低,由此可以判断为异常点。本发明可以精准高效地检测出多维数据集中的异常点。据集中的异常点。据集中的异常点。


技术研发人员:章凯拓 黄伟 刘振 金晓航 姚信威
受保护的技术使用者:浙江工业大学
技术研发日:2023.05.11
技术公布日:2023/8/14
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐