CN103618744B - 一种基于快速knn算法的入侵检测方法 - Google Patents

一种基于快速knn算法的入侵检测方法 Download PDF

Info

Publication number
CN103618744B
CN103618744B CN201310666303.2A CN201310666303A CN103618744B CN 103618744 B CN103618744 B CN 103618744B CN 201310666303 A CN201310666303 A CN 201310666303A CN 103618744 B CN103618744 B CN 103618744B
Authority
CN
China
Prior art keywords
sample
data
feature
training sample
classification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310666303.2A
Other languages
English (en)
Other versions
CN103618744A (zh
Inventor
张雪芹
曹庆
顾春华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
East China University of Science and Technology
Original Assignee
East China University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by East China University of Science and Technology filed Critical East China University of Science and Technology
Priority to CN201310666303.2A priority Critical patent/CN103618744B/zh
Publication of CN103618744A publication Critical patent/CN103618744A/zh
Application granted granted Critical
Publication of CN103618744B publication Critical patent/CN103618744B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明涉及一种基于快速KNN算法的入侵检测方法,包括以下步骤:数据预处理步骤,接收入侵检测原始数据,对原始数据进行数据预处理,包括连续数据离散化处理和字符数据数字化处理;特征约简步骤,采用基于互信息的特征约简算法对预处理后的数据进行特征约简;分类检测步骤,采用快速KNN算法对特征约简后的数据进行分类检测,并输出分类结果。与现有技术相比,本发明具有分类效率和分类精度高等优点。

Description

一种基于快速KNN算法的入侵检测方法
技术领域
本发明涉及一种网络入侵检测技术,尤其是涉及一种基于快速KNN算法的入侵检测方法。
背景技术
随着各种计算机网络攻击手段的复杂化、多元化、智能化,网络信息安全问题变的日益突出。利于网络破坏终端操作系统、非法盗取个人资料、银行账户密码、非法入侵系统数据库等行为严重妨碍了互联网的正常使用,对社会和个人造成了极大的危害。因此,构建网络信息安全系统是有效利用互联网必不可少的技术支撑。一般来说,网络信息安全系统包括防护、检测、反应、恢复四个步骤,其中的检测就是发现超出系统安全策略范围内的网络行为,即通常所说的“入侵”。如果只是单纯依赖传统的操作系统加固技术和防火墙隔离技术等静态防御,已经难以胜任网络安全的需要。网络安全技术也在与网络攻击的不断对抗中持续发展。网络安全是计算机科学的一个非常重要的组成部分,网络安全的发展对整个计算机科学的发展有着非凡的意义。
入侵检测技术作为网络安全系统的一种重要的动态防护手段,能够辨别出计算机网络的非法或恶意攻击行为,并对其作出相应的反应,作为网络安全的一项保障技术,和继防火墙之后的第二道安全闸门,入侵检测技术是互联网安全非常重要的核心技术之一,它在扩展系统管理员的安全管理能力的同时可以提高系统安全结构的完整性。入侵检测技术研究包括:网络模型的建立、网络数据的收集、入侵检测模型的建立、入侵检测产品的开发、入侵检测系统的部署、入侵检测技术的研究等。入侵检测算法是入侵检测系统中最为核心的部分,它的检测能力和效率直接决定了整个入侵检测系统的检测能力。现有的多种入侵检测算法,不管在检测能力上,还是检测效率上,都尚有不小的改进空间。积极的改善算法分类精度,降低误检率和漏检率,同时最大程度的提高算法学习速度具有极其重要的意义。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种提高分类效率和分类精度的基于快速KNN算法的入侵检测方法。
本发明的目的可以通过以下技术方案来实现:
一种基于快速KNN算法的入侵检测方法,包括以下步骤:
数据预处理步骤,接收入侵检测原始数据,对原始数据进行数据预处理,包括连续数据离散化处理和字符数据数字化处理;
特征约简步骤,采用基于互信息的特征约简算法对预处理后的数据进行特征约简;
分类检测步骤,采用快速KNN算法对特征约简后的数据进行分类检测,并输出分类结果。
所述的特征约简步骤具体包括以下子步骤:
a1)初始化:原始数据的特征集设为F(f1,f2,…,fm),m为总特征个数;数据集的类别标识设为y;设置空集S,设需要选出N个特征;
a2)选出第一个特征:
对于F中的每个特征fi,计算fi与类别标识y的互信息I(fi;y),然后选择使得I(fi;y)的值最大的fi,将fi存入集合S中,该特征即为第一个特征,同时将fi从集合F中剔除;
a3)依次选出剩下的N-1个特征:
采用“最小冗余-最大相关”标准策略选择第q个特征:
I q = arg max 1 ≤ i ≤ m { I ( f i ; y ) - 1 q - 1 Σ f i ∈ S q - 1 I ( f i ; f i ) | f i ∈ F }
式中,I(fi;y)项是“最大相关”条件,Iq表示第q个特征的互信息,Sq-1表示包含q-1已选出特征的特征子集;
a4)输出所选出的特征子集S。
所述的互信息计算方法如下:
变量X和Y的互信息定义为:
I(X;Y)=H(X)-H(X|Y)=H(Y)-H(Y|X)=H(X)+H(Y)-H(X;Y)
式中,H(·)是熵,H(X|Y)和H(Y|X)是条件熵,H(X;Y)是X和Y的联合熵,定义如下:
H(X)=-∫xpX(x)log pX(x)dx
H(Y)=-∫ypY(y)log pY(y)dy
H(X;Y)=-∫xypX,Y(x,y)log pX,Y(x,y)dxdy
这里pX,Y(x,y)是X和Y的联合概率函数,pX(x)和pY(y)是X和Y的边缘密度函数,定义如下:
pX(x)=∫ypX,Y(x,y)dy
pY(x)=∫xpX,Y(x,y)dx
则互信息计算式为:
I ( X ; Y ) = ∫ x ∫ y p X , Y ( x , y ) log p X , Y ( x , y ) p X ( x ) p Y ( x ) dxdy .
所述的分类检测步骤中,采用快速KNN算法对特征约简后的数据进行分类检测具体为:
b1)获得训练样本集,删除训练样本集中的重复数据;
b2)建立索引模型;
b3)对于当前待分类样本,判断已分类样本集中是否存在与待分类样本相同的样本,若是,则直接输出相同已分类样本的类别标识,若否,执行步骤b4);
b4)根据建立好的索引模型快速查找训练样本集中待分类样本的k个最近邻;
b5)根据快速查找到的k个最近邻,输出待分类样本的类别标识。
所述的步骤b2)中,建立索引模型具体为:
b201)随机选择一个训练样本作为基准点R;
b202)根据欧氏距离公式计算训练样本库中的每个训练样本到基准点R的距离,并按照距离的大小进行排序,得到一个有序的队列矩阵queuesort,queuesort的行数是训练样本的个数,其中每一行依次包括该样本数据的特征向量、类别标识及其到基准点R的距离;
b203)建立索引表indextable,该索引表存储有序队列queuesort中第1、1+L、1+2L、…、1+iL、…个样本在有序队列queuesort中的位置和到基准点R的距离,其中,表示向上取整;
b204)查找训练样本集中待分类样本的k个最近邻。
所述的步骤b4)中,查找训练样本集中待分类样本的k个最近邻具体为:
b401)根据欧氏距离公式计算待分类样本t和基准点R的距离dtR
b402)将drR与索引表indextable中的距离数据进行大小比对,确定dtR处于哪两个索引点之间,则从有序队列queuesort中读取这两个索引点之间的L个训练样本数据;
b403)获取L个训练样本数据中与dtR的数值最相近的训练样本q,以样本点q为中心,选择k个训练样本,为第s到第s+k-1个样本,根据欧氏距离公式计算该k个训练样本与待分类样本t的距离,并建立有序队列k_list,该有序队列中k_list的每行数据包括:对应训练样本到待分类样本t的距离和该训练样本的类别标识;
b404)在有序队列queuesort中,以选中的k个训练样本为中心,向前、向后同时进行循环搜索,寻找待分类样本t的精确的k个最近邻。
所述的步骤b5)具体为:根据k个最近邻样本中不同类别样本的数量来判定,将待分类样本类别标识判定为k个最近邻样本中数量最多的那个类别。
与现有技术相比,本发明具有以下优点:
1、本发明通过基于互信息的特征约简算法对原始数据的高维特征集进行约简,删除特征集中的冗余信息和干扰信息,提高了KNN算法的性能;
2、本发明通过删减训练样本库,减小训练样本集,在很大程度上减小了算法学习时间的消耗,加快了效率;
3、本发明通过建立索引模型和采用缓存技术,减少查找范围和磁盘的启动次数,减少查找k个最近邻的时间,从而大幅度得加快分类速度,提高了KNN算法的效率,从而缩短分类时间。
附图说明
图1为本发明的流程示意图;
图2为互信息的原理图;
图3为KDD CUP99数据集中一条网络数据的示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
如图1所示,一种基于快速KNN算法的入侵检测方法,包括以下步骤:
数据预处理步骤,接收入侵检测原始数据,对原始数据进行数据预处理,包括连续数据离散化处理和字符数据数字化处理,数据预处理的方法采用现有技术中的常用方法;
特征约简步骤,采用基于互信息的特征约简算法对预处理后的数据进行特征约简;
分类检测步骤,采用快速KNN算法对特征约简后的数据进行分类检测,并输出分类结果。
1、特征约简
在信息论中,互信息(MI)可以用于评估任意随机变量之间的依赖性。事实上,两个变量X和Y之间的互信息(MI)是当X成立时,Y成立(或者Y成立时,X成立)的知识量的量度。如果X和Y是独立的,则他们之间的互信息为0。
如图2所示,变量X和Y的互信息定义为:
I(X;Y)=H(X)-H(X|Y)=H(Y)-H(Y|X)=H(X)+H(Y)-H(X;Y) (1)
式中,H(·)是熵,H(X|Y)和H(Y|X)是条件熵,H(X;Y)是X和Y的联合熵,定义如下:
H(X)=-∫xpX(x)log pX(x)dx (2)
H(Y)=-∫ypY(y)log pY(y)dy (3)
H(X;Y)=-∫xypX,Y(x,y)log pX,Y(x,y)dxdy (4)
这里px,y(x,y)是X和Y的联合概率函数,pX(x)和pY(y)是X和Y的边缘密度函数,定义如下:
pX(x)=∫ypx,y(x,y)dy (5)
pY(x)=∫xpX,Y(x,y)dx (6)
则互信息计算式为:
I ( X ; Y ) = ∫ x ∫ y p X , Y ( x , y ) log p X , Y ( x , y ) p X ( x ) p Y ( x ) dxdy - - - ( 7 )
以上公式均是针对特征为连续性变量的,当特征是离散性变量时,则使用求和代替公式中的积分。那么相应的概率密度也替换为概率。
如果将入侵检测系统看作一个分类器,那么特征约简是入侵检测中的一个重要内容。用于入侵检测研究的KDD Cup99数据集共有41维特征,且具有大量的学习样本,过多的特征会耗费入侵检测分类器的计算时间,严重影响了入侵检测系统的性能。为去除冗余特征以及减少特征间的相关性,进行特征降维可以有效地减少系统要处理的数据量,从而提高入侵检测系统的性能。
基于互信息的特征约简的主要思想是:从原始高维特征空间中,选取出一个特征子集,使得该特征子集包含所有特征蕴含的全部或者绝大部分信息。因为没有被选进特征子集的那些特征几乎是没有信息量的,有的甚至是干扰信息,因此使用特征约简后的数据集进行算法学习时,学习算法的性能几乎很少降低,甚至有时还会因为干扰信息的剔除而提高性能。
具体的算法描述如下:
(1)初始化:
原始高维特征集设为F(f1,f2,…,fm),表示数据集中的每条数据均有m个非类别标识特征(也称为条件特征);数据集的类别特征设为y;设置空集S,设需要选出N个特征。
(2)选出第一个特征:
对于F中的每个特征fi,使用公式(1)计算fi与Y的互信息I(fi;y),然后选择使得I(fi;y)的值最大的fi,将fi存入集合S中,该特征选出的第一个特征,它可以最大程度的降低特征集合中其他特征的不确定性。再将集合F中的fi剔除,得到新的集合F,即每选择一个特征之后,集合F都要做一次修改更新。
(3)依次选出剩下的N-1个特征:
此时F中存放的是当前未被选择的特征,S中存放的是已经被选择的特征,假设已经选择了q-1(q<N)个特征了。接下来要做的就是选择第q个特征,采用类似于“最小冗余-最大相关(minimum redundancy and maximum relevance,mRMR)”标准的策略来选择这第q个特征。第q个特征选择的依据是:
I q = arg max 1 ≤ i ≤ m { I ( f i ; y ) - 1 q - 1 Σ f i ∈ S q - 1 I ( f i ; f i ) | f i ∈ F } - - - ( 8 )
上式中I(fi;y)项是“最大相关”条件,它的存在使得“最小冗余-最大相关”标准可以选择出与类别特征y具有最大依赖性的条件特征。由于特征之间会存在一定的依赖,有的甚至依赖程度非常大,如果仅仅是根据“最大相关”这个条件来选择特征,可能会导致选择出来的特征之间存在很大的依赖性(即很大冗余),此时,便需要加入“最小冗余”条件,来选择与已选特征冗余最小的特征。Iq表示第q个特征的互信息,Sq-1表示包含q-1已选出特征的特征子集。
(4)输出所选出的特征子集S。
2、分类检测
针对传统KNN算法时间代价太大的缺点,提出3个相应的改进点:①删减训练样本库;②建立索引模型;③采用缓存技术,从而提高KNN算法的效率,缩短分类时间;同时提出修改决策函数的权重计算方法来改善KNN算法的分类精度。
2.1删减训练样本库
原有的训练样本库中,会有大量相同的样本,很多训练数据点都是重合的,相当于每个待分类样本都要和同一个训练样本重复多次计算距离值,从而导致昂贵的时间代价。通过删减掉训练样本库中的那些重复数据,使得训练样本库中剩下的数据都不相同,即数据不重合,将这些不重合的样本数据作为新的训练样本,从而达到减小训练样本集的目的,在很大程度上减小了算法学习时间的消耗,加快了效率。
2.2建立索引模型
该算法的思想是:首先确定一个基准样本R,然后计算基准样本R与所有训练样本的距离,再按照距离进行排序,并建立对应的索引表。当对某个待分类样本进行分类时,根据索引表在有序的训练样本队列中查找待分类样本的k个最近邻,可以减少查找范围和磁盘的启动次数,减少查找k个最近邻的时间,从而大幅度得加快分类速度。整个过程分为两个大的步骤:
1)建立训练样本库的有序线性空间
①随机选择一个训练样本作为基准点R;
②根据欧氏距离公式计算训练样本库中的每个训练样本到基准点R的距离,并按照距离的大小进行排序,得到一个有序的队列矩阵queuesort,queuesort的行数是训练样本的个数,其中每一行依次包括该样本数据的特征向量、类别标识及其到基准点R的距离;
③建立索引表indextable,该索引表存储有序队列queuesort中第1、1+L、1+2L、…、1+iL、…个样本在有序队列queuesort中的位置和到基准点R的距离,其中,表示向上取整。
因为索引表indextable的内容少,所以在读入内存查找的时候速度会很快,但是若不建立索引表,而是直接对有序队列queuesort进行读取查找,将会因为训练样本的数量太大,且多次启动磁盘读入数据,而耗费太多的时间。
2)查找待分类样本的k个最近邻
①根据欧氏距离公式计算待分类样本t和基准点R的距离dtR
②将dtR与索引表indextable中的距离数据(有序队列queuesort中第1,1+L.1+2L,…,1+iL,…个样本到基准点R的距离)进行大小比对,确定dtR处于哪两个索引点之间,则从有序队列queuesort中读取这两个索引点之间的L个训练样本数据;
③获取L个训练样本数据中与dtR的数值最相近的训练样本q,以样本点q为中心,选择k(即指定的k个最近邻数值)个训练样本,为第s到第s+k-1个样本,根据欧氏距离公式计算该k个训练样本与待分类样本t的距离,并建立有序队列k_list,该有序队列中k_list的每行数据包括:对应训练样本到待分类样本t的距离和该训练样本的类别标识;
④在有序队列queuesort中,以选中的k个训练样本为中心,向前、向后同时进行循环搜索,寻找待分类样本t的精确的k个最近邻。循环搜索具体为:
找出k-list中距离待分类样本t数据最远的训练样本,并将其与t的距离值赋予dmax,将第s-1个样本点赋予U,将第s+k个样本赋予V,分别计算距离dUR、dUt、dVR和dVt,再使用以下的while循环来搜索:
则经过以上搜索过程得到的k_list中的k个样本就是待分类样本t的k个最近邻,而且通过这种方法搜索到的k个最近邻是精确的k个最近邻,和使用传统KNN学习算法得到的k个最近邻是完全相同的,所以能够保证算法原有的精确性。
2.3采用缓存技术
虽然可以将训练样本集中的重复数据进行删减,以缩小训练样本库,从而加快KNN的分类速度。但是测试样本的重复数据却是不能删减的,这就导致,算法在分类学习的过程中,对完全相同的待分类数据需要很多次的重复完全相同的分类检测过程,从而造成效率的低下。
可通过缓存技术来解决这个问题。对于某个待分类测试样本,如果已分类测试样本中存在与其完全相同的样本,则不再对它执行分类过程,而是将与它相同的已分类测试样本的类别标识直接赋予它。这就需要事先将分好类的不同测试样本和其分类得到的类别标识另外保存起来,以便于后面尚未分类的测试样本比对。
这样的改进,可以非常大程度的加快算法分类学习的速度,并且随着测试数据集的增大,速度的改进效果会显得越发的明显。
3、实验部分
本实验采用KDD CUP99数据集对上述方法进行验证。如图3所示为一条网络数据的实例,其中共有42项,前面的41项为条件特征,最后一项(normal)为类别标识特征。
KDD CUP99数据集总共分为2大类:
①正常(normal)网络数据;
②异常(abnormal)网络数据。
而异常网络数据又分为4类:
dos,拒绝服务攻击;
r21,来自远程主机的未授权防问;
u2r,未授权的本地超级用户特权访问;
probe,端口监视或扫描。
其中4种攻击类型中又各包含多种子分类。
由于原始的KDD CUP99数据集太大,故本实验只随机选取其中的80056条用于研究,其中的40000条用作训练样本,另外的40056条用作测试样本。然后对选取到的训练样本数据和测试样本数据按照相同的模式进行预处理,包括:对其中连续数据离散化和字符数据数字化。接着使用基于互信息的特征约简算法对整理后的特征空间为41维的样本集进行特征约简。再对特征约简后的训练样本数据集进行重复数据的删减工作,大幅度的缩减训练样本的数量,再使用改进后的快速KNN分类算法(即加入索引模型、缓存功能)进行分类检测,最后得到我们需要的结果。
3.1基于互信息的特征约简
使用基于互信息的特征约简方法,对预处理后的KDD CUP99数据集进行降维。
实验中,不管是2分类数据集还是5分类数据集,当特征取为5维以上时,采用LIBSVM分类工具,分类精确度都可以保持在98%以上。为了使用KNN分类时,加快分类速度,选择将特征维度约简到5维。然后用于后续的入侵检测模式分类研究。
3.2基于快速KNN算法的入侵检测
通常衡量一种入侵检测方法的检测效果有四个指标:①分类精度:是指将网络数据错误分类的比率,该指标越低,表示检测效果越好;②运行时间:是指将待分类数据进行类别标识所需的时间,该指标越低,表示分类效率越高;③误检率:是指将正常的网络数据检测为入侵网络数据的比率,该指标越低,表示检测效果越好;④漏检率:是指将入侵网络数据检测为正常网络数据的比率,该指标越低,表示检测效果越好。计算公式分别如下:
实验一
为了说明KNN算法的学习速度与训练样本库的大小有很大的关联。现在分别基于未删减的训练样本库和删减后的训练样本库作为实验数据,统一使用KNN算法进行分类学习。为了节约实验时间,仅取k值为4、10,分别在2分类实验数据集和5分类实验数据集的情况下,研究训练样本库的删减与否对算法学习速度的影响。实验结果如表1所示。
表1 训练样本库删减前后的实验结果比较
从上表可以看出,若不删减训练样本库中的重复数据,则整个学习过程的时间代价是非常巨大的,这种情况是非常不可取的。但是在删减了训练样本库的重复数据之后,算法学习所耗费的时间明显缩短了13倍左右,这是因为KNN是基于距离计算的模式分类方法,故训练样本库越大,KNN的计算量也会越大,相应的分类学习时间也就越长。同时从实验数据中可以看出,在训练样本库的删减前后,不管是对2分类数据集还是5分类数据集,算法的分类精度基本都没有大的变化。
实验二
为了验证F-KNN算法在速度上的优越性,现在选择不同的最近邻k取值,分别使用KNN算法和F-KNN算法进行分类学习,并且为了节约实验时间,2个分类学习算法均使用删减重复数据之后的训练样本库。
1)2分类情况:
当实验数据为2分类情况,即正常和异常时,KNN与快速KNN的实验结果如表2所示。
表2 KNN与快速KNN的2分类实验结果比较
综合分析KNN和快速KNN在2分类下的四个性能指标:分类精度、误检率、漏检率和运行速度。可以得出:当k=4时,快速KNN分类算法具有相对较高的性能。
2)5分类情况:
当实验数据为5分类情况,即正常和4种攻击类型时,KNN与快速KNN的实验结果如表3所示。
表3 KNN与快速KNN的5分类实验结果比较
综合分析KNN和快速KNN在5分类下的四个性能指标:分类精度、误检率、漏检率和运行速度。可以得出:当k=6时,快速KNN分类算法具有相对较高的性能。
综合分析实验一、实验二中的实验结果,可以得出:改进后的快速KNN算法不仅提高了分类精度,而且分类速度是传统KNN算法分类速度快200倍左右。

