1 / 15
文档名称:

离群点检测(基于距离)实验报告.doc

格式:doc   大小:285KB   页数:15页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

离群点检测(基于距离)实验报告.doc

上传人:pppccc8 2019/2/12 文件大小:285 KB

下载得到文件列表

离群点检测(基于距离)实验报告.doc

相关文档

文档介绍

文档介绍::..离群点检测(基于距离)题目学生姓名学生学号专业班级指导教师2015—1—17实验四离群点检测(基于距离)此实验是在实验三的基础上,修改完成。实验算法与上次相同,但增加了离群点检测。离群点检测方法为:在聚类完成之后,计算簇中的点到各自簇心的距离。,则认为该点为离群点,。一、 ,了解离群点检测的一般方法;;、解决问题的思维,提高动手实践的能力。二、 背景知识异常对象被称作离群点。异常检测也称偏差检测和例外挖掘。常见的异常成因:数据来源于不同的类(异常对象来自于一个与大多数数据对象源(类)不同的源(类)的思想),自然变异,以及数据测量或收集误差。异常检测的方法:(1) 基于模型的技术:首先建立一个数据模型,异常是那些同模型不能完美拟合的对象;如果模型是簇的集合,则异常是不显著属于任何簇的对象;在使用冋归模型吋,异常是相对远离预测值的对象;(2) 基于邻近度的技术:通常可以在对象之间定义邻近性度量,异常对象是那些远离其他对象的对象;(3) 基于密度的技术:仅当一个点的局部密度显著低于它的大部分近邻时才将其分类为离群点。三、实验要求改写一种简单的半监督方法,用于离群点检测。使用一种你熟悉的程序设计语言,如C++或Java,实现该方法,并在两种不同的数据集上进行讨论(1)只有一些被标记的正常对象;(2)只有一些被标记的离群点实例。四、实验环境Win7旗舰版+VisualStudio2012语言:C++五、算法描述K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越人。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终0标。1、算法思路K-means算法先随机选取K个对象作为初始的聚类中心。然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。一旦全部对象都被分配了,每个聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是以下任何一个:1) 没有(或最小数0)对象被重新分配给不同的聚类。2) 没有(或最小数目)聚类中心再发生变化。3) 误差平方和局部最小。2、;,假如点Pi离簇心Si最近,那么Pi属于Si对应的簇;,更新簇心,使得簇心位于簇的中心;,直到簇心不再移动(或其他条件,如前后两次距离和不超过特定值),继续下一步;,即阀值();,找出大于阀值的点,即离群点。:据结构Node25Ae摊•:double•pos^:doublee方5去0NodeOVKMean *SSs摊••:int•• :vector<Node>*count:int••cutData:vector<Node>wdata:vector<Node>mean-nodes:vectorsNode>radio:double’IU猫O*KMeanO公•ClusterProcessO:void®cutO:voidgetDistance():doublegetIndexOfCluster(vector<Node>):intgetMeans(intclusterjndex):NodegetSumOfDi$t(vector<Node>*clusters,vector<Node>)::void0KMean(<Node»)0showCutResultQ:voidNode类,定义了二维空间中的一个点,pos_x,pos_y三成员变量分别为x,y,轴的值,且为double型。Node类作为基木数据结构,使用在KMean类里。KMean类封装了一系列成员变量和函数,实现了KMean算法。具体成员变量和函数详细说明如下:classKMean{private:intclustcr_num;//生成的簇的数量。vector<\ode>mean_nocles;//均值点vector<\ode>data;//所科的数扼点vect