一种基于KNN半监督学习模型的网络流量异常检测方法与系统与流程

文档序号:18632352发布日期:2019-09-11 21:46阅读:450来源:国知局
导航: X技术> 最新专利> 电子通信装置的制造及其应用技术
一种基于KNN半监督学习模型的网络流量异常检测方法与系统与流程

本发明涉及入侵检测和机器学习领域,特别是一种基于knn半监督学习模型的网络流量异常检测方法与系统。



背景技术:

入侵检测方法分为误用检测和异常检测。误用检测是基于已知系统漏洞和攻击模式,通过事件序列匹配发现入侵行为的一种检测方法;异常检测假定入侵行为与正常行为存在明显的偏差,利用机器学习方法实现网络流量分析与分类,以此发现异常。

机器学习分为监督学习、无监督学习和半监督学习。监督学习具有较高的检测精度,在学术界应用广泛。在实际生产环境中,攻击手段层出不穷,使得数据样本不断变化,因此需要对检测模型进行实时更新。此外,监督学习在训练过程需要大量的标记数据集,而在生产环境下,数据的正确标记需要专业人士花费大量时间进行判断,且准确性难以保证,因此可行性较差。无监督学习方法,在训练需要较大的计算量,并且网络流量数据的不断增加及其维度灾难问题,导致训练和检测效率低、易陷入局部最优和检测准确率较低等问题。

在使用分类模型进行网络流量数据进行分类过程中会遇到以下问题:

(1)在流量特征提取过程中,会遇到以下情况:

(1.1)为了降低维度提高检测效率而牺牲的检测精度的问题;

(1.2)由于某些单个特征无法正确区分正常和异常流量数据而在特征选择过程中被约减掉,这些单个特征组合起来可以区分正常和异常流量数据,而导致检测精度下降问题;

(2)使用分类模型过程中,可能会因为分类模型无法保证网络流量分类结果很精确,分类结果不能完全符合实际情况。



技术实现要素:

有鉴于此,本发明的目的是提出一种基于knn半监督学习模型的网络流量异常检测方法与系统,基于半监督学习模型,在分类检测过程中不断优化和更新分类模型,能够在生产环境下实现快速、高效的网络异常检测。

本发明采用以下方案实现:一种基于knn半监督学习模型的网络流量异常检测方法,首先使用初始有标记数据作为训练样本,利用监督学习训练初始分类模型;然后,利用初始分类模型对网络流量无标记数据进行分类,得到初始分类数据;再利用半监督学习模型对初始分类数据进行重新标记和修正;最后,利用新的分类数据重新训练分类模型,并更新初始分类模型,如此往复不断更新分类模型,从而提高检测效果。具体包括以下步骤:

步骤s1:对网络流量数据进行采集和预处理;

步骤s2:使用初始有标记的数据集d1作为训练样本,选择监督学习分类算法训练得到分类模型m1;

步骤s3:将步骤s1预处理后的网络流量数据作为分类样本,利用分类模型m1对分类样本进行分类,得到初始分类数据集d2;

步骤s4:利用半监督学习方法对数据集d2进行重新标记,得到新的分类数据集d3;

步骤s5:结合数据集d2和d3,利用步骤s2中分类模型构建方法,训练新的模型并进行分类模型更新。

进一步地,步骤s1具体为:对网络流量数据进行采集、粒度细化与特征提取,并进行包括特征数据去冗余、归一化处理和特征重要性计算在内的预处理。

进一步地,步骤s1中,所述归一化处理具体为:对网络流量数据进行归一化处理,将同一流量特征的数据映射到同一尺度,提高分类精度,使用最值归一化,把所有数据映射到0-1之间:

式中,x表示样本属性值,xmin表示该属性的最小值,xmax表示该属性的最大值,xscale表示归一化处理的数据。

进一步地,步骤s1中,所述特征重要性计算具体为:利用gbdt模型,采用基尼系数,计算网络流量数据每个特征的重要性。

进一步地,步骤s4中,利用半监督学习方法对数据集d2进行重新标记具体包括以下步骤:

步骤s41:按比例对数据集d2进行人工标记,作为已标记数据并增量更新到数据集d1,再利用改进knn半监督学习方法对数据集d2重新标记,若人工标记数据量达到规定阈值,则返回步骤s3获取新的数据集d2;

步骤s42:基于欧式距离计算样本之间的加权欧氏距离,其距离计算公式如下:

式中,x、y分别为两个样本,n为特征维数,vimi是样本特征i的重要性,xi和yi代表x、y两个样本的特征i的特征值,dis(x,y)表示x、y之间的加权欧式距离;

步骤s43:基于knn分类思想实现半监督学习分类。

进一步地,步骤s43具体包括以下步骤:

步骤s431:进行样本要类的接近度计算,计算公式如下:

式中,x为预分类的样本,表示类别,c表示x的k个近邻中属于类别的样本集合,表示样本x与类别的接近度;