Claims (4)

1.一种基于快速KNN算法的入侵检测方法,其特征在于,包括以下步骤:
数据预处理步骤,接收入侵检测原始数据,对原始数据进行数据预处理,包括连续数据离散化处理和字符数据数字化处理;
特征约简步骤,采用基于互信息的特征约简算法对预处理后的数据进行特征约简,包括以下子步骤:
a1)初始化:原始数据的特征集设为F(f1,f2,…,fm),m为总特征个数;数据集的类别标识设为y;设置空集S,设需要选出N个特征;
a2)选出第一个特征:
对于F中的每个特征fi,计算fi与类别标识y的互信息I(fi;y),然后选择使得I(fi;y)的值最大的fi,将fi存入集合S中,该特征即为第一个特征,同时将fi从集合F中剔除;
a3)依次选出剩下的N-1个特征:
采用“最小冗余-最大相关”标准策略选择第q个特征:
I q = arg m a x 1 ≤ i ≤ m { I ( f i ; y ) - 1 q - 1 Σ f t ∈ S q - 1 I ( f i ; f t ) | f i ∈ F }
式中,I(fi;y)项是“最大相关”条件,Iq表示第q个特征的互信息,Sq-1表示包含q-1已选出特征的特征子集;
a4)输出所选出的特征子集S;
分类检测步骤,采用快速KNN算法对特征约简后的数据进行分类检测,并输出分类结果;
采用快速KNN算法对特征约简后的数据进行分类检测具体为:
b1)获得训练样本集,删除训练样本集中的重复数据;
b2)建立索引模型;
b3)对于当前待分类样本,判断已分类样本集中是否存在与待分类样本相同的样本,若是,则直接输出相同已分类样本的类别标识,若否,执行步骤b4);
b4)根据建立好的索引模型快速查找训练样本集中待分类样本的k个最近邻;
b5)根据快速查找到的k个最近邻,输出待分类样本的类别标识;
所述的步骤b2)中,建立索引模型具体为:
b201)随机选择一个训练样本作为基准点R;
b202)根据欧氏距离公式计算训练样本库中的每个训练样本到基准点R的距离,并按照距离的大小进行排序,得到一个有序的队列矩阵queuesort,queuesort的行数是训练样本的个数,其中每一行依次包括该样本数据的特征向量、类别标识及其到基准点R的距离;
b203)建立索引表indextable,该索引表存储有序队列queuesort中第1、1+L、1+2L、…、1+iL、…个样本在有序队列queuesort中的位置和到基准点R的距离,其中, 表示向上取整;
b204)查找训练样本集中待分类样本的k个最近邻。
2.根据权利要求1所述的一种基于快速KNN算法的入侵检测方法,其特征在于,所述的互信息计算方法如下:
变量X和Y的互信息定义为:
I(X;Y)=H(X)-H(X|Y)=H(Y)-H(Y|X)=H(X)+H(Y)-H(X;Y)
式中,H(·)是熵,H(X|Y)和H(Y|X)是条件熵,H(X;Y)是X和Y的联合熵,定义如下:
H(X)=-∫xpX(x)log pX(x)dx
H(Y)=-∫ypY(y)log pY(y)dy
H(X;Y)=-∫xypX,Y(x,y)log pX,Y(x,y)dxdy
这里pX,Y(x,y)是X和Y的联合概率函数,pX(x)和pY(y)是X和Y的边缘密度函数,定义如下:
pX(x)=∫ypX,Y(x,y)dy
pY(x)=∫xpX,Y(x,y)dx
则互信息计算式为:
I ( X ; Y ) = ∫ x ∫ y p X , Y ( x , y ) l o g p X , Y ( x , y ) p X ( x ) p Y ( x ) d x d y .
3.根据权利要求1所述的一种基于快速KNN算法的入侵检测方法,其特征在于,所述的步骤b4)中,查找训练样本集中待分类样本的k个最近邻具体为:
b401)根据欧氏距离公式计算待分类样本t和基准点R的距离dtR
b402)将dtR与索引表indextable中的距离数据进行大小比对,确定dtR处于哪两个索引点之间,则从有序队列queuesort中读取这两个索引点之间的L个训练样本数据;
b403)获取L个训练样本数据中与dtR的数值最相近的训练样本q,以样本点q为中心,选择k个训练样本,为第s到第s+k-1个样本,根据欧氏距离公式计算该k个训练样本与待分类样本t的距离,并建立有序队列k_list,该有序队列中k_list的每行数据包括:对应训练样本到待分类样本t的距离和该训练样本的类别标识;
b404)在有序队列queuesort中,以选中的k个训练样本为中心,向前、向后同时进行循环搜索,寻找待分类样本t的精确的k个最近邻。
4.根据权利要求3所述的一种基于快速KNN算法的入侵检测方法,其特征在于,所述的步骤b5)具体为:根据k个最近邻样本中不同类别样本的数量来判定,将待分类样本类别标识判定为k个最近邻样本中数量最多的那个类别。
CN201310666303.2A 2013-12-10 2013-12-10 一种基于快速knn算法的入侵检测方法 Active CN103618744B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310666303.2A CN103618744B (zh) 2013-12-10 2013-12-10 一种基于快速knn算法的入侵检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310666303.2A CN103618744B (zh) 2013-12-10 2013-12-10 一种基于快速knn算法的入侵检测方法

