计算机系论文.doc_第1页
计算机系论文.doc_第2页
计算机系论文.doc_第3页
计算机系论文.doc_第4页
计算机系论文.doc_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机学院毕业论文本科毕业设计(论文) BP神经网络的异常点检测应用可行性研究学 院 计算机学院 专 业 软件工程 年级班别 2006级(4)班 学 号 3106007039 学生姓名 蔡东赟 指导教师 王丽娟 2010年 5 月摘 要异常点数据是指数据集中与众不同数据。这部分数据的量小,但是对于我们的日常生产生活的影响极大。因此,异常点检测被广泛应用于网络入侵检测,金融保险,天气预报以及新药研制等领域。相对于大量的正常数据挖掘而言,异常点检测被称作小模式数据挖掘。BP算法是一种常用的数据挖掘算法。但是BP算法进行实际数据的异常点数据挖掘过程中存在:实际数据的维数较高,存在冗余特征的干扰,以及在高维特征下,数据量不充分的问题。因此,本文分析BP神经网络处理各种数据的情况,并得到以下结果。(1)BP神经网络能够较好的分离特征单一的仿真数据;但是(2)特征相似性较大的数据集,难以分离判断;(3)正常数据不充分或者不具有代表性,因此正常数据类学习不充分,从而导致异常无法判断。针对以上问题,本文提出了以下的改进措施:(1)BP算法前进行特征约简(映射)从中选取有益于异常检测的特征(2)多神经网络融合,不同神经网络识别不同的特征,相互取长补短,融合后得到最终的结果。关键字:异常,BP,异常点检测,神经网络注:本设计(论文)题目来源于教师的国家级(或部级、省级、厅级、市级、校级、企业)科研项目,项目编号为: 。AbstractOutlier data is the data set different data. This part of the small amount of data, but for our daily production and life of great. Therefore, the anomaly detection is widely used in network intrusion detection, finance, insurance, weather, and new drug development and other fields. Relative to the large number of normal data mining, the anomaly detection model is called data mining small. BP algorithm is a commonly used data mining algorithm. But the BP algorithm to real data outliers exist in the data mining process: the higher the dimension of the actual data, there are redundant features of the interference, and high-dimensional feature, the issue of inadequate data. Therefore, this paper analyzes a variety of BP neural network processing of data, and to get the following results. (1) BP neural network can better separation characteristics of a single simulation data; but (2) the characteristics of similar large data sets, separation is difficult to judge; (3) normal data is not sufficient or not representative, so the normal data class learning is not sufficient, leading to abnormal can not judge. To solve the above problem, this paper proposes the following improvements: (1) BP algorithm before feature reduction (map) benefit from anomaly detection features selected (2) integration of multiple neural networks, different neural network to recognize the different characteristics of each each other, the final fusion result.Key Words:Outliers-Data,BP,Algorithms,Neural Networks目 录1引言11.1背景11.2传统已有异常点算法介绍11.2.1基于统计学的异常点检测算法11.2.2基于距离的异常点检测算法21.2.3基于密度的算法31.2.4基于偏差的异常点检测51.2.5基于聚类的异常点检测算法62基于属性特征在异常点检测中的研究73 BP神经网络介绍93.1模型简介93.2计算各层节点输出93.3 修正权值104 异常检测中BP神经网络的设计134.1可微阈值单元134.2单个BP网络结构设计134.3BP神经网络学习过程的基本步骤145实验研究175.1研究使用的数据库介绍175.2训练方案一实验:把bp神经网络相似性代替距离算法相似度量175.3训练方案二实验:用单个神经网络对训练数据库整体特性进行学习185.4训练方案三实验:多神经网络各种形式训练及其决策195.4.1实验设计思路195.4.2实验方案及步骤205.4.3实验分析225.4.4实验失败原因分析235.5BP调参实验255.5.1对实验一调整隐层实验255.5.2对实验二调整隐层实验265.5.3对实验三调整隐层实验295.6数据仿真实验315.6.1实验思路315.6.2实验步骤315.6.3实验结果325.6.4结果分析335.7实验整体分析33总结与展望35致谢39391引言1.1背景异常点(离群点或者孤立点)检测是数据挖掘中一个重要方面,Hawkins1最早给出了异常点的本质定义:异常点是数据集中与众不同地数据,以至于使人怀疑这些数据并非随机偏差,而是产生与完全不同的机制。异常点可能由于度量或执行错误产生,也可能是由于固有数据可变性的结果。例如,一个公司首席执行官的工资自然远远高于公司其他雇员的工资,成为一个异常点。许多数据挖掘算法试图减少异常点的对挖掘结果的影响,或者在挖掘过程中排除异常点。然而异常点可能隐藏着重要的信息,也许比一般的数据更有价值。因此人们开始逐渐研究异常点挖掘算法。目前异常点检测已经开始用于信用卡欺诈、网络入侵检测以及金融申请和交易欺诈等领域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-th Nearest Neighbor)异常点挖掘方法。给定维空间中包含个点的数据集、参数和 (自然数),表示点和它的第最近邻的距离。如果满足的点q不超过n-1个,即,那么称为异常点。如果对数据对象根据它们的距离进行排序,那么前n个点就被看作异常点。他们用聚类算法首先对数据集进行聚类,然后在类中发现异常点。相对于异常点挖掘,异常点挖掘方法人为干预的因素要小一些。但它也有自身缺陷,就是要计算数据集中所有点的,这显然影响到算法的效率。对低维空间的数据此方法优于索引算法和NL算法,但对于高维数据此算法性能不高。Bay和Sc hwabacher在沿用Rastogi和Ramaswamy对于异常定义的基础上,提出了一种基于随机抽样的检测方法,它通过随机抽样的方法,减少了寻找k近邻的范围,在试验数据上获得了几乎线性的计算复杂度。随着人们对基于距离的方法的不断研究,一些新的、较好的算法也不断的涌现。代表性的算法有: 陆声链等提出一个判断异常点的新定义,并设计基于抽样近似检测算法。使得算法性能有所提高;另外,徐雪松等利用聚类算法与第k个最近邻的原理提出了基于距离的再聚类的异常点算法,它克服一些基于距离算法的缺点,并取得较好的试验结果。与基于统计的方法相比,它有以下几个优点: 则可找出数据集中的异常点。(1) 在理论上可以处理任意维任意类型的数据,这就克服了基于统计方法仅能检测单个属性的缺点。(2) 不必对数据集的相关信息(数据服从哪种统计分布模型,数据类型特点等)足够了解。实际上在给出了距离的度量,并对数据进行预处理后。1.2.3基于密度的算法基于密度方法是在基于距离的方法上改进而来。基于密度的异常观点比基于距离的异常观点更贴近Hawkins的异常定义,因此能够检测出基于距离异常算法所不能识别的局部异常。局部异常观点摒弃了以前所有的异常定义中非此即彼的绝对异常观念,更加符合现实生活的中的应用。所谓密度是基于任意一点和P点距离小于给定半径R的邻域空间内的数据点的个数计算得到的。一般的对密度的定义是点到其量近邻的平均距离,平均距离小则密度小。基于密度的异常点检测,就是探测局部密度,通过不同的密度估计策略来检测异常点。代表性算法主要有以下几种。(1) Brito等提出相互k近邻图(Mutual kNearest Neighbor,简称MkNN)算法,其主要思想是对每个连通子图进行检测,如果包含多个结点就组成一个簇,如果仅有一个结点,那么该结点就是异常点。该算法针对数据点的分布对各种特殊形状都有效,但算法执行效率不高。(2)Ville Hautamaki等提出两种基于密度的异常点检测算法,第一种算法思路为在kNN图中,若顶点u成为其它点的k近邻的次数少于给定阈值T时就被认为是异常点,另一种算法则是先对所有顶点的平均k近邻距离进行排序,然后将平均k近邻距离大于T点顶点视为异常点。 (3)Papadimitriou定义了多粒度偏离系数(MultiGranularity Deviation Factor,简称MDEF),该算法将多粒度偏离系数是所在邻域的标准多粒度偏离系数的3倍的点判定为异常点,然而标准多粒度偏离系数的计算量大,对算法的可行性有一定的限制。(4)Dongmei Ren等采用相对密度系数(Relative Density Factor,简称RDF),即P点的密度相对该点的邻域密度的比值作为孤立程度的度量方法,其基本思路是首先基于RDF对位于簇中心的数据点进行剪枝,然后仅仅在剩下的较小的数据集中进行异常点检测。该方法降低了数据集的大小,提高了算法效率,但是在剪枝过程中对于特殊分布的数据集就有可能将异常点剪掉,算法的准确性受到限制。(5)Breuning 提出了局部异常的概念及相应异常检测方法(DBOM算法),即数据集中的每个对象的异常程度用局部异常因子LOF来衡量。也就是说是否是异常点不仅仅取决于它与周围数据的距离大小,而且与邻域内的密度情况有关。一个对象领域内的密度可以用包含固定结点个数的域半径指定半径领域中包含的结点数来描述。这样就不会像DB(p,d)异常点那样遗漏一部分异常点。LOF算法充分体现了“局部”的概念,每个点都给出了一个离群程度,离群程度最强的那个几个点被标记为异常点。文献有关发面对LOF进行推广:一是由原来的一个邻域的变化为两个(计算密度领域和比较密度领域);二是剪除非异常对象来减小计算代价;因此,使用算法比传统的LOF算法有所提高。在现有的计算局部异常因子(LOF)算法中,把具有很高LOF值的对象作为异常点。计算LOF要耗费很大的计算量,针对此问题malik Agyemang提出了修改算法,即局部稀疏系数(LSC)算法。这种方法主要是引入局部稀疏系数(LSC)这一概念,根据每个对象的LSC值按从大到小的顺序排列整个数据集并把前n个对象作为异常点。但是,此方法在实际应用中计算量亦是不小,效率有待提高。另外,岳峰等利用反向K近邻(RKNN)这个概念提出了一个异常点检测算法(ODRKNN),在综合数据集和正式数据集上的实验结构表明,该算法能有效地检测出异常点,且算法效率高于典型的基于密度的异常点检测算法LOF和LSC的效率。1.2.4基于偏差的异常点检测基于偏差的异常点检测不使用统计检验或者基于距离的度量来识别异常对象。相反,它通过检查一组对象的主要特征来识别异常点。背离这种描述的对象认为是异常点。因此,在该方法中,属于偏差通常用于指异常点。主要有两种技术:第一种顺序地比较集合中的对象,叫顺序异常技术(sequential exception technique);第二种采用OLAP数据立方体方法识别大型多维数据中的异常区域。(1) 序列异常技术:Aming和Argrawal 提出一种序列异常(sequential exception)的概念。这个算法复杂度与数据集大小呈线性关系,有优异的计算性能。但是并没有得到普遍的认同,这是因为序列异常在概念上有一定的缺陷,它对异常点存在的假设太过理想化,对现实复杂数据效果不太好。(2) OLAP数据立方体技术:在大规模的多维数据中采用数据立方体来确定反常区域.如果一个立方体的单元值显著地不同于根据统计模型得到的值,该单元被认为是一个异常。此方法是发现驱动探索的一种形式。此方法由于搜索空间很大,人工探测非常困难。第一种概念有缺陷,遗漏了不少异常点,时间复杂度与数据集大小成线性关系,适用性不高。第二种搜索空间大,人工探测困难,效率不高,只适用多维数据。1.2.5基于聚类的异常点检测算法在聚类算法中,异常点检测仅仅是聚类的副产品。聚类算法发展方向是优化聚类过程,而不是提高对异常点检测的能力,异常点检测和聚类是两个相对立的过程,聚类是把属于统一类的数据点聚集在一起,归为一类,而异常点检测是把和大多数数据点相异的点挖掘出来。Su等人首先提出基于聚类的异常点检测算法,聚集的较小簇被认为是异常点,但这中方法忽略了小聚集簇和大聚集簇之间的距离,当一个小聚集簇和一个大聚集簇非常接近的时候,小聚集簇中的这些点更可能是大聚集簇的边界点而不是异常点。模糊k均值聚类算法(FCM)常用于异常点检测,该算法动态地分配权重给每一个数据点,权重表示该数据点和数据集中心之间的距离,通过各点的权重来判断异常点。此类算法没有先验知识指导如何确定聚类中心,只能是随机选取,优化搜索空间较大,算法的复杂度较大。Hongyi Zhang等引为了提高模糊核聚类算法的运行效率,提出了新的模糊核聚类算法,该算法用先验知识对参数初始化。取代了用聚类中心初始化,改进了聚类的目标函数,降低了算法的时间复杂度,但该算法没有提到如何选取核函数,对于算法模糊性的控制不好撑握。2基于属性特征在异常点检测中的研究传统算法大都是通过数据在空间地特性来判断检测异常点。本文的方向是从特征出发研究。传统算法从整个数据集合在空间中分布地特性出发研究,比如距离的从整个数据集空间距离进行研究,同样密度的按数据集空间密度研究,聚类也是按数据集空间特性。而本文直接从已知部分数据维度的特征着手,即是直接从每一组数据的特征来研究。对于单属性特征的情况,根据数据重要性调整特征(即维度)权值,并根据数据重要性调整。假设数据特征表示在每个属性上面,独立没有组合属性表现特征地情况下,每一组数据属性对应权值数据乘积和,表示这个数据在这组数据中全局中所占的重要性。例如检测是否是糖尿病人的数据库,三十岁以下这个年龄维度上病人较少,然而五十岁后这个维度病人比例就多了。映射到维度为三十岁以下这个维度地病人比较少,映射到维度为十岁以上较多。这样我们可以添加一个权值与年龄这一项数据乘积,这个乘积必须使权值与当前数据乘积出来的数据成正比,表示年龄增长能够体现在这组数据中的重要性。以便全局统筹决策较容易。设X为一组数据集合,可使趋向某个数值,表示这组数据某个总体特征。异常或者非异常,可以通过趋向某个数值表示特征异常,另一个方向数值表示非异常。有时候数据组合的重要性是体现在几个数据地组合里面,既可能体现在几个属性上面,比如说一组数组(A,B,C),可能AB组合特征不显示异常,然而ABC组合就显示异常,这些组合是不定地。所有在属性权值之上需要一组对属性不同组合特征的权值调整。图2.1 样例图示如图2.1,某个异常点可能异常特征是属性1,可能是属性1、属性2地组合,对于同个数据库不同点具有组合不确定性。由于特征地不可确定性,数值不确定,组合不确定。我们可以采用神经网络自学习调整权值。同时根据已知数据训练修改这些权值,使其具有识别某种组合特征的能力。使其自学习特征,自动控制调整权值及权值组合。人工神经网络作为一种新型信息处理系统,在信息处理方面,具有如下显著的特点:()输入-输出映射能力。人工神经网络具有自学习能力,通过学习,能够根据网络期望输出和网络实际输出之差来调整神经元间连接权值和阈值,直至使实际输出与期望输出之间的误差减小到满意的程度,这样就实现了输入到输出的映射。人工神经网络的输入-输出映射能力对于预测有特别重要的意义。(2)非线性特性。人工神经网络具有很强的非线性,这种非线性分散在每个神经元,通过传递函数实现。利用神经网络的非线性特性,可解决药学研究及实验数据处理过程中大量的非线性问题。(3)高度并行性。人工神经网络是由许多相同的简单处理单元并联组合而成,具有高度并行性特性,使其对特定任务的计算变得很快,对信息的处理能力与效果惊人,因此提供了一种解决高层复杂问题的能力和方法。(4)良好的容错性与联想记忆功能。人工神经网络通过自身的网络结构能够实现对信息的记忆,而所记忆的信息是存储在神经元之间的权值中。从单个权值中看不出所存储的信息内容,因而是分布式的存储方式,这使得网络具有良好的容错性,既能进行模式信息处理工作,又能进行模式识别工作。因为这些特点,神经网络广泛应用在聚类分析、模式识别、信号处理、系统辨识、优化计算、预测控制等领域。根据神经网络记忆分类地特性,本文设想通过这些特性学习出能够辨别异常点非异常点数据的神经网络,主要研究其可行性。3 BP神经网络介绍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可微阈值单元fX0 = 1WnW2W1XnX2X1W0 = -图 4.1可微阈值单元如图 4.1 可微阈值单元,图中为sigmoid单元,与感知器相似,sigmoid单元先计算它的线性组合,然后应用一个阈值到此结果。然而,对sigmoid单元,阈值输出是输入的连续函数。更精确地讲,sigmoid单元这样计算输出。 (4.1)其中: (4.2)经常被称为sigmoid函数或者也可以称为logistic函数。注意它的输出范围为0到1,随输入单调递增。因为这个函数把非常大的书值域映射到一个小范围的输出。也叫挤压函数。本算法就是想把所有整数据特征映射到一个小范围来处理判断。4.2单个BP网络结构设计采用4.1为神经感知器,隐层感知器根据实际数据库的属性确定,一般少于等于属性个数,输出层一个输出感知器。输入隐层输出层图 4.2 BP结构输入层为一组数据,全连接到隐层,隐层计算输出受挤压函数处理后的数值,输出层的输入为隐层输出。最后输出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研究使用的数据库介绍在尝试各种算法方案地研究中,使用的数据库名称:The Insurance Company Benchmark (COIL 2000).关于保险的数据,其中包括:TICDATA2000.txt,训练数据,5822组数据,每组86个属性,第86个为是否异常的标志变量,总地为两类数据;TICEVAL2000,测试数据,4000组,每组为85个特征属性;TICTGTS2000.txt,与ticeval2000对应组地结果。5.2训练方案一实验:把bp神经网络相似性代替距离算法相似度量起初思路是采用两两相似性地训练,然后得出一个整体数据库属性特征的神经网络。采用表示X与Y两者相似性差异。在神经网络则表示为两者整体特征差异大小。假设这样能够成功,则以后只要判断测试数据与整体已知数据库地整体差异大小,就可以判断异常与否。神网络结构大概如下:XY两两做差绝对值.输入层隐层输出层注:每个方向箭头抽象全连接图 5.1 方案一图隐层采用85个可微阈值单元,输出采用一个,网络全连接。每个单元为86个权重,初始化权值按4.2给出的方法。具体方式,对已知数据集做两两训练,比如数据X和Y,做差fabsf(Xi - Yi),然后输入一个BP神经网络,已知数据库中第86个属性,(X 86,Y86)对应为(0,0)则教师信号为1,(1,1)则教师信号为1,(0,1)则为0,部分顺序。实验训练数据库100与4000组数据做两两训练还有4000组与4000组数据训练。经观察验证,测试数据与已知数据地相似性与否没法与测试计算结果数据存在必然地比例关系。输出结果的所有数据,在0到1区间之间,不管相似不相似都集中分布在靠近0,没有区分度,不能明显表示相似与否地概念。然后又对测试数据与训练数据库,进行相似性求和,对比测试数据中异常点与非异常点与训练数据库地相似性和,依然没有区分度。经多次尝试,降低训练次数精度,本实验方案依然失败。经过大量实验,失败原因:第一,bp处理输出区分度不够,难以有判断方案。第二,训练方案地问题,数据集合里面,缺乏异常点地训练,bp权值能增长方向把小规模局部数据地特征给掩盖掉了,难以输出好地数据来区分。第三,数据特征不显著。第四,训练顺序导致。解决方法:第一种改变训练方案,改变判断方案;第二种改变神经网络结构,以便输出数据区分度更高,便于区别异常非异常。5.3训练方案二实验:用单个神经网络对训练数据库整体特性进行学习实验设计思路:为避免上述问题,改变训练顺序和训练方法,单组数据输入单个bp神经网络。为尽量得出可区分地数据,强化局部异常点特性。实验方案:对神经网络BP1,先使用非异常点经行训练,教师信号为0。然后再对异常点进行训练,教师信号为1。(1) 对所有非异常点数据,按组分别对BP1进行训练,教师信号都为1,(ticdata2000.txt数据库里面大部分为正常数据)保存BP1权值;(2)加载BP1数据到BP2, 针对数据库每个异常点,教师信号统一修改为0.1至0.7之间地任何一个数值,正向(数据库地方向顺序)训练一次,再逆向训练一次。训练完后,保存训练权值。实验观察:测试数据库独个输进BP1计算。整个数据库的所有计算结果,不管异常点非异常点的计算结果,都在0到1这个区间内呈现正态分布。数据主要叠加在两个教师信号数值之间,难以区分。实验结果失败。数据难以区分。根据实际数据,越逼近1地越小于第二次训练地教师信号地,都为异常点。比如本次第一次训练教师信号1,第二次异常点信号0.7,结果异常点主要集中在小于0.7和大于0.8之间,其中小于0.5和大于0.9异常点占地比率最大。正态分布地两边。第二次训练把非异常数据都集中在两次教师信号中间。数据都呈现正态分布,不好处理,特别是两个教师信号数值中间区间异常点与非异常点占自己比例都是很大,难以区分。解决方案,找一种训练方法让异常非异常点往不同方向逼近,并使其不互相影响。5.4训练方案三实验:多神经网络各种形式训练及其决策5.4.1实验设计思路用一个神经网络表示异常点地特征,教师信号1;用另一个异常点表示非异常点地特征,教师信号0.为了有一个好地区分度。同时测试数据可以通过进行不同神经网络计算两次,以便得结果进行具体判断结果。算法结构图如图5.2.BP1隐层.X1X2Xn.异常与否BP2隐层 图 5.2 训练方案图5.4.2实验方案及步骤 训练方案,把训练集合,分成两个集合,一个为正常数据集合,一个异常。每个训练次数少于40次(根据实际增长速度,减少控制次数),以便使数据有一定地区分度。训练强度不要太大,以便避免无法发现局部异常特征地数据。训练准备:训练采用ticdata2000.txt地前4000组数据,前85个属性为训练输入,第86个为训练用教师信号。观察测试采用所有ticeval2000.txt作为输入,tictgts2000.txt为测试数据实际结果,已知正常数据3762,异常238.,通过这个可以辅助分析。流程:(1)第一组数据单个输入BP1训练,保存相应BP1权值,教师信号0.0,ticdata2000正常数据训练;(2)第二组数据单个输入BP2训练,保存BP2权值,教师信号1.0,ticdata2000异常数据训练;测试方法:通过测试地两个数据库,输到训练后地两个神经网络,同时借助已知数据捕获有用数据进行分析。观察测试数据库计算分布结果分布情况,并统计分布情况(表5.1. 表5.2.表5.3表5.4)。表 5.1BP1正常测试数据地分布输出统计(tictgts2000中为0) (单位:个数)输出范围0.0-0.10.1-0.20.2-0.30.3-0.40.4-0.50.5-0.60.6-0.70.7-0.80.8-0.90.9-1.0小于0.2测试数据库正常数据个数376200000000037623762表 5.2BP1异常测试数据地分布统计输出(tictgts2000中为1) (单位:个数)输出范围0.0-0.10.1-0.20.2-0.30.3-0.40.4-0.50.5-0.60.6-0.70.7-0.80.8-0.90.9-1.0大于0.2测试数据库异常数据个数2380000000000238 5.3 BP2正常测试数据地输出统计(tictgts2000中为0) (单位:个数)输出范围0.0-0.10.1-0.20.2-0.30.3-0.40.4-0.50.5-0.60.6-0.70.7-0.80.8-0.90.9-1.0大于0.2地数据测试异常点数据数量个数0000004726 201238238表 5.4BP2异常测试数据地输出统计(tictgts2000中为1) (单位:个数)输出范围0.0-0.10.1-0.20.2-0.30.3-0.40.4-0.50.5-0.60.6-0.70.7-0.80.8-0.90.9-1.0小0.2地数据数测试数据库正常数据数量个数0001036541635122974037625.4.3实验分析(单位:纵轴个数,横轴顺序表示每隔0.1地区间)注:横轴表示0到1区间,比如1表示0到0.1计算结果分布,纵轴表示个数;系列1表示异常点计算结果,系列2表示非异常点计算结果图5.3使用已训练的BP1计算结果分布(单位:纵轴个数,横轴顺序表示每隔0.1地区间)注:横轴表示0到1区间,比如1表示0到0.1计算结果分布,纵轴表示个数;系列2表示异常点计算结果,系列1表示非异常点计算结果图5.4使用已训练的BP2计算结果分布已知BP1保存的是正常数据地特性,越逼近0越是属于正常数据特性;BP2保存的是异常数据地特性。表5.1BP1计算,正异常数据地实际输出,集中在0-0.1之中。无大于0.1地任何数据。刚好所有正常数据都在0.1之下。表5.2BP1计算,异常数据地实际输出集中在0-0.1,证明异常数据特性被正常数据所包含。表5.3BP2计算,异常点数据集中在0.6-1.0之间,刚好是已知异常点个数。表5.4BP2计算,正常数据集中在1.4-1.0之间,BP2为异常点特性,证明正常数据有很大一部分特征与异常数据特征有交集。综合上面各个表和图5.3和图5.4分析:从上表可以推出,对于未知检测数据输入,呈现无法区分地现象。图5.3图5.4见数据呈现叠加分布,即分布一样,无法区分异常与异常与否。5.4.4实验失败原因分析(1)可能是数据特征叠加问题,异常与分异常具有很强地交叉特征。单位:横轴属性顺序,纵轴属性数值。注:训练数据库中的,每个点代表一个属性值,横轴代表属性顺序,纵轴代表属性值.图 5.5组正常数据单位:横轴属性顺序,纵轴属性数值。注:训练数据库中的,每个点代表一个属性值,横轴代表属性顺序,纵轴代表属性值.图5.6一组异常数据如图 5.5图5.6为两组库中地数据,大多数属性属于一个范围空间,这种情况在BP属于相似性很大地情况,很难区分开来。纵轴10以下比较集中,相似特征太多。(2)BP结构过拟化。解决设想,减少隐层个数,生成随机,空间具有两类特征地数据。5.5BP调参实验对上面三个实验地隐层进行调整,主要分别取5个、15个、25个隐层单元进行训练测试。5.5.1对实验一调整隐层实验实验方式主要通过对训练数据库地训练,然后采用测试数据库进行测试统计,实验一方案采用组测试数据与原训练数据库4000组两两计算,然后求和,结果为与元数据库整体相异地程度。根据数据分布,和原来测试结果进行对照分析。一下摘取部分信息。5、15、25个隐层结点训练后测试结果与已知结果对照表:表5.5 5个隐层测试结果前11组 (单位:相似度)序号123456789101112异常与否010000000001计算结果分布3914.0533414.243429.3043415.5923973.0733954.1393907.5633410.4693645.3753410.4663735.5473549.66表5.6 15个隐层测试结果前11组 (单位:相似度)序号123456789101112异常与否010000000001计算结果分布507.3817444.8667719.5331631.563700.27261210.217759.2085776.8747598.13741108.0071171.494671.9588表5.7 15个隐层测试结果前12组 (单位:相似度)序号123456789101112异常与否010000000001计算结果分布4252.0734411.9784254.2764416.7094603.9454694.2654606.7974393.0954260.6114270.2464454.9324596.794通过表5.5 表5.6 表5.7 表计算结果分析,没有出现较好区分度,无法做未知数据异常与否地判断。同时也可看到与上面实验一样结果,证明不是算法问题,而是数据特征不好区分。5.5.2对实验二调整隐层实验实验方式,调整隐层神经单元个数5、15、25分别做一次,每次训练完的权值去计算测试数据库,然后通过已知结果,统计异常点与非异常在0到1之间的分布情况,看是否有区分度较高地方案。实验计算结果:表5.8 5个隐层实验结果 单位:个数分区0.0-0.10.1-0.20.2-0.30.3-0.40.4-0.50.5-0.60.6-0.70.7-0.80.8-0.90.9-1.0正常点分布62554610588400000异常点分布01472367100000(单位:纵轴个数,横轴顺序表示每隔0.1地区间)注:对照表5.8,横轴表示0到1区间,比如1表示0到0.1计算结果分布,纵轴表示个数;系列1表示非异常点计算结果,系列2表示异常点计算结果图5.7 5个隐层实验结果表5.9 15个隐层实验结果 单位:个数分区0.0-0.10.1-0.20.2-0.30.3-0.40.4-0.50.5-0.60.6-0.70.7-0.80.8-0.90.9-1.0正常点计算分布004555762510201086409200异常点分布0022236677041005.10 25个隐层实验结果 单位:个数分区0.0-0.10.1-0.20.2-0.30.3-0.40.4-0.50.5-0.60.6-0.70.7-0.80.8-0.90.9-1.0正常点分布1146

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论