步骤s432:进行self-training分类,以数据集d2中已人工标记数据集作为已分类样本,将未人工标记数据集均分成若干个子集,以子集为单位进行分类,计算一个子集中每个样本与每个类接近度,并将每个样本划分到与其接近度最高的类,当一个子集样本分类完成后,将该子集归为已分类样本,继续计算另一个子集,直到所有数据都完成分类;

步骤s433:采用十折交叉验证法确定步骤s431中的k值,将初始分类数据d2均分成10组,其中每个子集数据分别做一次验证集,其余的9组子集数据作为训练集,训练得到10个模型,用这10个模型最终的验证集的分类准确率的平均数作为分类器的性能指标;对每一个k,使用十折交叉验证计算每个k对应的分类准确率,取分类准确率最高的模型的k值作为最终的k值。

进一步地,步骤s5具体包括以下步骤:

步骤s51:构建新的标记数据集,将初始分类数据集d2和新的分类数据集d3进行数据分类标记对比,对不一致的标记进行修正,将修正后的数据增量更新到数据集d1中;

步骤s52:利用步骤s2中分类模型的构建方法,利用步骤s51更新后的数据集d1进行训练,得到分类模型m2;

步骤s53:对比分类模型m1与分类模型m2的分类精度,若m2的分类精度不低于m1,则用m2替代m1,否则返回步骤s4,增加人工标记数据的比例。

本发明还提供了一种基于上文所述的基于knn半监督学习模型的网络流量异常检测方法的系统,包括但不限于存储模块、执行模块,所述存储模块中存储有权利要求1中的方法指令,所述执行模块在运行时执行存储模块中的方法指令。

与现有技术相比,本发明有以下有益效果:本发明基于半监督学习模型,在分类检测过程中不断优化和更新分类模型,能够在生产环境下实现快速、高效的网络异常检测。

附图说明

图1为本发明实施例的原理框图。

图2为本发明实施例的网络流量数据采集和预处理流程。

图3为本发明实施例的基于监督学习数据分类流程图。

图4为本发明实施例的基于knn半监督学习数据更正流程图。

图5为本发明实施例的模型更新流程图。

具体实施方式

下面结合附图及实施例对本发明做进一步说明。

应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

如图1所示,本实施例提供了一种基于knn半监督学习模型的网络流量异常检测方法,首先使用初始有标记数据作为训练样本,利用监督学习训练初始分类模型;然后,利用初始分类模型对网络流量无标记数据进行分类,得到初始分类数据;再利用半监督学习模型对初始分类数据进行重新标记和修正;最后,利用新的分类数据重新训练分类模型,并更新初始分类模型,如此往复不断更新分类模型,从而提高检测效果。具体包括以下步骤:

步骤s1:对网络流量数据进行采集和预处理;

步骤s2:使用初始有标记的数据集d1作为训练样本,选择监督学习分类算法训练得到分类模型m1;

步骤s3:将步骤s1预处理后的网络流量数据作为分类样本,利用分类模型m1对分类样本进行分类,得到初始分类数据集d2;

步骤s4:当步骤s3所得d2中负样本数量达到指定阈值时,利用半监督学习方法对数据集d2进行重新标记,得到新的分类数据集d3,如图4所示;

步骤s5:结合数据集d2和d3,利用步骤s2中分类模型构建方法,训练新的模型并进行分类模型更新。

在本实施例中,步骤s1具体为:本实施例使用公开unsw-nb15数据集以及部分实际采集的流量混合数据,对采集的流量数据进行粒度细化与特征提取,数据预处理模块包含特征数据去冗余、归一化处理和特征重要性计算,如图2所示。

在本实施例中,步骤s1中,所述归一化处理具体为:对网络流量数据进行归一化处理,将同一流量特征的数据映射到同一尺度,提高分类精度,使用最值归一化,把所有数据映射到0-1之间:

式中,x表示样本属性值,xmin表示该属性的最小值,xmax表示该属性的最大值,xscale表示归一化处理的数据。

在本实施例中,步骤s1中,所述特征重要性计算具体为:利用gbdt模型,采用基尼系数,计算网络流量数据每个特征的重要性。其中,gini指数的计算公式为:

式中,k表示类别数目,pmk表示节点m中类别k所占的比例。直观地说,就是随便从节点m中随机抽取两个样本,其类别标记不一致的概率;特征xj在节点m的重要性,即节点m分支前后的gini指数变化量为:

式中,gil和gir分别表示分枝后两个新节点的gini指数。如果,特征xj在决策树i中出现的节点集合m,那么xj在第i颗树的重要性为:

假设共有n颗树,那么:

最后,把所有求得的重要性评分做归一化处理即可:

较佳的,在本实施例中,步骤s2利用unsw-nb15数据集d1作为训练样本,选用knn、xgboost、lightgbm三种算法进行训练,得到初始分类模型m1,如图3所示。