Publications (2)

Publication Number Publication Date
CN103618744A CN103618744A (zh) 2014-03-05
CN103618744B true CN103618744B (zh) 2017-01-11

Family

ID=50169448

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310666303.2A Active CN103618744B (zh) 2013-12-10 2013-12-10 一种基于快速knn算法的入侵检测方法

Country Status (1)

Country Link
CN (1) CN103618744B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104020983A (zh) * 2014-06-16 2014-09-03 上海大学 一种基于OpenCL的KNN-GPU加速方法
CN106951778A (zh) * 2017-03-13 2017-07-14 步步高电子商务有限责任公司 一种面向复杂流数据事件分析的入侵检测方法
CN106899440B (zh) * 2017-03-15 2020-04-07 苏州大学 一种面向云计算的网络入侵检测方法及系统
CN107454084B (zh) * 2017-08-10 2020-06-02 桂林电子科技大学 基于杂交带的最近邻入侵检测算法
CN107395640B (zh) * 2017-08-30 2020-05-12 信阳师范学院 一种基于划分和特征变化的入侵检测系统及方法
CN107566192B (zh) * 2017-10-18 2019-09-20 中国联合网络通信集团有限公司 一种异常流量处理方法及网管设备
CN110365636B (zh) * 2019-05-23 2020-09-11 中国科学院信息工程研究所 工控蜜罐攻击数据来源的判别方法及装置
CN112529172A (zh) * 2019-09-18 2021-03-19 华为技术有限公司 数据处理方法和数据处理设备
CN111181930A (zh) * 2019-12-17 2020-05-19 中移(杭州)信息技术有限公司 DDoS攻击检测的方法、装置、计算机设备及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
基于MapReduce的KNN分类算法的研究与实现;乔鸿欣;《万方学术论文》;20121231;第3节 *
基于粒子群优化算法的最大相关最小冗余混合式特征选择方法;姚旭等;《控制与决策》;20130315;第2-3节 *
基于邻域粗糙集与KNN的网络入侵检测;赵晖;《河南科学》;20131008;第1节 *

