一种基于改进特征选择的网络流量分类方法
未命名
08-26
阅读:92
评论:0

1.本发明涉及一种基于改进特征选择的网络流量分类方法,属于网络流量分类技术领域。
背景技术:
2.随着互联网的迅速发展,爆炸式增长的网络流量给网络流量分类带来了巨大的挑战。这使得网络流量分类需要处理的数据量越来越大。
3.近年来,研究人员从网络流量原始数据中提取特征,并将深度学习应用于网络流量分类,尽管已经取得了巨大的进展,但还存在一些亟待解决的问题,尤其是流量特征选择问题。流量特征选择作为分类模型的先决条件,一方面会影响模型训练的复杂度,比如特征数量过多;另一方面也会影响模型的准确性,比如特征过少,或缺失关键特征等。
4.通常,为了最大程度的准确表达流量样本,通常会采集尽可能多的特征,其中可能包括一些不相关或冗余特征,特征之间也可能存在依赖关系。这会导致特征分析和预处理、模型训练、推理所需的时间延长,进而加大训练复杂度问题,甚至降低分类模型的准确率。
5.另外,仅使用简单的过滤式特征选择算法,选择后的流量特征仍然较多,且存在稳定性差的问题。即使使用深度学习中像cnn这种高效的神经网络模型,对特征选择过程并没有较大的贡献。而且将神经网络应用到特征选择时很少考虑使用神经网络得到特征的最佳表示。
技术实现要素:
6.发明目的:网络流量分类中特征选择算法发展至今,解决了不少问题,但过滤式特征选择算法还是存在选择特征数目较多、分类精度较低的问题,包裹式特征选择过程中需要多次训练学习器,存在系统开销大的问题。为了解决这些问题,本发明提供了一种基于改进特征选择的网络流量分类方法,该方法实现对流量特征进行全面选择,避免重要特征的遗漏,并且保留较少的特征数目,从而提高分类模型的综合性能。
7.技术方案:为实现上述目的,本发明采用的技术方案为:
8.一种基于改进特征选择的网络流量分类方法,包括以下步骤:
9.步骤一:获取真实应用的网络流量数据并提取出流量特征,去除样本中存在空值或缺失值的实例以及非数值型数据;
10.步骤二:采用改进特征选择算法,去除不相关特征及冗余特征,得到最优特征子集;
11.步骤三:将特征子集分为训练集和测试集,输入网络流量分类模型中进行训练;
12.步骤四:将待检测的流量样本预处理后输入训练好的网络流量分类模型中,输出网络流量分类结果。
13.本发明根据特征在样本集中的信息量变化计算特征权重,选取重要性高的特征,并使用皮尔森相关系数来计算特征之间的相关性,删除冗余特征,大幅度减少特征,提高分
类精度和分类模型的综合性能。
14.根据本发明优选的,改进的特征选择方法,根据特征在样本集中的信息量变化计算特征权重,选取重要性高的特征,并使用皮尔森相关系数来计算特征之间的相关性,删除冗余特征,实现全面特征选择,实现过程如下:
15.(1)根据特征在网络流量样本集中的信息量变化计算特征权重,根据特征权重对网络流量样本集进行排序,保留样本集的前三分之二,形成特征子集;
16.(2)遍历特征子集中的特征,使用皮尔森相关系数来计算特征之间的相关性,删除相似性高的冗余特征,形成最优特征子集。
17.该方法利用特征权重选取重要性高的特征,利用皮尔森相关系数去除冗余特征,最终保留下的特征数目较少,且满足各方面优点,选择出的特征具有较高识别性以及低冗余性。
18.进一步优选的,步骤(1)的具体实现步骤包括:
19.a.设网络流量样本集合s,根据特征不同取值将样本集s划分为个k子集,表示为c1,c2,...,ck,遍历每个特征fi,计算特征在样本集中的信息量变化,即采用下列公式计算weight(s,fi):
20.weight(s,fi)=[1+h(fi)][h(s)-h(s|fi)]/h(fi)
ꢀꢀꢀ(i)[0021]
其中:h(s)是指网络流样本集s对分类的平均信息量,h(fi)是指将特征fi作为随机变量,求得的平均信息量,h(s|fi)是指样本集s对分类的评价信息量。
[0022]
h(s)、h(s|fi)的定义如式(ii)、(iii)所示:
[0023][0024][0025]
b.对第一步得出的特征权重进行排序;
[0026]
c.在排序后的特征集s三分之二处进行划分,删除后三分之一;
[0027]
进一步优选的,步骤(2)的具体实现步骤包括:
[0028]
①
将特征权重最高的特征f
max
添加至s
subset
;
[0029]
②
从集合s中删除f
max
;
[0030]
③
确定特征相关性阈值t;
[0031]
④
对特征子集s中的特征fi,计算其与s
subset
中每一个特征fj的相关度relevance(fi,fj),其中relevance(fi,fj)表示由特征fi和特征fj之间的相关性,由皮尔森相关系数来计算:
[0032][0033]
其中f
i,n
和f
j,n
分别是第n个特征子集的特征i和j的出现次数,和分别是fi和fj在特征集中出现次数的均值,当relevance(fi,fj)=1时则表示最大正相关,relevance(fi,fj)=-1时则表示最大负相关,其值介于-1和1之间;
[0034]
⑤
对于特征fi,若relevance(fi,fj)≤t,则将fi添加至s
subset
;
[0035]
⑥
重复
④‑⑤
直至遍历整个特征子集s;
[0036]
⑦
集合s
subset
即选择出的最佳特征子集。
[0037]
根据以上两步,得到最优特征子集,该特征子集能大幅度降低特征条数,且包括最具代表性的网络流量特征。
[0038]
本发明基于改进特征选择的网络流量分类方法,使用一种改进的特征选择方法,根据特征在样本集中的信息量变化计算特征权重,选取重要性高的特征,并使用皮尔森相关系数来计算特征之间的相关性,删除冗余特征。该方法避免了重要的特征不能被选择,去除了不相关以及冗余的特征,使得最终的特征子集具有更高的代表性、可识别性,从而提高分类精度和模型的综合性能。此外,特征的约减也大大降低了模型大小、系统计算量以及cpu利用率等。
附图说明
[0039]
图1为本发明基于改进特征选择的网络流量分类方法的流程示意图。
[0040]
图2为本发明卷积神经网络模型结构图。
[0041]
图3是真实数据训练出的分类模型上的真实数据的分类情况。
具体实施方式
[0042]
下面结合附图和具体实施例,进一步阐明本发明,应理解这些实例仅用于说明本发明而不用于限制本发明的范围。
[0043]
一种基于改进特征选择的网络流量分类方法,包括以下步骤:
[0044]
步骤一:获取真实应用的网络流量数据并提取出流量特征,去除样本中存在空值或缺失值的实例以及非数值型数据;
[0045]
步骤二:采用改进的特征选择算法,去除不相关特征及冗余特征,得到最优特征子集;
[0046]
步骤三:将特征子集分为训练集和测试集,输入网络流量分类模型中进行训练;
[0047]
步骤四:将待检测的流量样本预处理后输入训练好的网络流量分类模型中,输出网络流量分类结果。
[0048]
本发明根据特征在样本集中的信息量变化计算特征权重,选取重要性高的特征,并使用皮尔森相关系数来计算特征之间的相关性,删除冗余特征,大幅度减少特征,提高分类精度和分类模型的综合性能。
[0049]
根据本发明优选的,改进的特征选择方法,根据特征在样本集中的信息量变化计算特征权重,选取重要性高的特征,并使用皮尔森相关系数来计算特征之间的相关性,删除冗余特征,实现全面特征选择,实现过程如下:
[0050]
(1)根据特征在网络流量样本集中的信息量变化计算特征权重,根据特征权重对网络流量样本集进行排序,保留样本集的前三分之二,形成特征子集;
[0051]
(2)遍历特征子集中的特征,使用皮尔森相关系数来计算特征之间的相关性,删除相似性高的冗余特征,形成最优特征子集。
[0052]
该方法利用特征权重选取重要性高的特征,利用皮尔森相关系数去除冗余特征,最终保留下的特征数目较少,且满足各方面优点,选择出的特征具有较高识别性以及低冗余性。
[0053]
进一步优选的,步骤(1)的具体实现步骤包括:
[0054]
a.设网络流量样本集合s,根据特征不同取值将样本集s划分为个k子集,表示为c1,c2,...,ck,遍历每个特征fi,计算特征在样本集中的信息量变化,即采用下列公式计算weight(s,fi):
[0055]
weight(s,fi)=[1+h(fi)][h(s)-h(s|fi)]/h(fi)
ꢀꢀ(i)[0056]
其中:h(s)是指网络流样本集s对分类的平均信息量,h(fi)是指将特征fi作为随机变量,求得的平均信息量,h(s|fi)是指样本集s对分类的评价信息量。h(s)、h(s|fi)的定义如式(ii)、(iii)所示:
[0057][0058][0059]
b.对第一步得出的特征权重进行排序;
[0060]
c.在排序后的特征集s三分之二处进行划分,删除后三分之一;
[0061]
进一步优选的,步骤(2)的具体实现步骤包括:
[0062]
⑧
将特征权重最高的特征f
max
添加至s
subset
;
[0063]
⑨
从集合s中删除f
max
;
[0064]
⑩
确定特征相关性阈值t;
[0065]
11对特征子集s中的特征fi,计算其与s
subse
t中每一个特征fj的相关度relevance(fi,fj),其中relevance(fi,fj)表示由特征fi和特征fj之间的相关性,由皮尔森相关系数来计算:
[0066][0067]
其中f
i,n
和f
j,n
分别是第n个特征子集的特征i和j的出现次数,和分别是fi和fj在特征集中出现次数的均值,当relevance(fi,fj)=1时则表示最大正相关,relevance(fi,fj)=-1时则表示最大负相关,其值介于-1和1之间;
[0068]
12对于特征fi,若relevance(fi,fj)≤t,则将fi添加至s
subset
;
[0069]
13重复
④‑⑤
直至遍历整个特征子集s;
[0070]
14集合s
subset
即选择出的最佳特征子集。
[0071]
根据以上两步,得到最优特征子集,该特征子集能大幅度降低特征条数,且包括最具代表性的网络流量特征。
[0072]
进一步优选的,将特征子集输入到卷积神经网络中进行训练。卷积神经网络如图2所示,共由四个卷积层、两个最大池化层、一个扁平层和两个全连接层构成,卷积层的激活函数为relu;全连接层的激活函数为softmax用于分类。
[0073]
为了证明该方法生成的数据是具有真实应用特征的,我们对cicids2017数据集进行预处理,形成一个包含9种流量类型(ddos、portscan、ftp-patator、ssh-patator、dos slowloris、dos slowhttptest、dos hulk、dos goldeneye、others)的数据集。对新的数据集进行改进的特征选择,将相关性阈值设为0.7,得到最优特征子集,特征编号为53,41,19,7,64,5,42,2,24,43,40,16,37,17,56,35,22,54,9,21,15,18,38,13,55,36,6,66,1,67,23,11,68,10,29,27,14,26,4。在卷积神经网络上使用最优特征子集进行分类实验,图3是使用cicids2017数据集训练出的分类模型上的真实数据的分类情况(9种流量类型为例)。
如图3所示,该方法能够在大幅度减少特征的同时具有较高的识别率。
[0074]
本发明基于改进特征选择的网络流量分类方法,该方法使用改进的特征选择方法,根据特征在样本集中的信息量变化计算特征权重,选取重要性高的特征,并使用皮尔森相关系数来计算特征之间的相关性,删除冗余特征。该方法避免了重要的特征不能被选择,去除了不相关以及冗余的特征,使得最终的特征子集具有更高的代表性、可识别性,从而提高分类精度和模型的综合性能。本方法适用于所有基于深度学习的网络流量分类场景中不相关或冗余特征过多导致识别率低、效率不高的场景。
[0075]
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
技术特征:
1.一种基于改进特征选择的网络流量分类方法,其特征在于,包括步骤如下:步骤一:获取真实应用的网络流量数据并提取出流量特征,去除样本中存在空值或缺失值的实例以及非数值型数据;步骤二:采用改进的特征选择算法,去除不相关特征及冗余特征,得到最优特征子集;步骤三:将特征子集分为训练集和测试集,输入网络流量分类模型中进行训练;步骤四:将待检测的流量样本预处理后输入训练好的网络流量分类模型中,输出网络流量分类结果。2.根据权利要求1所述的一种基于改进特征选择的网络流量分类方法,其特征在于,所述步骤二具体包括:(1)根据特征在网络流量样本集中的信息量变化计算特征权重,根据特征权重对网络流量样本集进行排序,保留样本集的前三分之二,形成特征子集;(2)遍历特征子集中的特征,使用皮尔森相关系数来计算特征之间的相关性,删除相似性高的冗余特征,形成最优特征子集。3.根据权利要求2所述的一种基于改进特征选择的网络流量分类方法,其特征在于,步骤(1)的具体步骤包括:a.设网络流量样本集合s,根据特征不同取值将样本集s划分为个k子集,表示为c1,c2,...,ck,遍历每个特征f
i
,计算特征在样本集中的信息量变化,即采用下列公式计算weight(s,fi):weight(s,fi)=[1+h(fi)][h(s)-h(s|fi)]/h(fi)
ꢀꢀ
(i)其中:h(s)是指网络流样本集s对分类的平均信息量,h(f
i
)是指将特征f
i
作为随机变量,求得的平均信息量,h(s|fi)是指样本集s对分类的评价信息量。h(s)、h(s|fi)的定义如式(ii)、(iii)所示:h(s)、h(s|fi)的定义如式(ii)、(iii)所示:b.对第一步得出的特征权重进行排序;c.在排序后的特征集s三分之二处进行划分,删除后三分之一。4.根据权利要求2所述的一种基于改进特征选择的网络流量分类方法,其特征在于,所述步骤(2)具体包括:
①
将特征权重最高的特征f
max
添加至s
subset
;
②
从集合s中删除f
max
;
③
确定特征相关性阈值t;
④
对特征子集s中的特征f
i
,计算其与s
subset
中每一个特征f
j
的相关度relevance(f
i
,f
j
),其中relevance(f
i
,f
j
)表示由特征f
i
和特征f
j
之间的相关性,由皮尔森相关系数来计算:其中f
i,n
和f
j,n
分别是第n个特征子集的特征i和j的出现次数,和分别是f
i
和f
j
在特征集中出现次数的均值,当relevance(f
i
,f
j
)=1时则表示最大正相关,relevance(f
i
,f
j
)
=-1时则表示最大负相关,其值介于-1和1之间;
⑤
对于特征f
i
,若relevance(f
i
,f
j
)≤t,则将f
i
添加至s
subset
;
⑥
重复
④‑⑤
直至遍历整个特征子集s;
⑦
集合s
subset
即选择出的最佳特征子集。
技术总结
本发明基于改进特征选择的网络流量分类方法,该方法使用改进的特征选择方法,根据特征在样本集中的信息量变化计算特征权重,选取重要性高的特征,并使用皮尔森相关系数来计算特征之间的相关性,删除冗余特征。该方法避免了重要的特征不能被选择,去除了不相关以及冗余的特征,使得最终的特征子集具有更高的代表性、可识别性,从而提高分类精度和模型的综合性能。本方法适用于所有基于深度学习的网络流量分类场景中不相关或冗余特征过多导致识别率低、效率不高的场景。效率不高的场景。效率不高的场景。
技术研发人员:王攀 曹梦婷
受保护的技术使用者:南京邮电大学
技术研发日:2022.02.10
技术公布日:2023/8/23
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/