较佳的,在本实施例中,步骤s3将步骤s1中预处理后的网络流量数据作为分类样本,利用分类模型m1对分类样本进行分类,得到初始分类数据集d2,实验中三种算法的多分类精度分别为78.33%、85.15%、89.90%。

在本实施例中,步骤s4中,利用半监督学习方法对数据集d2进行重新标记具体包括以下步骤:

步骤s41:按比例对数据集d2进行人工标记,作为已标记数据并增量更新到数据集d1,再利用改进knn半监督学习方法对数据集d2重新标记,若人工标记数据量达到规定阈值,则返回步骤s3获取新的数据集d2;

步骤s42:基于欧式距离计算样本之间的加权欧氏距离,其距离计算公式如下:

式中,x、y分别为两个样本,n为特征维数,vimi是样本特征i的重要性,xi和yi代表x、y两个样本的特征i的特征值,dis(x,y)表示x、y之间的加权欧式距离;

步骤s43:基于knn分类思想实现半监督学习分类。

在本实施例中,步骤s43具体包括以下步骤:

步骤s431:进行样本要类的接近度计算,计算公式如下:

式中,x为预分类的样本,表示类别,c表示x的k个近邻中属于类别的样本集合,表示样本x与类别的接近度;

步骤s432:进行self-training分类,以数据集d2中已人工标记数据集作为已分类样本,将未人工标记数据集均分成若干个子集,以子集为单位进行分类,计算一个子集中每个样本与每个类接近度,并将每个样本划分到与其接近度最高的类,当一个子集样本分类完成后,将该子集归为已分类样本,继续计算另一个子集,直到所有数据都完成分类;

步骤s433:采用十折交叉验证法确定步骤s431中的k值,将初始分类数据d2均分成10组,其中每个子集数据分别做一次验证集,其余的9组子集数据作为训练集,训练得到10个模型,用这10个模型最终的验证集的分类准确率的平均数作为分类器的性能指标;对每一个k,使用十折交叉验证计算每个k对应的分类准确率,取分类准确率最高的模型的k值作为最终的k值。

在本实施例中,如图5所示,步骤s5具体包括以下步骤:

步骤s51:构建新的标记数据集,将初始分类数据集d2和新的分类数据集d3进行数据分类标记对比,对不一致的标记进行修正,将修正后的数据增量更新到数据集d1中;

步骤s52:利用步骤s2中分类模型的构建方法,利用步骤s51更新后的数据集d1进行训练,得到分类模型m2;

步骤s53:对比分类模型m1与分类模型m2的分类精度,若m2的分类精度不低于m1,则用m2替代m1,否则返回步骤s4,增加人工标记数据的比例。

本实施例还提供了一种基于上文所述的基于knn半监督学习模型的网络流量异常检测方法的系统,包括但不限于存储模块、执行模块,所述存储模块中存储有权利要求1中的方法指令,所述执行模块在运行时执行存储模块中的方法指令。

特别的,本实施例采用公开unsw-nb15数据集以及部分实际采集的流量混合数据共50000条,其中公开数据集32000条,18000为实际采集数据,攻击流量20000条包括6种攻击类别,正常流量30000条。其中,30%的公开数据集进行训练,剩余的作为测试数据,训练检测模型,平均准确率为83%。系统通过模拟攻击过程产生18000条数据,其中包括6000攻击流量,12000正常流量数据,负样本阈值设为1000条,分类模型进行6次更新后的准确率提高到89%。本发明方法支持在线网络流量数据的实时检测,并利用半监督学习方法实现分类模型不断更新,从而提高检测效果。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。

完整全部详细技术资料下载
当前第1页 1  2 
相关技术
  • 远程协助连接建立方法、装置、...
  • 一种共用接口通信重构装置及通...
  • 数据配送方法与流程
  • 用于保持活动信号发送的方法和...
  • JWT令牌的管理方法与流程
  • 数据传输方法、客户端和服务器...
  • 数据传输方法、装置、第一终端...
  • 一种工作监测方法、装置、计算...
  • 数据传输方法、装置、电子设备...
  • 全链路数据鉴权方法、装置、设...
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1

聚圣源咨询公司起的名字好瓦尔莎拉湖北省艺术学校highschoold脳d起名李昕开头电视剧青河绝恋姓王单字女孩起名大全灵字起名字好宝宝起名字人教版初中英语教材四书五经起名起名'生辰八字取名字免费起名鼠年女孩取名服装品牌名字怎么起封神电影绿色循环圈外传攻略登字辈起名放过自己宝宝起名软件排名榜鲍鱼怎么杀和清洗二孩起名台湾地震最新报道降落我心上应该的近义词个体工商户个体名称起名鞠姓女孩起名我眼中的诸葛亮适合男孩起名的字有哪些鬼谷八荒地图西游零纪元淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化