文献标识码: A
DOI:10.16157/j.issn.0258-7998.172203
中文引用格式: 刘纪伟,赵月显,赵杨. 一种基于统计排序的网络流量特征选择方法[J].电子技术应用,2018,44(1):84-87.
英文引用格式: Liu Jiwei,Zhao Yuexian,Zhao Yang. A feature selection method of network traffic based on statistic and ranking strategy[J]. Application of Electronic Technique,2018,44(1):84-87.
0 引言
网络流量分类是指将混合有各种应用的流量,按产生这些流量的应用协议进行分类。网络流量分类既是高性能网络协议设计的基础,又是网络运营管理、网络发展规划的依据,也是网络攻击与恶意代码检测的重要手段[1]。
基于网络流量的统计特征并利用机器学习的方法进行流量的分类识别是当前学术界的研究热点,一方面该方法克服了传统基于标准端口匹配和深度包检测方法在技术上的不足,另一方面基于网络流量统计特征的方法不涉及报文的有效载荷信息,避免了对用户隐私侵犯带来的法律问题。但是网络流量特征属性繁多,目前得到学术界广泛认可的各类特征数量就已多达240余个,大量冗余和不相关的特征属性不仅会增加流量分类系统模型的复杂度,还会降低分类算法的效率和性能,造成流量分类准确率和效率同时下降。因此,需要对网络流量特征进行选择,剔除冗余和不相关的特征。
近几年学术界对此开展了广泛和深入的研究。文献[2]提出了一种分治和投票的策略,首先对原始训练集进行分割,利用分割后的子集分别获得特征子集,再通过投票获得最终的特征子集,有效地缩短了算法运行时间;文献[3]提出一种结合过滤型和封装型特征选择算法优点的组合式特征选择算法,并将该算法用于网络流量中P2P流量的识别,实验结果表明在保证分类平均准确率不低于90%的情况下,可以将特征个数缩减至7个;潘吴斌等人在文献[4]中提出一种基于选择性集成策略的嵌入式特征选择方法,采用选择性集成方法选取5种特征选择器产生特征子集,再通过改进的序列前向搜索和封装器组合方法产生最优特征子集,在一定程度上解决了类别不均衡和概念漂移的问题;孙兴斌等人在文献[5]、[6]中也对多类不均衡问题和少数类召回率低的问题进行了研究,提出了有针对性的特征选择方法,尽管在实验环境下取得了很好的效果,但由于选取的特征个数与网络应用种类数相同,在实际应用中依然面临不小的挑战;文献[7]给出了一种以分类准确率作为判决准则的流量特征二次排序选择的思路,但特征的初次选择依然采用传统方式,算法的效率受到一定限制。
本文在前述学者的研究工作基础之上,针对现有网络流量特征选择方法存在的问题,提出一种基于统计排序的特征选择方法(Feature Selection based on Statistic and Ranking,FSSR)。FSSR首先根据特征选择系数大小选取类相关性强、类别区分度高的特征组成初始特征子集,初始特征子集中的特征个数与网络应用种类个数相同,然后根据特征影响系数大小按序对初始特征子集进行二次选择,再次进行降维寻优操作,从而获得最优特征子集,有效提升分类的效率和效果。
1 FSSR方法
1.1 相关定义
为了方便描述,对文中使用的标记符号说明如下:C={c1,c2,c3,…,ck}表示具有k个类的网络应用集合;T={t1,t2,t3,…,tm}表示具有m个网络流量特征的集合;X={x1,x2,x3,…,xN}表示样本数量为N的网络流样本数据集合,其中xi形式为以T中元素表征的特征向量。
定义1 特征选择系数fij
特征选择系数fij用来衡量特征ti和类cj之间的相关性以及ti将cj与其他类区分开来的能力。
根据香农的信息论理论,对于某个特征t,如果类c的样本在这个特征上的取值越集中,说明c在t上的不确定性越小,即特征t与类c相关性越强,利用特征t能更好地识别类c;如果类c1和类c2的样本在特征t上的取值区间没有交集或者交集很小,则利用特征t就能很好地区分类c1和类c2。基于此,定义特征选择系数如下:
其中,|ti|表示统计所有样本在特征ti上全部取值的个数,γinj表示统计类cj在特征ti上取第n个值的样本个数占类cj样本总数的比例。可见,特征选择系数大小由类在特征上取值的集中程度和该类与其他所有类在该特征上取值区间的差异程度决定。在特征上的取值越集中,类间的取值区间相差越大,特征系数越大,相应的特征和类相关性越强。
定义2 特征影响系数Ii
特征影响系数Ii用来衡量特征ti对分类准确率的影响程度。定义如下:
1.2 算法原理
FSSR方法的核心思想是基于相关性并利用统计的方法找出既能准确标识网络应用同时又在不同应用类别之间具有明显分布差异的网络流量特征。如果所有目标应用的样本在某些流量特征上的分布都很集中,同时各个应用的分布之间差异明显,那么显然利用这些特征能够很好地区分出各个目标应用。比如,目标应用a的样本在特征1上的取值分布集合是{1,2},在特征2上的取值分布集合是{1,2,3,4,5},目标应用b的样本在特征1上的取值分布集合是{9,10},在特征2上的取值分布集合是{4,5,6,7,8},比较特征1和特征2,显然利用特征1能更好地标识和区分目标应用。1.1节中的特征选择系数即基于此思想定义。
1.3 算法描述
FSSR方法主要由特征选择系数计算、初始特征子集生成、特征影响系数计算和最优特征子集生成四个部分组成。算法运行过程分为两个阶段,第一阶段生成初始特征子集,由于初始特征子集中的特征数量与网络应用类别数量相等,当网络应用数量较多时,很可能造成选取到冗余和不相关特征,因此第二阶段对初始特征子集进行二次选择,进一步寻优,得到最优特征子集。在第二阶段计算各特征的特征影响系数时,采用C4.5决策树分类算法评估分类准确率。算法详细步骤描述如下:
输入:网络流样本训练数据集X
输出:最优特征子集S
(1)初始化初始特征子集S1,最优特征子集S为空集;
(2)遍历训练集X中的样本,根据式(1)计算每个网络应用类型对应每个流量特征的特征选择系数fij,其中1≤i≤m,1≤j≤k;
(3)对应用类型cj,扫描集合{fij}(1≤i≤m),计算I=,得到对应的流量特征tI,放入S1中;如果S1中已有特征tI,则删除fij,重新计算;
(4)循环执行步骤(3),直到遍历完所有的应用类型cj(1≤j≤k),得到初始特征子集S1;
(5)利用初始特征子集S1,对训练集X使用10次折叠交叉验证,采用C4.5决策树分类算法,根据式(2),计算S1中每个特征的特征影响系数;
(6)查找S1中特征影响系数最大的特征顺序放入S中,并将该特征从S1中删除;
(7)利用特征子集S,对训练集X使用10次折叠交叉验证,采用C4.5决策树分类算法,计算分类准确率pS;
(8)重复执行步骤(5)~(7),直到pS取得最大值,此时的特征子集S即为最优特征子集;
(9)结束。
2 实验与分析
2.1 实验工具与实验数据集
本文使用的主要实验工具为Weka 3.8。Weka是新西兰怀卡托大学开发的一个基于JAVA环境的开源机器学习以及数据挖掘软件,包含多种机器学习算法。同时,Weka提供JAVA接口,为开发者提供了一个基于JAVA的二次开发平台,支持开发者自己编写代码进行新学习算法开发。实验平台运行Windows 7操作系统,CPU为Intel Core i5-3470 3.20 GHz,内存大小为4 GB。
实验利用MOORE A W等人在文献[8]中给出的网络流数据集Moore_set作为实验测试数据集,这是目前网络流量分类研究中最为权威的测试数据集。Moore_set中包含10个数据子集、377 526个网络流样本、248个流量特征属性(最后一个属性是目标应用,即指出网络流所属的应用类型)、12种应用类型(数据子集中应用类型FTP又进一步分为:FTP-CONTROL、FTP-PASV和FTP-DATA)。10个数据子集的采集时间在同一天,按先后顺序编号,每个数据子集的采集持续时间约30 min,具体统计信息如表1~表3所示。
从表1可以看出,Moore_set中INT和GAMES两种应用类型的样本数量相对过少,不具有代表性,因此删除这两种类型的样本,保留其余样本。
从表3可以看出,DB和MMEDIA两种应用类型分别在数据子集5、6和数据子集9、10中没有分布。为了保证实验数据集中应用分布的统一,不选取这4个数据子集作为实验数据集。经过以上选择处理后,实验数据集共包含6个数据子集、205 210个网络流样本、10种应用类型,6个数据子集分别是entry01、entry02、entry03、entry04、entry07、entry08[8]。
2.2 实验结果分析
为了有效评价分类效果,Weka给出了分类算法的总体准确率和按类计算的详细准确率,详细准确率包括真正率、假正率、精确率、召回率、F-Measure值等性能指标。文献[1]中给出了对以上各项性能评价指标的详细介绍,请参阅。
实验首先分别在各个数据子集上运行FSSR特征选择方法,获得并记录从各数据子集选取的初始特征子集和最优特征子集以及分别仅包含初始特征和最优特征的数据子集;然后为了评价FSSR方法的效果和效率,选择C4.5算法构造分类器,使用10次折叠交叉验证方法分别在初始特征数据子集、最优特征数据子集和未进行特征选择的全特征数据子集上执行分类操作,对网络流量进行分类识别。实验结果对比如表4~表6所示。
由表4可知,经过FSSR方法选择后的特征数量明显减少,将原来的248个特征平均减少到现在的7.67个,表明FSSR的降维效果明显。
由表5可知,FSSR方法在6个实验数据子集上获得的平均分类总体准确率略高于原始全特征数据子集的总体准确率,准确率未有较大程度地提升,主要原因是:分类算法C4.5本身性能很好,对未进行特征选择的原始实验数据集进行分类时总体准确率已经达到了99.6%以上,提升空间有限,并且实验数据集样本数量庞大,增加的少量正确分类样本数对准确率贡献较小。
由表6可知,虽然FSSR方法在提升分类准确率方面贡献不大,但由于在特征集合降维方面效果明显,降低了分类模型的复杂度,所以在系统建模时间上,利用FSSR方法获得的最优特征子集进行分类建模的时间远远低于全特征集合。
表7给出了FSSR在实验数据集上选取频率最高的6个特征,其中序号、标识符参照文献[8]中的定义。
总的来说,FSSR特征选择方法在网络流量分类识别方面取得了较好的效果,在保证分类总体准确率的同时,大幅度地减少了网络流量的统计特征数目,从而有效降低了后续分类系统模型的复杂度和对系统资源的占用,提高了分类效率。
3 结论
本文针对机器学习在网络流量分类中面临的流量统计特征选择问题,提出一种基于统计排序的特征选择方法,首先利用特征选择系数为各网络应用类型选择相关性强、与其他应用区分度高的特征,组成初始特征子集。考虑到网络应用类型过多时仍然可能导致选取到冗余和不相关的特征,再将特征影响系数作为特征评估排序的依据,对初始特征子集进行二次特征选择,生成最优特征子集。实验结果表明,该方法在保证分类整体准确率的同时,有效减少了流量统计特征的个数,达到了预期的效果。但网络流量存在应用类别分布不均衡以及概念漂移等问题,在对多类不均衡流量进行分类时,机器学习分类模型往往倾向于多数类,造成少数类召回率较低。目前的特征选择方法可以很好地解决维数灾难的问题,但在解决上述问题方面还有很多不足,下一步的主要研究方向即为结合机器学习和特征选择解决网络流量分类中的多类不均衡和概念漂移问题。
参考文献
[1] 汪立东,钱丽萍,王大伟,等.网络流量分类方法与实践[M].北京:人民邮电出版社,2013.
[2] 高文,钱亚冠,吴春明,等.网络流量特征选择方法中的分治投票策略研究[J].电子学报,2015,43(4):795-799.
[3] 储慧琳,张兴明.一种组合式特征选择算法及其在网络流量识别中的应用[J].小型微型计算机系统,2012,33(2):325-329.
[4] 潘吴斌,程光,郭晓军,等.基于选择性集成策略的嵌入式网络流特征选择[J].计算机学报,2014,37(10):2128-2137.
[5] 孙兴斌,孙彦赞,郑小盈,等.面向多类不均衡网络流量的特征选择方法[J].计算机应用研究,2017,34(2):568-571.
[6] 孙兴斌,芮赟.一种基于统计频率的网络流量特征选择方法[J].小型微型计算机系统,2016,37(11):2483-2487.
[7] 申健,夏靖波,张晓燕,等.基于分治排序策略的流量二次特征选择[J].电子学报,2017,45(1):128-133.
[8] MOORE A W,ZUEV D,CROGAN M.Discriminators for use in flow-based classification,RR-05-13[R].London:Queen Mary University of London,2005.