基于SOM与K-means融合算法的网络流量分类方法与流程

文档序号:20917114发布日期:2020-05-29 13:40阅读:724来源:国知局
基于SOM与K-means融合算法的网络流量分类方法与流程

本发明涉及网络流量分析及网络安全等领域,具体涉及一种基于som与k-means融合算法的网络流量分类方法。



背景技术:

随着互联网的迅猛发展,大数据时代的到来,越来越多的新型网络应用逐渐兴起,网络规模不断扩大,网络组成愈发复杂,对于网络的管理和分析需求增加。网络流量分类技术作为网络可控性的基础技术之一,可以帮助网络运营商提供更好的服务质量,对网络进行有效地监管。对网络流量进行分析,可以识别并过滤掉网络病毒,检测出垃圾邮件和非法入侵,提高了网络的安全性能。因此网络流量分类技术对于提高网络的管理效率,保障网络环境的绿色和安全有着至关重要的作用。

常用的流量分类技术主要有以下三类:①基于端口号的流量分类方法:端口号与所需应用程序之间的对应关系由iana(互联网数字分配机构)定义,这种方法存在着严重的局限性,例如服务器端口可以动态分配,具有不同qos级别服务可以使用相同的端口号等,这些原因导致基于端口号的流量分类方法不再适用当前网络;②基于有效载荷的流量分类方法:这种方法需要精确了解应用层数据以及其数据包的格式,只能用于非加密流量,而当前网络的应用程序有效负载的加密性好,这种方法的局限性较大;③基于流量统计特征的分类方法:通过流量的特征来建立机器学习的模型,然后再用数据集训练并完善模型,通过模型来预测未知流量的种类,由于其适用范围广泛,该方法被广泛地研究和使用。

目前针对流量分类的机器学习模型主要是基于监督学习算法,如基于k近邻、支持向量机、naivebayes,而基于无监督学习的机器学习模型研究较少,无监督学习的优点在于不需要将训练数据贴上标签,从而大大减少了人工标注类别的成本,因此本发明提出基于以无监督学习中的k-means算法为核心的流量分类方法。



技术实现要素:

发明目的:为了克服现有技术中存在的不足,本发明提供一种基于som与k-means融合算法的网络流量分类方法,与其他方法不同之处,本发明以无监督学习的k-means算法为核心将som算法与其结合从而进行优化。

技术方案:为实现上述目的,本发明采用的技术方案为:

一种基于som与k-means融合算法的网络流量分类方法,包括以下步骤:

步骤1,采集网络流量数据集,确定训练集,并统计流量特征;

步骤2,采用基于相关性的特征选择算法对统计后的流量特征进行筛选,然后从筛选后的训练集中计算特征-类相关矩阵和特征-特征相关矩阵,其次用最佳优先搜索方法搜索特征子集空间,计算特征子集的估计值,找出估计值最大的特征子集,作为最优特征子集;

步骤3,融合算法将聚类分为两阶段进行,第一阶段:将最优特征子集对应的特征向量作为输入样本输入som网络,执行som算法不断更新各个神经元的权值,直至达到设定的迭代次数,结束算法运行,输出聚类结果,计算出聚类后的簇中心和簇的数目;第二阶段:将第一阶段聚类后的簇中心和簇的数目分别作为k-means算法的初始聚类中心和初始k值,执行k-means算法直至算法收敛,输出最终的聚类结果;

步骤4,使用s_dbw指数评估算法的聚类效果。

优选的:步骤2中所述的基于相关性的特征选择算法包括以下步骤:

预设一个集合d,集合d开始于空集,第一步先计算所有可能的单个特征的估计值,由merit值表示,并选择merit值最大的一个特征加入d,使d成为了一维的特征向量,然后选择剩余特征中拥有最大的merit值的特征加入d,如果这个二维的特征向量d的merit值小于原来的merit值,则去除这个特征,寻找下一个merit值最大的特征加入d,维度依次增加,不断重复上述过程,直至集合d的merit值无法再增大,得到估计值最大的特征子集;

merit值的公式如下:

其中,merit为特征子集的估计值,n为特征的个数,rcf为特征-类平均相关系数,rff为特征-特征平均相关系数。

优选的:步骤3中som算法包括三个过程:竞争过程、合作过程、突触自适应过程,

竞争过程:当网络得到一个输入向量x时,竞争层的所有神经元对应的权重向量wi(t)均与其进行相似性比较,并将最相似的权重向量所对应的神经元判为竞争获胜神经元,相似度最大即向量的内积最大;

合作过程:获胜神经元决定兴奋神经元的拓扑邻域的空间位置,从而提供相邻神经元合作的基础;

突触自适应过程:在确定获胜神经元的拓扑邻域之后,调整邻域内各个神经元对应的权值向量,距离获胜神经元越远,被抑制的程度越大,即权重所占比例越小。

