最新版BP神经网络的异常点检测应用可行性研究报告毕业论文Word文件下载.docx
《最新版BP神经网络的异常点检测应用可行性研究报告毕业论文Word文件下载.docx》由会员分享,可在线阅读,更多相关《最新版BP神经网络的异常点检测应用可行性研究报告毕业论文Word文件下载.docx(30页珍藏版)》请在冰豆网上搜索。
![最新版BP神经网络的异常点检测应用可行性研究报告毕业论文Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-12/1/77043d1c-dffd-4d35-b49d-68a98ddab7d0/77043d1c-dffd-4d35-b49d-68a98ddab7d01.gif)
(3)normaldataisnotsufficientornotrepresentative,sothenormaldataclasslearningisnotsufficient,leadingtoabnormalcannotjudge.Tosolvetheaboveproblem,thispaperproposesthefollowingimprovements:
(1)BPalgorithmbeforefeaturereduction(map)benefitfromanomalydetectionfeaturesselected
(2)integrationofmultipleneuralnetworks,differentneuralnetworktorecognizethedifferentcharacteristicsofeacheachother,thefinalfusionresult.
KeyWords:
Outliers-Data,BP,Algorithms,NeuralNetworks
1引言1
1.1背景1
1.2传统已有异常点算法介绍1
1.2.1基于统计学的异常点检测算法1
1.2.2基于距离的异常点检测算法2
1.2.3基于密度的算法3
1.2.4基于偏差的异常点检测5
1.2.5基于聚类的异常点检测算法6
2基于属性特征在异常点检测中的研究7
3BP神经网络介绍9
3.1模型简介9
3.2计算各层节点输出9
3.3修正权值10
4异常检测中BP神经网络的设计13
4.1可微阈值单元13
4.2单个BP网络结构设计13
4.3BP神经网络学习过程的基本步骤14
5实验研究17
5.1研究使用的数据库介绍17
5.2训练方案一实验:
把bp神经网络相似性代替距离算法相似度量17
5.3训练方案二实验:
用单个神经网络对训练数据库整体特性进行学习18
5.4训练方案三实验:
多神经网络各种形式训练及其决策19
5.4.1实验设计思路19
5.4.2实验方案及步骤20
5.4.3实验分析22
5.4.4实验失败原因分析23
5.5BP调参实验25
5.5.1对实验一调整隐层实验25
5.5.2对实验二调整隐层实验26
5.5.3对实验三调整隐层实验29
5.6数据仿真实验31
5.6.1实验思路31
5.6.2实验步骤31
5.6.3实验结果32
5.6.4结果分析33
5.7实验整体分析33
总结与展望35
致谢39
1引言
1.1背景
异常点(离群点或者孤立点)检测是数据挖掘中一个重要方面,Hawkins[1]最早给出了异常点的本质定义:
异常点是数据集中与众不同地数据,以至于使人怀疑这些数据并非随机偏差,而是产生与完全不同的机制。
异常点可能由于度量或执行错误产生,也可能是由于固有数据可变性的结果。
例如,一个公司首席执行官的工资自然远远高于公司其他雇员的工资,成为一个异常点。
许多数据挖掘算法试图减少异常点的对挖掘结果的影响,或者在挖掘过程中排除异常点。
然而异常点可能隐藏着重要的信息,也许比一般的数据更有价值。
因此人们开始逐渐研究异常点挖掘算法。
目前异常点检测已经开始用于信用卡欺诈、网络入侵检测以及金融申请和交易欺诈等领域[2],近年来异常点检测已成为数据挖掘研究中的一个热点问题。
传统数据挖掘主要有以下几类:
基于统计的方法,基于距离的方法,基于偏移方法,基于聚类方法,基于密度方法。
本文从特征与异常检测的关系出发进行研究。
BP神经网络适用于储存和描述这种复杂的关系。
但是异常检测过程,通常数据的位数较高,在高维特征存在冗余特征干扰,以及高维特征下数据不充分的问题,因此,本文研究了BP神经网络应用于不同情况。
1.2传统已有异常点算法介绍
1.2.1基于统计学的异常点检测算法
早期的异常点检测算法大多数是基于统计学实现的,通常可以分为基于分布的检测算法和基于深度的检测算法两类。
前者一般通过先构造一个标准概率分布来拟合数据集,然后根据概率分布来确定异常点,例如Rosner提出的单样本多个异常检测算法ESD算法,和Yamnishi等使用混合高斯模型的异常点检测算法。
此类算法估计多维分布的概率模型的难度较大,且准确性低。
基于深度方法主要以计算几何为基础,通过计算不同层的K-D凸包将外层的对象判定为异常点。
但当数据集较大,此类方法在维数上的伸缩性不好。
基于统计的异常点检测方法易于理解,实现方便,但此方法检测出来的异常点很可能被不同的分布模型检测出来,解释异常点意义时经常发生多义性。
其次,此方法在很大程度上依赖于待挖掘的数据集是否满足某种概率分布模型、模型的参数、异常点的数目等对基于统计的方法都有非常重要的意义,而确定这些参数通常比较困难;
另外,此方法大多适合于挖掘单变量的数值型数据,然而许多数据挖掘问题要求在多维空间中发现异常点,目前几乎没有多元的不一致检验,当没有特定的检验时,或观察到的分布不能恰当地用任何标准的分布建模时,此类方法不能确保所有的异常点被发现。
1.2.2基于距离的异常点检测算法
基于距离的异常点检测算法的基本思想是把数据点看作空间中的点,异常点被定义为与大多数数据距离较远的点。
通常这类异常被描述为。
当且仅当数据集中至少有个数据点与点的距离大于时,数据对象点称为异常点。
这类方法与基于密度的检测算法有很大的相似之处,不需要事先知道数据集的分布模型,对于任意分布模型均有效。
基于距离方法最早是由Knorr和Ng在1998年提出的。
他们用DB(p,d)来表示数据集中的异常点,采用不同的参数与,可以表示所有的异常点。
与此定义相应的算法有三种,它们是基于索引(Index-based)的算法,嵌套循环(Nest-Loop,NL)算法,基于单元或划分(cell-based)的算法等。
基于索引的方法依赖多维索引结构(R-trees,X-trees,KD-tress等)的性能。
随着维数的增加,所有的索引结构的性能迅速下降,使得算法性能不佳。
NL算法可以避免构建索引结构,减少了算法的次数。
以上两方法的算法时间复杂度为,当遇到大量数据集时它们还有待改进。
基于单元的方法是把数据集划分为单元,逐个单元的检测,而非逐个对象的检测。
它的时间复杂度为,其中取决于单元的个数和维数。
Knorr和Ng通过试验证明,当时此算法优于NL算法。
相对前两者,基于单元的算法无论是在数据量还是在维数增加时,性能都是最好的。
此算法需要将数据空间分隔成彼此独立的单元结构,经过多次选择来判断离群数据。
对于参数的每个变化都需要调整单元结构,因此会影响了算法的结果。
后来,Rastogi和Ramaswamy提出了一个新的基于距离的异常点定义,即基于距离的第最近邻(k-thNearestNeighbor)异常点挖掘方法。
给定维空间中包含个点的数据集、参数和(自然数),表示点和它的第最近邻的距离。
如果满足的点q不超过n-1个,即
,那么称为异常点。
如果对数据对象根据它们的距离进行排序,那么前n个点就被看作异常点。
他们用聚类算法首先对数据集进行聚类,然后在类中发现异常点。
相对于异常点挖掘,异常点挖掘方法人为干预的因素要小一些。
但它也有自身缺陷,就是要计算数据集中所有点的,这显然影响到算法的效率。
对低维空间的数据此方法优于索引算法和NL算法,但对于高维数据此算法性能不高。
Bay和ScFactor,简称MDEF),该算法将多粒度偏离系数是所在邻域的标准多粒度偏离系数的3倍的点判定为异常点,然而标准多粒度偏离系数的计算量大,对算法的可行性有一定的限制。
(4)DongmeiRen等采用相对密度系数(Rela—tiveDensityFactor,简称RDF),即P点的密度相对该点的邻域密度的比值作为孤立程度的度量方法,其基本思路是首先基于RDF对位于簇中心的数据点进行剪枝,然后仅仅在剩下的较小的数据集中进行异常点检测。
该方法降低了数据集的大小,提高了算法效率,但是在剪枝过程中对于特殊分布的数据集就有可能将异常点剪掉,算法的准确性受到限制。
(5)Breuning提出了局部异常的概念及相应异常检测方法(DBOM算法),即数据集中的每个对象的异常程度用局部异常因子LOF来衡量。
也就是说是否是异常点不仅仅取决于它与周围数据的距离大小,而且与邻域内的密度情况有关。
一个对象领域内的密度可以用包含固定结点个数的域半径指定半径领域中包含的结点数来描述。
这样就不会像DB(p,d)异常点那样遗漏一部分异常点。
LOF算法充分体现了“局部”的概念,每个点都给出了一个离群程度,离群程度最强的那个几个点被标记为异常点。
文献有关发面对LOF进行推广:
一是由原来的一个邻域的变化为两个(计算密度领域和比较密度领域);
二是剪除非异常对象来减小计算代价;
因此,使用算法比传统的LOF算法有所提高。
在现有的计算局部异常因子(LOF)算法中,把具有很高LOF值的对象作为异常点。
计算LOF要耗费很大的计算量,针对此问题malikAgyemang提出了修改算法,即局部稀疏系数(LSC)算法。
这种方法主要是引入局部稀疏系数(LSC)这一概念,根据每个对象的LSC值按从大到小的顺序排列整个数据集并把前n个对象作为异常点。
但是,此方法在实际应用中计算量亦是不小,效率有待提高。
另外,岳峰等利用反向K近邻(RKNN)这个概念提出了一个异常点检测算法(ODRKNN),在综合数据集和正式数据集上的实验结构表明,该算法能有效地检测出异常点,且算法效率高于典型的基于密度的异常点检测算法LOF和LSC的效率。
1.2.4基于偏差的异常点检测
基于偏差的异常点检测不使用统计检验或者基于距离的度量来识别异常对象。
相反,它通过检查一组对象的主要特征来识别异常点。
背离这种描述的对象认为是异常点。
因此,在该方法中,属于偏差通常用于指异常点。
主要有两种技术:
第一种顺序地比较集合中的对象,叫顺序异常技术(sequentialexceptiontechnique);
第二种采用OLAP数据立方体方法识别大型多维数据中的异常区域。
(1)序列异常技术:
Aming和Argrawal提出一种序列异常(sequentialexception)的概念。
这个算法复杂度与数据集大小呈线性关系,有优异的计算性能。
但是并没有得到普遍的认同,这是因为序列异常在概念上有一定的缺陷,它对异常点存在的假设太过理想化,对现实复杂数据效果不太好。
(2)OLAP数据立方体技术:
在大规模的多维数据中采用数据立方体来确定反常区域.如果一个立方体的单元值显著地不同于根据统计模型得到的值,该单元被认为是一个异常。
此方法是发现驱动探索的一种形式。
此方法由于搜索空间很大,人工探测非常困难。
第一种概念有缺陷,遗漏了不少异常点,时间复杂度与数据集大小成线性关系,适用性不高。
第二种搜索空间大,人工探测困难,效率不高,只适用多维数据。
1.2.5基于聚类的异常点检测算法
在聚类算法中,异常点检测仅仅是聚类的副产品。
聚类算法发展方向是优化聚类过程,而不是提高对异常点检测的能力,异常点检测和聚类是两个相对立的过程,聚类是把属于统一类的数据点聚集在一起,归为一类,而异常点检测是把和大多数数据点相异的点挖掘出来。
Su等人首先提出基于聚类的异常点检测算法,聚集的较小簇被认为是异常点,但这中方法忽略了小聚集簇和大聚集簇之间的距离,当一个小聚集簇和一个大聚集簇非常接近的时候,小聚集簇中的这些点更可能是大聚集簇的边界点而不是异常点。
模糊k均值聚类算法(FCM)常用于异常点检测,该算法动态地分配权重给每一个数据点,权重表示该数据点和数据集中心之间的距离,通过各点的权重来判断异常点。
此类算法没有先验知识指导如何确定聚类中心,只能是随机选取,优化搜索空间较大,算法的复杂度较大。
HongyiZhang等引为了提高模糊核聚类算法的运行效率,提出了新的模糊核聚类算法,该算法用先验知识对参数初始化。
取代了用聚类中心初始化,改进了聚类的目标函数,降低了算法的时间复杂度,但该算法没有提到如何选取核函数,对于算法模糊性的控制不好撑握。
2基于属性特征在异常点检测中的研究
传统算法大都是通过数据在空间地特性来判断检测异常点。
本文的方向是从特征出发研究。
传统算法从整个数据集合在空间中分布地特性出发研究,比如距离的从整个数据集空间距离进行研究,同样密度的按数据集空间密度研究,聚类也是按数据集空间特性。
而本文直接从已知部分数据维度的特征着手,即是直接从每一组数据的特征来研究。
对于单属性特征的情况,根据数据重要性调整特征(即维度)权值,并根据数据重要性调整。
假设数据特征表示在每个属性上面,独立没有组合属性表现特征地情况下,每一组数据属性对应权值数据乘积和,表示这个数据在这组数据中全局中所占的重要性。
例如检测是否是糖尿病人的数据库,三十岁以下这个年龄维度上病人较少,然而五十岁后这个维度病人比例就多了。
映射到维度为三十岁以下这个维度地病人比较少,映射到维度为十岁以上较多。
这样我们可以添加一个权值与年龄这一项数据乘积,这个乘积必须使权值与当前数据乘积出来的数据成正比,表示年龄增长能够体现在这组数据中的重要性。
以便全局统筹决策较容易。
设X为一组数据集合,可使趋向某个数值,表示这组数据某个总体特征。
异常或者非异常,可以通过趋向某个数值表示特征异常,另一个方向数值表示非异常。
有时候数据组合的重要性是体现在几个数据地组合里面,既可能体现在几个属性上面,比如说一组数组(A,B,C),可能AB组合特征不显示异常,然而ABC组合就显示异常,这些组合是不定地。
所有在属性权值之上需要一组对属性不同组合特征的权值调整。
图2.1样例图示
如图2.1,某个异常点可能异常特征是属性1,可能是属性1、属性2地组合,对于同个数据库不同点具有组合不确定性。
由于特征地不可确定性,数值不确定,组合不确定。
我们可以采用神经网络自学习调整权值。
同时根据已知数据训练修改这些权值,使其具有识别某种组合特征的能力。
使其自学习特征,自动控制调整权值及权值组合。
人工神经网络作为一种新型信息处理系统,在信息处理方面,具有如下显著的特点:
(1)输入-输出映射能力。
人工神经网络具有自学习能力,通过学习,能够根据网络期望输出和网络实际输出之差来调整神经元间连接权值和阈值,直至使实际输出与期望输出之间的误差减小到满意的程度,这样就实现了输入到输出的映射。
人工神经网络的输入-输出映射能力对于预测有特别重要的意义。
(2)非线性特性。
人工神经网络具有很强的非线性,这种非线性分散在每个神经元,通过传递函数实现。
利用神经网络的非线性特性,可解决药学研究及实验数据处理过程中大量的非线性问题。
(3)高度并行性。
人工神经网络是由许多相同的简单处理单元并联组合而成,具有高度并行性特性,使其对特定任务的计算变得很快,对信息的处理能力与效果惊人,因此提供了一种解决高层复杂问题的能力和方法。
(4)良好的容错性与联想记忆功能。
人工神经网络通过自身的网络结构能够实现对信息的记忆,而所记忆的信息是存储在神经元之间的权值中。
从单个权值中看不出所存储的信息内容,因而是分布式的存储方式,这使得网络具有良好的容错性,既能进行模式信息处理工作,又能进行模式识别工作。
因为这些特点,神经网络广泛应用在聚类分析、模式识别、信号处理、系统辨识、优化计算、预测控制等领域。
根据神经网络记忆分类地特性,本文设想通过这些特性学习出能够辨别异常点非异常点数据的神经网络,主要研究其可行性。
3BP神经网络介绍
3.1模型简介
人工神经网络理论是80年代中后期迅速发展起来的一项前沿研究领域,其应用已渗透到各个领域。
BP神经网络模型是人工神经网络的重要模型之一,应用尤为广泛。
BP算法主要包括两个过程,一是由学习样本、网络权值从输入层→隐含层→输出层逐次算出各层节点的输出;
二是反过来由计算输出与实际输出偏差构出的误差函数E(),用梯度下降法调节网络权值,即
(3.1)
使误差减小。
设输入层节点数为n,隐含层节点数为r,输出层节点数为m,隐含层与输入层之间的权值矩阵为,隐含层节点阀值为,输出层与隐含层之间权值矩阵为,输出层节点阀值为,并设有N个学习样本其中
为第P个学习样本的输入向量,
为其实际输出向量。
其中,下文中如不指明则相同。
3.2计算各层节点输出
输入层节点,取其输出与输入相同,即
隐含层节点输入,输出分别为:
(3.2)
若令则有:
,
。
输出层节点输入,输出分别为:
(3.3)
若令,则有:
(3.4)
3.3修正权值
设
其中为第p个学习样本产生的输出误差,为总误差。
由误差函数调整权值有:
其中
(3.5)
其中为学习速率,一般在[0,1]内取值。
权值修正为:
(3.6)
(3.7)
4异常检测中BP神经网络的设计
4.1可微阈值单元
图4.1可微阈值单元
如图4.1可微阈值单元,图中为sigmoid单元,与感知器相似,sigmoid单元先计算它的线性组合,然后应用一个阈值到此结果。
然而,对sigmoid单元,阈值输出是输入的连续函数。
更精确地讲,sigmoid单元这样计算输出。
(4.1)
其中:
(4.2)
经常被称为sigmoid函数或者也可以称为logistic函数。
注意它的输出范围为0到1,随输入单调递增。
因为这个函数把非常大的书值域映射到一个小范围的输出。
也叫挤压函数。
本算法就是想把所有整数据特征映射到一个小范围来处理判断。
4.2单个BP网络结构设计
采用4.1为神经感知器,隐层感知器根据实际数据库的属性确定,一般少于等于属性个数,输出层一个输出感知器。
图4.2BP结构
输入层为一组数据,全连接到隐层,隐层计算输出受挤压函数处理后的数值,输出层的输入为隐层输出。
最后输出0到1的数值。
隐层输出层的神经元,每个的都初始化为-0.05,其他权值都初始化:
(double)((rand()32767.0)*2-1);
随机数种子为系统时间。
训练教师信号,按具体方案处理设定。
4.3BP神经网络学习过程的基本步骤
(1)定义误差函数为期望输出与实际输出之差的平方和:
(4.3)
其中yj是输出单元的期望输出,是实际的输出。
(2)调节权值的公式为:
(4.4)
其中为学习步长,取正参数,代表上一层神经元的输出,而有两种情况:
1)如果j是输出层(第m层)的神经元,则
(4.5)
2)如果j不在输出层,而是隐含层的神经元,则
(4.6)
是该神经元的输出,而求本层的必须用到上一层的,可见误差函数的求取是一个始于输出层的反向传播的递归过程。
(3)将学习模式不断输入到输入层,再根据输出层产生的误差不断修正神经元间连结的权值和神经元的阈值,直到学习模式全部输入或误差达到一定的值。
反向传播算法在网络规模较大时计算量很大,收敛较慢,而且存在局部最小的问题,根据这一问题,在具体操作时采用了加入动量项的方法:
(4.7)
称为动量因子,这样后一次的权值更新适当考虑上一次的权值更新,可以改善收敛特性。
5实验研究
5.1研究使用的数据库介绍
在尝试各种算法方案地研究中,使用的数据库名称:
TheInsuranceCompanyBenchmark(COIL2000).关于保险的数据,其中包括:
TICDATA2000.txt,训练数据,5822组数据,每组86个属性,第86个为是否异常的标志变量,总地为两类数据;
TICEVAL2000,测试数据,4000组,每组为85个特征属性;
TICTGTS2000.txt,与ticeval2000对应组地结果。
把bp神经网络相似性代替距离算法相似度量
起初思路是采用两两相似性地训练,然后得出一个整体数据库属性特征的神经网络。
采用表示X与Y两者相似性差异。
在神经网络则表示为两者整体特征差异大小。
假设这样能够成功,则以后只要判断测试数据与整体已知数据库地整体差异大小,就可以判断异常与否。
神网络结构大概如下:
每个方向箭