温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
机器
学习
白洋淀
生态
数据
异常
检测
吴琼
本期推荐本栏目责任编辑:唐一东Computer Knowledge and Technology电脑知识与技术第18卷第35期(2022年12月)第18卷第35期(2022年12月)基于机器学习的白洋淀生态数据的异常检测吴琼,李永飞(华北科技学院 计算机学院,河北 三河 065200)摘要:异常数据检测的问题近年来日益成为统计分析、机器学习、数据挖掘等诸多领域的研究热点之一,异常数据检测是实现数据质量提升的一个关键。异常数据检测中存在物联网数据来源不可靠、异常数据检测结果不稳定和不准确等问题,实验采用基于机器学习的异常数据检测算法,通过python数据分析,采用真实的数据即白洋淀生态物联网数据进行实验验证,对比几种基于机器学习的异常检测算法的异常检测效果,采用真实数据具有一定的应用意义。关键词:真实数据;异常数据检测;聚类分析;K-means算法;DBSCAN算法中图分类号:TP181文献标识码:A文章编号:1009-3044(2022)35-0007-03开放科学(资源服务)标识码(OSID):1 概述白洋淀是华北地区最大的湿地生态系统被称为“华北之肾”,多年来由于上游生活污水和工业污水的排放、机械船只增多等因素,白洋淀水质不断恶化。自2017年4月1日起,白洋淀生态环境治理和保护攻坚战打响。修复白洋淀生态的关键在于水域环境,改善水域内水体环境才能保障和恢复生物的多样性。白洋淀的生态数据通过物联网传感器实时采集,为了保证白洋淀生态物联网数据的真实性和可信性,需要对采集到的数据做出预处理。异常数据影响数据质量,异常数据检测能实现数据质量的提升与潜在信息的挖掘。在当前生态环境监测中应用物联网技术,建立自动监测站实现全天实时监测。物联网技术可以对数据信息精准识别和快速传递,让生态监测的整个过程变得系统化和透明化。异常数据检测方法是通过统计分析、数据挖掘等技术来识别数据中的“异常点”,是指从数据中找出明显与其他数据不同的数据。离群点检测的概念最早由Hawkins在1980年提出,异常是指非随机产生的不同于数据集其他数据的数据1。异常数据可能是噪声,也可能是有价值的数据。异常数据检测是数据挖掘应用中的一项关键技术,是指从数据集中找出与预期行为不符的模式。异常数据检测对保障数据的可信性有重要作用,异常数据通常占比可能较小但可能蕴含丰富的内容。因此异常数据检测方法具有重要的研究意义和实践应用,并且其对保障检测数据可行性方面也有积极的作用。异常数据检测作为数据分析的任务模块之一,数据分析工作进行异常数据检测的价值在于及时发现异常,进而准确发出风险预警信息或以此科学有力的信息辅助分析决策者如何做好系统下一步风险决策。比如消除安全隐患、扩展国内市场份额、提高公司经济效益、生态环境监测等。异常数据分析中涵盖大量有用数据信息,是当今数据科学前沿中一个广泛研究的问题。异常数据的检测已逐渐成为数据挖掘等领域的热点研究之一2。根据异常检测面向的数据类型、研究领域等的不同,各种各样的异常数据检测方法不断被提出和改进。关于异常检测领域的一个较为深入详细的研究工作是 C.C.Aggarwal 等人做出来的。由于不同领域数据的差异性较大,根据其正、异常状态情况。异常检测方法为入侵攻击检测、欺诈交易检测、故障检测3、图像处理、安全与监控、文本数据异常数据检测、传感器网络异常检测、应急管理、医疗公共卫生、网络信息安全等领域的应用提供重要的参考依据4。异常数据检测方法一般分为基于统计学的、基于聚类的、基于距离的、基于密度的、基于分类的、基于预测的等等。异常数据检测的应用最早出现在统计学领域。基于统计学的异常检测方法在处理异常数据时,一般会构建一个概率分布模型,并会计算数据对象符合该统计模型的概率,把概率较低的对象视为异常。基于统计学的检测方法有无参数的代表直方图和有参数的代表高斯模型等,该模型方法优点是基于数据分布快速且精准、鲁棒性比较好,不足是需要预先假设数据的分布情况,而且通常不适用于高维的收稿日期:2022-08-20基金项目:河北省重点研发计划项目(No.19270318D);中央高校基本科研业务费资助项目(No.3142017067)作者简介:吴琼(1996),女,陕西宝鸡人,硕士,研究方向为数据分析、应急管理信息化与智能化;通信作者:李永飞(1978),男,河北邯郸人,副教授,硕士,研究方向为数据挖掘、数据安全等。E-mail:http:/Tel:+86-551-65690963 65690964ISSN 1009-3044Computer Knowledge and Technology电脑知识与技术Vol.18,No.35,December20227DOI:10.14004/ki.ckt.2022.2131本栏目责任编辑:唐一东本期推荐Computer Knowledge and Technology电脑知识与技术第18卷第35期(2022年12月)第18卷第35期(2022年12月)数据。随着计算机科学及相关技术的更新换代,计算机方向的专家和学者利用在数据管理方面的经验可以对多种类型的数据进行异常的分析,之后基于机器学习的异常数据检测方法逐渐成为一种趋势。基于机器学习的方法按照是否需要进行人工标记则可以分为无监督模式、半监督模式和有监督模式。在有监督的模式下需要有标签的数据作为支撑,而样本标签的获取具有很大的代价。在无监督的模式不需要依赖任何标签,也不完全依赖完善的先验知识,可以通过聚类分析等方法获取边界条件以检测出异常值,因此无监督模式在异常数据检测领域里应用会更加广泛。目前基于聚类分析的异常检测方法是异常检测技术中最常用的一类方法5。聚类算法的分析是数据挖掘和机器学习领域的重要研究课题之一,它是无监督模式识别,可以根据数据的相似度把数据划分为多个类或类簇6。在计算机学科的领域中,聚类算法是数据挖掘和人工智能应用中不能或缺的研究基础,它起着不可或缺的作用。并且异常数据的检测是聚类分析方法下的重要组成部分,用于检测数据样本中所有的异常点。异常点在聚类分析中表现为单个聚类簇,可以明显区分出正常样本和异常样本。比如经典的DBSCAN算法可以在聚类的同时,也可以识别出异常数据。基于专用的异常数据检测算法,这些算法不像基于聚类算法的异常点检测只是一个附加项,它们的目的是专门用来检测异常数据的,主要的算法代表是One Class SVM算法和Isolation Forest算法。基于近邻的方法包括基于距离和基于密度的方法,其代表算法有LOF算法和COF算法。基于最近邻的方法7利用计算各数据实例之间的距离进而实现对该数据实例的分析,当结果中某个实例远离它的邻居时,则该实例被视为异常数据。这种类型的方法不依赖数据的任何先验知识,但缺点是所设定的输入参数对检测结果则存在很大的影响,而且计算各数据实例之间距离的成本会比较大。基于密度的检测方法是通过比较每个点和其邻域点的密度来判断该点是否为异常点。当一个点与包围其邻居的密度不同时,则为异常点。2 基于机器学习的异常检测算法基于聚类的方法其代表算法有K-means算法和DBSCAN算法,采用距离、密度等信息,将相似度高的数据聚为一个簇,如果最终数据不属于任何一个簇的离群点,则视为异常8。K-means算法实现比较简单、聚类效果也不错,不需要数据标签和先验知识。基于密度的方法其常用的算法主要有LOF算法和COF算法,可以依据异常的程度给一个定量的值,具有较好的鲁棒性。还有其他基于专用的异常检测方法主要有One Class SVM算法,它是无监督不需要标记训练集和输出标签,适合用于解决极度不平衡的数据;还有Isolation Forest算法具有线性时间复杂度,处理异常数据快速且准确,并且可以满足实时性的要求。表1介绍了基于机器学习的异常数据检测算法。表1 基于机器学习的异常数据检测算法。方法分类基于聚类的方法基于密度的方法其他专用异常检测方法算法名称K-meansDBSCANLOFCOFOneClassSVMIsolationForest算法介绍原理简单易懂、计算简单,该算法基于样本间相似度原则,采用两样本间的欧式距离远近作为衡量标准进行数据集划分。由密度可达关系导出的最大密度相连的样本集合为最终聚类的一个类别。首先对于每一个数据点,找出它的K个近邻,然后计算LOF得分,得分越高越可能是异常点。LOF中计算距离是用的欧式距离。COF的局部密度是根据最短路径方法求出的,找出分布不均匀的数据中局部异常的数据可以给出数据的异常的得分,得分越高越可能异常。训练数据只有一种分类,即正常数据。通过这些正常数据的特征去学习一个决策边界,通过这个边界去判断新来的数据是否与训练数据类似,超出边界即为异常。它是通过样本的疏密程度来判断样本是否孤立。3 算法实现及结果分析3.1数据来源为了验证基于机器学习的异常数据检测算法的有效性,采用真实的数据即白洋淀物联网生态监测数据。该数据集包括温度、COD、叶绿素等元素,本实验数据分析是采用静态数据即走航数据,该数据用excel表格存储。以数据本身特征为研究对象,研究物联网数据的基本特征即可变性、真实性、复杂性等。3.2数据预处理异常数据检测可以保证物联网数据的可信性和完整性。异常数据检测算法是建立在数据特征上的,因此研究数据特征具有重要作用。首先为了避免数据受到不必要的干扰,要正确的、真实的、完全的代表实际数据发生的方式收集、记录、报告和保存数据。其次由于采集到的数据本身存在噪声、不一致、不可靠等问题,因此首先对数据进行预处理,然后进行下一步的数据分析处理,最后再选择合适的异常数据检测算法。实验中对原始数据进行预处理,然后对5200多条数据样本做数据分析,采用基于机器学习的异常数据检测算法对白洋淀生态数据集进行多次异常数据检测9。3.3异常数据检测流程异常数据检测的基本流程是数据采集、依据物联网数据特征进行数据预处理、再进行异常数据检测、最后进行异常数据判断。异常数据检测流程图如图1所示。8本期推荐本栏目责任编辑:唐一东Computer Knowledge and Technology电脑知识与技术第18卷第35期(2022年12月)第18卷第35期(2022年12月)图1 异常数据检测流程图3.4实验环境实验硬件环境:CPU是Intel(R)Core(TM)i5-6200U2.30GHz,内存为8GB,操作系统是Windows10。实验采用真实数据即白洋淀生态物联网数据集。实验软件环境:编程采用Python语言,仿真软件环境为Pycharm,采用Sklearn机器学习框架下实现异常数据检测算法。3.5实验过程及结果分析实验采用数据预处理方法得到的5200多条数据样本。选取白洋淀物联网生态数据中的两列即“温度”和“COD”两个字段,利用基于聚类的、基于密度和基于其他专用异常数据检测算法共三类算法做异常数据检测工作。数据可视化展示采用PCA降维方法,通过PCA降维后,用二维坐标展示异常数据结果分布图。采用DBSCAN算法进行异常数据算法使用数据中“温度”和“COD”两个字段,每个字段选取500条数据,结果异常数据量为21个,DBSCAN算法异常数据结果分布如图2所示。图2 DBSCAN算法异常数据结果分布图采用K-means算法进行异常数据算法是使用数据中“温度”和“COD”两个字段,每个字段选取500条数据,结果异常数据量为101个,K-means算法异常数据结果分布如图3所示。图3 K-means算法异常数据结果分布图通过实验同样的数据集采用的算法不同异常数据检测的结果也不同,同一种算法选取数据量不同则异常数据量占比也不同,具体算法实现结果表2所示。表2 异常数据检测算法结果表算法DBSCAN算法LOF算法One Class SVM算法Isolation Forest算法AP-MMD-kmeans算法数据量(条)505005206505005206505005206505005206505005206异常数据(个数)921785505217485325505213104704异常比