三个过程依次循环进行,直至学习率衰减为0,算法收敛,随着竞争过程的进行,神经元逐渐趋近于聚类中心。

优选的:步骤4中s_dbw指数的评估原理如下所示:

s_dbw指数由两项组成,分别是簇间密度和簇内方差,使用它评价不同参数下的聚类算法结果时,取s_dbw值最小的一组参数即可;

s_dbw(k)=scat(k)+dens_bw(k)

其中,dens_bw(k)表示簇间密度,用来评估含有两个簇的簇群密度和单个簇的密度的关系,k表示簇的数目,density(u)用来表示u周围点的数目,ca,cb分别表示簇a和簇b的簇中心,uab表示ca,cb连线的中点;scat(k)表示簇内方差,用来表示簇之间的平均分散度;σ(va)表示簇a的方差,σ(s)表示数据集s的方差;s_dbw(k)表示聚类效果评估指数。

本发明相比现有技术,具有以下有益效果:

1.本发明为基于无监督学习的流量分类算法,大大减少了人工标注数据类别的成本,算法简单,能够快速处理大量数据。

2.解决了k-means算法随机的初始聚类中心导致聚类效果不佳,以及k值的不确定性问题。

3.本发明所采用的聚类效果评估指标s_dbw指数,对于包含各种干扰因素的数据集,该指数的鲁棒性较强。

附图说明

图1为基于som与k-means融合算法的网络流量分类方法设计流程图。

具体实施方式

下面结合附图和具体实施例,进一步阐明本发明,应理解这些实例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。

一种基于som与k-means融合算法的网络流量分类方法,如图1所示,包括以下步骤:

步骤1,采集数据:采集网络流量数据集,确定训练集,并统计流量特征;引用文献“internettrafficclassificationusingbayesiananalysistechniques.”中的实验数据集中作为研究对象,数据集中每个样本都是从一条完整的tcp双向流抽取而来,一共包含249项属性,最后一项表示样本的流量类型。

步骤2,对数据集进行特征选择:采用基于相关性的特征选择算法(cfs)对统计后的流量特征进行筛选,然后从筛选后的训练集中计算特征-类相关矩阵和特征-特征相关矩阵,其次用最佳优先搜索方法(bestfirstsearch)搜索特征子集空间,计算特征子集的估计值,找出估计值最大的特征子集,作为最优特征子集;

预设一个集合d,集合d开始于空集,第一步先计算所有可能的单个特征的估计值,由merit值表示,并选择merit值最大的一个特征加入d,使d成为了一维的特征向量,然后选择剩余特征中拥有最大的merit值的特征加入d,如果这个二维的特征向量d的merit值小于原来的merit值,则去除这个特征,寻找下一个merit值最大的特征加入d,维度依次增加,不断重复上述过程,直至集合d的merit值无法再增大,得到估计值最大的特征子集;

merit值的公式如下:

其中,merit为特征子集的估计值,n为特征的个数,rcf为特征-类平均相关系数,rff为特征-特征平均相关系数。

不断重复上述过程直至产生最优特征子集,为了避免不同特征之间的量纲相差较大带来的影响,将特征向量进行归一化。

步骤3,执行som与k-means融合算法:

融合算法将聚类分为两阶段进行,第一阶段:将最优特征子集对应的特征向量作为输入样本输入som网络,执行som算法不断更新各个神经元的权值,直至达到设定的迭代次数,结束算法运行,输出聚类结果,计算出聚类后的簇中心和簇的数目;

som网络不同于其他的神经网络,它不包含隐层,只有输入层和竞争层。som算法可以看做三个过程:竞争过程、合作过程、突触自适应过程,

竞争过程:当网络得到一个输入向量x时,竞争层的所有神经元对应的权重向量wi(t)均与其进行相似性比较,并将最相似的权重向量所对应的神经元判为竞争获胜神经元,相似度最大即向量的内积最大;

合作过程:获胜神经元决定兴奋神经元的拓扑邻域的空间位置,从而提供相邻神经元合作的基础;

突触自适应过程:在确定获胜神经元的拓扑邻域之后,调整邻域内各个神经元对应的权值向量,距离获胜神经元越远,被抑制的程度越大,即权重所占比例越小。

三个过程依次循环进行,直至学习率衰减为0,算法收敛,随着竞争过程的进行,神经元逐渐趋近于聚类中心。因此,经过som算法训练后,数据集已经通过相似度进行了初步分类,求出聚类结果中的簇中心和簇的数目,作为k-means算法的初始值,有效地避免了随机的初始聚类中心导致算法聚类效果不佳,以及人为设定k值带来的不确定性。

分析som算法的具体步骤如下所示:

1)设置初始学习率η0,竞争层的神经元个数为m,将迭代次数设为t;