Also Published As

Publication number Publication date
CN103618744A (zh) 2014-03-05

Similar Documents

Publication Publication Date Title
CN103618744B (zh) 一种基于快速knn算法的入侵检测方法
Zhu et al. OFS-NN: an effective phishing websites detection model based on optimal feature selection and neural network
Sinha et al. Efficient deep CNN-BiLSTM model for network intrusion detection
Lu Malware detection with lstm using opcode language
CN108140021A (zh) 涉及感兴趣的数据内容的优先化的分级索引
Tait et al. Intrusion detection using machine learning techniques: an experimental comparison
Xue et al. Defeating untrustworthy testing parties: A novel hybrid clustering ensemble based golden models-free hardware trojan detection method
Pattawaro et al. Anomaly-based network intrusion detection system through feature selection and hybrid machine learning technique
CN112866292B (zh) 一种面向多样本组合攻击的攻击行为预测方法和装置
Zhang et al. An ensemble method for detecting shilling attacks based on ordered item sequences
CN111062036A (zh) 恶意软件识别模型构建、识别方法及介质和设备
CN109840413A (zh) 一种钓鱼网站检测方法及装置
Sundarkumar et al. Malware detection by text and data mining
Kundu et al. Application of machine learning in hardware trojan detection
Li et al. Enhancing Robustness of Deep Neural Networks Against Adversarial Malware Samples: Principles, Framework, and AICS'2019 Challenge
Liu et al. Multi-scale semantic deep fusion models for phishing website detection
Bansal et al. Analysis of focussed under-sampling techniques with machine learning classifiers
CN115473726A (zh) 一种识别域名的方法及装置
Aljabri et al. Fake news detection using machine learning models
Tran et al. One-shot learning approach for unknown malware classification
Thanh et al. An approach to reduce data dimension in building effective network intrusion detection systems
Irfan et al. Energy theft identification using AdaBoost Ensembler in the Smart Grids
Lighari Hybrid model of rule based and clustering analysis for big data security
Sahu et al. Improved malware detection technique using ensemble based classifier and graph theory
Liang et al. Automatic security classification based on incremental learning and similarity comparison

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant