发明内容
本发明的目的是提供一种基于集成学习的边缘计算网络攻击识别方法及系统,能够在保证边缘计算网络攻击识别效率的同时,提高识别的准确率和泛化能力。
为实现上述目的,本发明提供了如下方案:
一种基于集成学习的边缘计算网络攻击识别方法,包括:
获取边缘计算网络的待识别数据流;
将所述待识别数据流输入到数据流类别识别模型中,确定所述待识别数据流是否为攻击数据;所述数据流类别识别模型是利用预处理后的网络流量数据集,对二分随机森林模型进行训练得到的;
将识别结果为攻击数据的待识别数据流输入到攻击类别识别模型中,得到待识别数据流的攻击类别;所述攻击类别识别模型是利用预处理后的网络流量数据集,对多分随机森林模型进行训练得到的。
可选的,在所述获取边缘计算网络的待识别数据流之前,还包括:
获取网络流量数据集;网络流量数据集包括多个历史数据流;每个历史数据流包括多种特征的特征值;不同历史数据流对应的多个特征相同;
对所述网络流量数据集进行预处理,得到预处理后的网络流量数据集;
根据预处理后的网络流量数据集构建抽样数据集;
利用随机森林模型对所述抽样数据集进行预训练,得到影响分类结果的多个优化特征;
删除抽样数据集内每个历史数据流中除所述优化特征外的特征值,得到优化数据集;
以所述优化数据集为输入,以所述优化数据集中每个数据流是否为攻击数据为输出,对二分随机森林模型进行训练,得到数据流类别识别模型。
可选的,所述网络流量数据集为CICIDS2017网络流量数据集。
可选的,在所述获取边缘计算网络的待识别数据流之前,还包括:
以所述优化数据集中的攻击数据为输入,以攻击数据的攻击类别为输出,对多分随机森林模型进行训练,得到攻击类别识别模型。
可选的,所述对所述网络流量数据集进行预处理,得到预处理后的网络流量数据集,具体包括:
将网络流量数据集中的历史数据流统一为UTF-8数据,得到统一编码数据集;
删除统一编码数据集中的冗余数据,得到简化数据集;
确定任一特征为当前特征;
计算网络流量数据集中当前特征的特征值均值;
确定简化数据集中任一历史数据流为当前历史数据流;
确定当前历史数据流中当前特征的特征值是否为Nan或Inf,确定第一判断结果;
若第一判断结果为是,则将当前特征的特征值均值作为当前历史数据流中当前特征的特征值;
若第一判断结果为否,则更新当前历史数据流并返回步骤“确定当前历史数据流中当前特征的特征值是否为Nan或Inf,确定第一判断结果”;
历遍简化数据集中所有历史数据流,更新所述当前特征并返回步骤“计算网络流量数据集中当前特征的特征值均值”;
历遍所有特征,得到预处理后的网络流量数据集。
可选的,在所述根据预处理后的网络流量数据集构建抽样数据集之后,还包括:
对抽样数据集进行标准化处理,得到标准化处理后的抽样数据集;
对标准化处理后的抽样数据集进行one-hot编码。
可选的,所述利用随机森林模型对所述抽样数据集进行预训练,得到影响分类结果的多个优化特征,包括:
将所述抽样数据集输入随机森林模型中进行预训练,确定每个特征的基尼不纯度;
根据所述基尼不纯度对所述特征进行降序排列;
确定前预设个数个特征为第0级初始优化特征;
删除抽样数据集内每个历史数据流中除所述第0级初始优化特征外的特征值,得到第0级优化数据集;
将所述第0级优化数据集输入对随机森林模型中进行第0级训练,确定第0级训练时的准确率;
令迭代次数i=1;
令预设个数的数值增加1;
确定前预设个数个特征为第i级初始优化特征;
删除抽样数据集内每个历史数据流中除所述第i级初始优化特征外的特征值,得到第i级优化数据集;
将所述第i级优化数据集输入对随机森林模型中进行第i级训练,确定第i级训练时的准确率;
判断所述第i级训练时的准确率是否有大于第i-1级训练时的准确率,得到第二判断结果;
若所述第二判断结果为是,则令i的数值增加1并返回步骤“令预设个数的数值增加1”;
若所述第二判断结果为否,确定第i-1级初始优化特征为影响分类结果的多个优化特征。
一种基于集成学习的边缘计算网络攻击识别系统,包括:
待识别数据流获取模块,用于获取边缘计算网络的待识别数据流;
攻击数据识别模块,用于将所述待识别数据流输入到数据流类别识别模型中,确定所述待识别数据流是否为攻击数据;所述数据流类别识别模型是利用预处理后的网络流量数据集,对二分随机森林模型进行训练得到的;
攻击类别识别模块,用于将识别结果为攻击数据的待识别数据流输入到攻击类别识别模型中,得到待识别数据流的攻击类别;所述攻击类别识别模型是利用预处理后的网络流量数据集,对多分随机森林模型进行训练得到的。
可选的,所述系统还包括:
网络流量数据集获取模块,用于获取网络流量数据集;网络流量数据集包括多个历史数据流;每个历史数据流包括多种特征的特征值;不同历史数据流对应的多个特征相同;
预处理模块,用于对所述网络流量数据集进行预处理,得到预处理后的网络流量数据集;
抽样数据集构建模块,用于根据预处理后的网络流量数据集构建抽样数据集;
优化特征确定模块,用于利用随机森林模型对所述抽样数据集进行预训练,得到影响分类结果的多个优化特征;
优化数据集确定模块,用于删除抽样数据集内每个历史数据流中除所述优化特征外的特征值,得到优化数据集;
数据流类别识别模型确定模块,用于以所述优化数据集为输入,以所述优化数据集中每个数据流是否为攻击数据为输出,对二分随机森林模型进行训练,得到数据流类别识别模型。
可选的,所述系统还包括:
攻击类别识别模型确定模块,用于以所述优化数据集中的攻击数据为输入,以攻击数据的攻击类别为输出,对多分随机森林模型进行训练,得到攻击类别识别模型。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明提供了一种基于集成学习的边缘计算网络攻击识别方法及系统,方法获取边缘计算网络的待识别数据流;将待识别数据流输入到数据流类别识别模型中,确定待识别数据流是否为攻击数据;将识别结果为攻击数据的待识别数据流输入到攻击类别识别模型中,得到待识别数据流的攻击类别。本发明对网络流量数据集进行预处理和简化处理,进而得到数据流类别识别模型和攻击类别识别模型在保证边缘计算网络攻击识别效率的同时,提高了识别的准确率和泛化能力。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种基于集成学习的边缘计算网络攻击识别方法及系统,能够在保证边缘计算网络攻击识别效率的同时,提高识别的准确率和泛化能力。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图1,本发明提供了一种基于集成学习的边缘计算网络攻击识别方法,包括:
获取边缘计算网络的待识别数据流;
将待识别数据流输入到数据流类别识别模型中,确定待识别数据流是否为攻击数据;数据流类别识别模型是利用预处理后的网络流量数据集,对二分随机森林模型进行训练得到的;
将识别结果为攻击数据的待识别数据流输入到攻击类别识别模型中,得到待识别数据流的攻击类别;攻击类别识别模型是利用预处理后的网络流量数据集,对多分随机森林模型进行训练得到的,多分随机森林模型如图2。
本发明提供的基于集成学习的边缘计算网络攻击识别方法,在获取边缘计算网络的待识别数据流之前,还包括:
获取网络流量数据集;网络流量数据集包括多个历史数据流;每个历史数据流包括多种特征的特征值;不同历史数据流对应的多个特征相同;网络流量数据集为CICIDS2017网络流量数据集。
对网络流量数据集进行预处理,得到预处理后的网络流量数据集;
根据预处理后的网络流量数据集构建抽样数据集,具体包括:对网络流量数据集进行类不平衡处理,利用随机抽样法对数据集中的多数类进行抽样,利用SMOTE(SyntheticMinority Oversampling Technique,合成少数类过采样技术)技术对数据集中的少数类进行样本合成,得到相对平衡的抽样数据集。
利用随机森林模型对抽样数据集进行预训练,得到影响分类结果的多个优化特征;
删除抽样数据集内每个历史数据流中除优化特征外的特征值,得到优化数据集;
以优化数据集为输入,以优化数据集中每个数据流是否为攻击数据为输出,对二分随机森林模型进行训练,得到数据流类别识别模型。
以优化数据集中的攻击数据为输入,以攻击数据的攻击类别为输出,对多分随机森林模型进行训练,得到攻击类别识别模型。
其中,对网络流量数据集进行预处理,得到预处理后的网络流量数据集,具体包括:
将网络流量数据集中的历史数据流统一为UTF-8数据,得到统一编码数据集;
删除统一编码数据集中的冗余数据,得到简化数据集;
确定任一特征为当前特征;
计算网络流量数据集中当前特征的特征值均值;
确定简化数据集中任一历史数据流为当前历史数据流;
确定当前历史数据流中当前特征的特征值是否为Nan或Inf,确定第一判断结果;
若第一判断结果为是,则将当前特征的特征值均值作为当前历史数据流中当前特征的特征值;
若第一判断结果为否,则更新当前历史数据流并返回步骤“确定当前历史数据流中当前特征的特征值是否为Nan或Inf,确定第一判断结果”;
历遍简化数据集中所有历史数据流,更新当前特征并返回步骤“计算网络流量数据集中当前特征的特征值均值”;
历遍所有特征,得到预处理后的网络流量数据集。
本发明提供的基于集成学习的边缘计算网络攻击识别方法,在根据预处理后的网络流量数据集构建抽样数据集之后,还包括:
对抽样数据集进行标准化处理,得到标准化处理后的抽样数据集;
对标准化处理后的抽样数据集进行one-hot编码。
具体的,利用随机森林模型对抽样数据集进行预训练,得到影响分类结果的多个优化特征,包括:
将抽样数据集输入随机森林模型中进行预训练,确定每个特征的基尼不纯度;
根据基尼不纯度对特征进行降序排列;
确定前预设个数个特征为第0级初始优化特征;
删除抽样数据集内每个历史数据流中除第0级初始优化特征外的特征值,得到第0级优化数据集;
将第0级优化数据集输入对随机森林模型中进行第0级训练,确定第0级训练时的准确率;
令迭代次数i=1;
令预设个数的数值增加1;
确定前预设个数个特征为第i级初始优化特征;
删除抽样数据集内每个历史数据流中除第i级初始优化特征外的特征值,得到第i级优化数据集;
将第i级优化数据集输入对随机森林模型中进行第i级训练,确定第i级训练时的准确率;
判断第i级训练时的准确率是否有大于第i-1级训练时的准确率,得到第二判断结果;
若第二判断结果为是,则令i的数值增加1并返回步骤“令预设个数的数值增加1”;
若第二判断结果为否,确定第i-1级初始优化特征为影响分类结果的多个优化特征。
下面,对本发明进行进一步说明:
步骤1将网络流量数据集处理成符合模型训练要求的数据集。
(1-1)读取全部数据,合并成一个数据集(DataSet);
(1-2)替换数据集中非法字符,删除数据集中冗余数据,删除数据集中全“0”数据,用均值替换数据集中值为“Nan”的记录值,用均值替换数据集中值为“Inf”的值,均值计算公式为:
其中Cj表示缺失值,Fi.Cj表示第i条数据流的第j个特征值,m表示数据流数量;n表示特征种类数量。
(1-3)采用随机抽样法对记录数量过多的网络流量类别进行抽样,抽样公式为:
其中,Pnew为选出的样本,Number表示需要筛选出的样本数量,F.sample(m)表示从样本中随机抽样m条数据流F。
采用SMOTE技术对记录数量过少的网络流量类别进行样本合成,合成少数类样本的公式为:
Fnnew=Fi+ξ*{Fi(n)-Fi} (3)
其中,Fnnew为合成的新流量记录,Fi为任意一个样本,Fi(n)为Fi的任一邻居样本,ξ为0到1之间的一个随机数。
(1-4)采用min-max标准化法对数据集中网络流量进行标准化,公式为:
其中Cjnew为标准化后的值,Cj是第j个属性(特征)标准化前的原始值,Cjmax和Cjmin分别是每个属性的最大值。
(1-5)对数据集进行one-hot编码;
(1-6)将数据集划分为训练集(TrainSet)、测试集(TestSet)和验证集(ValiSet)。
步骤2:从预处理后的训练集(TrainSet)中选出特征值,用于模型训练。
(2-1)使用随机森林模型对训练集(TrainSet)进行预训练,计算出各属性对分类结果影响的基尼不纯度,计算公式为:
数据集S中共有m种不同类型的流量数据,每条流量数据F属于第j类流量类型的概率为Pj,则数据集S的基尼不纯度定义为:
其中,impurity(S)表示预处理后的训练集基尼不纯度;对于数据集S,根据特征A是否取可能值a,将数据集S左训练集Sleft和右训练集Sright两个部分,因此,数据集S在特征A取值为a的条件下的基尼不纯度为:
Impurity(S,A)表示训练集S在特征A的条件下的基尼不纯度,|S|表示预处理后的训练集的样本数量;|Sleft|表示左训练集的样本数量;Impurity(Sleft)表示左训练集的基尼不纯度;|Sright|表示右训练集的样本数量;Impurity(Sright)表示右训练集的基尼不纯度。
(2-2)依据基尼不纯度对各属性进行非递增排序,选取前K个基尼不纯度值最大的属性进行再训练,K值不断递增;
(2-3)直到训练后的模型得分不再随K值的增加而增加,选出模型得分最高且数量最少的属性,作为特征值;
步骤3将选出特征值的训练集传入模型进行训练。
(3-1)将选出特征值的训练集(TrainSetWithFeature)传入二分随机森林模型进行二分类训练;
(3-2)采用二分网格搜索调参法对训练后的二分随机森林模型进行超参数优化,采用10折交叉验证法验证模型稳定性;
(3-3)结合搜索出的最优超参数,构建最优二分随机森林模型,对选出特征值的训练集(TrainSetWithFeature)进行二分类;
(3-4)将被正确分类为攻击流量的数据(TrainSetCorAtt)传入多分随机森林进行多分类训练;
(3-5)采用二分网格搜索调参法对训练后的多分随机森林模型进行超参数优化,采用10折交叉验证法验证模型稳定性;
(3-6)结合搜索出的最优超参数,构建最优多分随机森林模型,对攻击流量数据集(TrainSetCorAtt)进行多分类;
(3-7)将最优二分随机森林模型与最优多分随机森林模型集成,构建出强集成模型并导出。
步骤4:将测试集传入训练好的强集成学习模型,根据模式对测试集分类结果的准确率、精确率、召回率、f1值以及检测效率5个方面对模型进行评估。
相较于传统的单分类器流量检测分类方法,本发明所提出的一种基于集成学习的边缘计算网络攻击流量识别方法,采用由多个决策树组成的随机森林作为学习器,结合Bagging集成学习方法,将二分随机森林和多分随机森林集成,分类结果由两层随机森林中的若干决策树平权投票得出,因此,有效提高了模型的泛化能力。本发明提出了一种的数据预处理方法,去除数据集中的噪点数据,降低了噪点对模型训练的影响,结合随机抽样方法和SMOTE合成少数类样本技术,有效解决数据集不平衡问题、模型欠拟合和过拟合问题。本发明采用过滤式特征选择方法,结合基尼不纯度选取出能够保证最优分类结果且数量最少的属性做为特征值,有效降低模型复杂度,因此,有效提高了模型的检测效率。
另外,本发明采用合理的数据预处理方法、类不平衡处理方法、特征选择方法和Bagging集成学习方法,将二分随机森林分类器和多分随机森林分类器集成,结合二分网格搜索调参法构建出最优参数的强集成学习模型,结合10折交叉验证法验证最优参数模型的稳定性,有效提高了模型的检测准确率。
此外,本发明还提供了一种基于集成学习的边缘计算网络攻击识别系统,包括:
待识别数据流获取模块,用于获取边缘计算网络的待识别数据流;
攻击数据识别模块,用于将待识别数据流输入到数据流类别识别模型中,确定待识别数据流是否为攻击数据;数据流类别识别模型是利用预处理后的网络流量数据集,对二分随机森林模型进行训练得到的;
攻击类别识别模块,用于将识别结果为攻击数据的待识别数据流输入到攻击类别识别模型中,得到待识别数据流的攻击类别;攻击类别识别模型是利用预处理后的网络流量数据集,对多分随机森林模型进行训练得到的。
网络流量数据集获取模块,用于获取网络流量数据集;网络流量数据集包括多个历史数据流;每个历史数据流包括多种特征的特征值;不同历史数据流对应的多个特征相同;
预处理模块,用于对网络流量数据集进行预处理,得到预处理后的网络流量数据集;
抽样数据集构建模块,用于根据预处理后的网络流量数据集构建抽样数据集;
优化特征确定模块,用于利用随机森林模型对抽样数据集进行预训练,得到影响分类结果的多个优化特征;
优化数据集确定模块,用于删除抽样数据集内每个历史数据流中除优化特征外的特征值,得到优化数据集;
数据流类别识别模型确定模块,用于以优化数据集为输入,以优化数据集中每个数据流是否为攻击数据为输出,对二分随机森林模型进行训练,得到数据流类别识别模型。
攻击类别识别模型确定模块,用于以优化数据集中的攻击数据为输入,以攻击数据的攻击类别为输出,对多分随机森林模型进行训练,得到攻击类别识别模型。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。