输入向量为x(n)=(x1(n),x2(n),λ,xn(n))t

权值向量为wi(t)=(wi1(t),wi2(t),λ,win(t))t,i=1,2,λ,m

2)取区间[0,1]内的随机值对竞争层各个神经元的权值向量wi进行初始化,并对当前输入向量x和初始权值向量wi(0)全部进行归一化处理,如公式(2)和公式(3)所示:

3)将与竞争层所有神经元对应的权值向量进行相似性对比,即将两者做点积,选出点积值最大的作为获胜神经元i*

4)定义优胜邻域一般初始优胜邻域n(t0)较大,训练过程中会随着迭代次数的增加而不断收缩。对优胜邻域内的所有神经元调整权值向量,权值更新过程如公式(4)所示:

式中wi(t)为第i个神经元在t时刻的权值,η(t)表示t时刻的学习率,学习率会随着迭代次数增加而衰减,d表示拓扑距离,e-d表明离获胜神经元越远,权值更新比例越小。

5)更新学习率η(t)和优胜邻域n(t),如公式(5)与公式(6)所示,并将更新后的权值向量重新归一化处理。

6)当学习率η<ηmin或达到指定迭代次数时,结束训练;否则转至步骤2)不断重复此流程,直至满足结束判定条件。

满足判定条件后,输出训练结果,并求出每个簇的簇中心的簇的数目,第一阶段至此结束。

第二阶段:将第一阶段聚类后的簇中心和簇的数目分别作为k-means算法的初始聚类中心和初始k值,执行k-means算法直至算法收敛,输出最终的聚类结果;

k-means的优点在于:原理比较简单,可以处理大量无标签数据,收敛速度快;聚类效果较优;需要调试的参数仅仅是簇数k。

k-means的主要缺点有:k值的选取不好把握;对于非凸数据集比较难收敛;随机的初始聚类中心可能导致聚类结果局部最优。

针对k-means算法的缺点,本方法选取数据集经过som网络训练后的聚类中心和簇数作为k-means算法的初始聚类中心和k值,结合图一,分析算法具体步骤如下:

1)选取阶段一训练后的聚类中心作为初始聚类中心,选取簇数作为初始k值;

2)为了避免不同量纲带来的影响,使用阶段一归一化处理后的数据集作为输入样本。

3)遍历所有数据,计算数据点到聚类中心的距离,并将其划分到最近的中心点中,形成k个簇;

4)使用误差平方和(sse)作为聚类的目标函数,如公式(7)所示,其中k表示簇类数目,cj表示第j个聚类中心,dist表示的是欧几里得距离,簇的最小化sse的簇中心即簇中所有点的均值。因此,计算每个簇的平均值,将其作为新的簇中心;

5)重复步骤3)4),直至簇中心不再发生改变,则视为算法已经收敛,输出聚类结果。

步骤4,使用s_dbw指数评估算法的聚类效果;

s_dbw指数由两项组成,分别是簇间密度和簇内方差,使用它评价不同参数下的聚类算法结果时,取s_dbw值最小的一组参数即可;簇间密度用来评估含有两个簇的簇群的密度,和单个簇的密度的关系。若两个簇结合之后的密度,显著小于每个单独的簇的密度,表示聚类效果较优。簇间密度计算如公式(8)所示,簇内方差计算如公式(9)所示:

s_dbw(k)=scat(k)+dens_bw(k)

其中,dens_bw(k)表示簇间密度,用来评估含有两个簇的簇群密度和单个簇的密度的关系,k表示簇的数目,density(u)用来表示u周围点的数目,ca,cb分别表示簇a和簇b的簇中心,uab表示ca,cb连线的中点;scat(k)表示簇内方差,用来表示簇之间的平均分散度;σ(va)表示簇a的方差,σ(s)表示数据集s的方差;s_dbw(k)表示聚类效果评估指数。

density(u)的定义如公式(10)所示,其中nab表示簇a与簇b的交集包含的所有点的数目。

数据点u的邻域定义为具有中心u和半径为簇的平均标准差的超球面,具体如函数f(x,u)的定义所示:

如果数据点与u之间的距离小于簇的平均标准差,它就属于u的邻域。

将数据集所有簇的平均标准差定义为stdev,如公式(12)所示:

s_dbw(c)=scat(c)+dens_bw(c),s_dbw指数越小表示聚类效果越好。

基于监督学习算法的流量分类方法以及将准确率作为评估指标都需要对数据集贴上标签,会耗费大量人力成本,本方法基于典型的无监督算法:k-means聚类算法,算法将相似的数据集自动聚类,可以通过分析聚类结果将同一个簇类的数据统一贴上标签,大大减少了成本,且本方法采用s_dbw指数评估聚类效果,该指数在聚类算法中表现的鲁棒性较强,这也是本发明相对于现有方法的创新之处。

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1