1、现代计算机Modern Computer第 29 卷 第 14 期2023 年 7 月 25 日基于改进随机森林算法的防火墙日志异常检测并行化方法刘成,王佳斌*,洪继炜(华侨大学工学院,泉州 362021)摘要:随机森林分类算法在产生决策树以及投票流程中各个决策树的分类准确度各不相同,由此带来的问题是少部分决策树会影响随机森林算法的整体分类性能。除此以外,数据集中的不平衡数据也能影响到决策树的分类精度。针对以上缺点,对Bootstrap抽样方法添加约束条件,以降低非平衡数据对生成决策树的影响;以及利用袋外数据(Out-of-Bagging)和非平衡系数对生成的决策树进行评估加权。试验结果表明,
2、所提算法改善了随机森林对不平衡数据的分类精度。关键词:Spark;随机森林算法;入侵检测;日志异常检测文章编号:10071423(2023)14006604DOI:10.3969/j.issn.10071423.2023.14.013收稿日期:20221229修稿日期:20230626作者简介:刘成(1999),男,安徽马鞍山人,硕士研究生,研究方向为分布式、异常检测;*通信作者:王佳斌(1974),男,福建泉州人,副教授,主要从事物联网、云计算、大数据、智能仪器的研究,Email:;洪继炜(1996),男,福建泉州人,硕士研究生,研究方向为分布式、推荐系统及其应用0引言在现今的大数据时代,网
3、络在人们生活中不可或缺。随着互联网的用户量和规模不断增长,网络流量也呈现出井喷式的增长,网络安全问题也变得越值得重视,如何保障网民的合法利益也变得越来越重要。因此,如何对大规模的网络流量进行异常检测并分类,是非常值得研究的课题。近年来,许多国内外学者开始使用机器学习的方法来解决网络入侵流量异常检测和分类情景中所面临的问题1。Erman 等2提出使 用 Kmeans 算法对单向流信息进行分类。Moore等3改进了用于网络流分类的传统朴素贝叶斯算法,但该算法需要稳定的数据集,不适用于高速和不稳定的网络。雍凯4提出了决策树属性的权重评估,生成决策树时,通过优先选取权重较高的属性来提升单个决策树的分类
4、性能。徐鹏等5提出利用训练数据的信息熵构建决策树分类方法,但该算法难以应用于高维样本。目前,国内外对网络流量异常检测与分类大多是在单机环境下进行研究,有限的资源难以胜任大数据时代下的大规模流量异常检测任务。针对以上不足,本文提出了一种基于Spark平台的改进随机森林算法,对生成决策树的Bootstrap 抽样方法添加约束条件,降低非平衡数据对生成决策树的影响;同时,利用不平衡度和袋外数据对决策树进行加权,提高随机森林算法整体的分类准确率。1相关技术及方法1 1.1 1随机森林及随机森林及BootstrapBootstrap抽样介绍抽样介绍随机森林是一种由Breiman6 提出的集成学习分类算法
5、,该算法利用若干个决策树来对样本进行学习和预测,随机森林算法的分类原理为:步骤1:在样本集中用Bootstrap采样并有放回地抽取m个样本,产生一个新生成的子集,并在新生成的子集中选取所有特征中的s个特征,作为决策树的分离节点;步骤2:重复步骤1,直到得到n个决策树组成随机森林;步骤3:将预测数据交给上一步骤中产生的 66刘成等:基于改进随机森林算法的防火墙日志异常检测并行化方法第14期随机森林中的每棵决策树进行预测,统计各个决策树的预测结果,最多决策树预测出的类别就是随机森林的分类结果。1 1.2 2抽样子集的不平衡度划分抽样子集的不平衡度划分随机森林算法使用的 Bootstrap 重抽样方
6、法每次抽取总体的三分之二作为一个训练样本,不断地重复这一个抽取动作,以期望用一系列大小为原训练样本三分之二的训练样本搭建出一个空间,通过这个空间来无限接近总体。对于抽样子集的不平衡度定义如下:假设数据集中的样本数为|D=M。S=(xi,yi),i=1,2,m,公式中xi满足xi X,X是维度为n的空间,X=f1,f2,fn,且yi Y,Y是样本的特征值,Y=1,C。定义数据集的不平衡系数为B:B=|SmaxSmin(1)其中:Smax和Smin分别为数据集的多数类样本和少数类样本,满足Smax Smin=S 且Smax Smin=。从这个角度可以把抽样得到的子集分为以下三种:子集不平衡系数B小
7、于原数据集不平衡系数B。子集不平衡系数B大于原数据集不平衡系数B。抽样子集中无少数类样本,即Smin不存在,子集不平衡系数B无法计算。以上三种情况在随机森林随机抽样中都会出现,其中和情况所得的抽样子集只会加重样本的不平衡性,通过这些抽样子集训练得到的决策树会干扰最终的投票效果。2基于Spark的改进随机森林算法及其并行化2 2.1 1基于约束条件的基于约束条件的BootstrapBootstrap重抽样重抽样针对以上的决策树子集不平衡问题,设计了一种基于约束条件的重抽样 Bootstrap 算法。改进后的Bootstrap抽样会过滤掉不平衡系数B较大的子集,进而使不平衡数据集对生成的决策树产生
8、的影响降低。基于约束条件改进后的Bootstrap重抽样流程如下:步骤1:利用Bootstrap抽样从数据集D中抽取三分之二的数据样本;步骤2:计算所抽取的数据子集的数据非平衡度B,并添加约束条件为数据子集的非平衡度小于或等于原数据集的非平衡度:B()i=|DmaxDmin B(2)其中:Dmax为抽样得到的数据子集中的多数类数据,Dmin为抽样得到的数据子集中的少数类数据;步骤3:若Bootstrap抽样得出的数据子集满足约束条件,则可利用该数据子集来构造决策树。2 2.2 2改进随机森林算法的并行化建模改进随机森林算法的并行化建模但在训练不平衡数据时,随机森林的精度和性能下降一直是该算法的
9、应用局限性,本文提出了一种基于袋外数据和非平衡系数的加权随机森林算法。文献 7 研究了贝叶斯公式,得出了评估各个分类器性能的公式,将其中的con(i)用袋外数据的F1值代替,得出的加权公式为WOOB(i)=2N-1F1(i)j=1t1F1(j)(3)其中:N为决策树分类器的数;F1(i)为第i个决策树分类器的袋外数据的F1值;WOOB(i)表示根据袋外数据所求得的第i个决策树分类器的权值。同时,将得出的各个数据子集的非平衡度B(i)作为权值的另一个要素:Weight(i)=WOOB(i)B(i)=2N-1F1(i)j=1t1F1(j)|DmaxDmin(4)综上所述,改进随机森林算法主要分为以
10、下步骤:(1)随机Bootstrap抽样获取样本特征,计算不平衡度是否满足构建决策树的条件;(2)利用Bagging抽样构建决策树;(3)通过每棵决策树的袋外数据预测该决策树的F1值;(4)利用分类器性能评价公式对各个决策树进行加权,并耦合成完整的并行化加权随机森林模型。67现代计算机2023年3实验3 3.1 1实验环境实验环境及数据集及数据集本文的实验环境由 Windows11 平台上 Vmware Workstation 安装的三台虚拟机组成,其中一台作为 Master,两台作为 Worker,系统为CentOS,Spark 版 本 为 2.4.4,Hadoop 版 本 为2.7.1,使
11、用的开发语言为Scala 2.13。本文采用的数据集是加拿大通信安全机构和加拿大网络安全研究所发布的 CICIDS2018网络入侵检测数据集,数据集提供的流量模拟真实网络流量。CICIDS2018数据集中包括多种不同的攻击场景,攻击包含Brute Force FTP,Brute Force SSH,DoS,Heartbleed(OpenSSL 缺陷),Web Attack,Infiltration(渗透),Botnet(僵尸网络)和DDos。3 3.2 2评价标准评价标准在分类任务中,一般使用精确率、召回率以及F1作为评价指标。为了便于介绍,用混淆矩阵来表示:TP表示实际与判定都为正类的样本;
12、FP表示实际为负类,但被错误判定为正类的样本;FN表示实际为正类,但被预测为负类的样本;TN表示实际与判定结果都为负类的样本。表 1混淆矩阵被判定属于正类的样本被判定不属于正类的样本真实属于正类的样本TPFN真实不属于正类的样本FPTN精确率的数学公式为Precision=TPTP+FP(5)召回率的数学公式为Recall=TPTP+FN(6)F1综合考虑了召回率和精确率,公式为F1=2 Precision RecallPrecision+Recall(7)3 3.3 3实验结果实验结果由表2可以看出,文中改进的随机森林算法在对 CICIDS2018 的分类上要优于传统 RF 算法。综合来看,
13、本文提出的改进随机森林算法利用了决策树的袋外数据和子数据集的不平衡系数,并通过加权来代替随机森林中相同权重的决策树投票,有效减少了随机森林中劣质树的干扰。表2文中算法与传统随机森林算法以及AUC值直接作为权重加权的随机森林算法比较方法改进随机森林传统随机森林准确率/%97.2895.53召回率/%97.1395.37F1/%97.2195.45此外,得益于Spark分布式平台的特性,算法的运行时间大幅度缩短,这是因为Spark将文件读取进了内存,减少了对硬盘的频繁 I/O 操作。以下为算法在Spark分布式平台上与单机平台上的运行时间对比。不同平台下算法运行时间对比Python算法300020
14、0010000丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁丁万万万万万万万万万万万万万万万万万万万万万万万万万万万万万万万万万万万万万万万万万万万万万万万万万万万万万万SparkRF加权的随机森林 文中改进的随机森林丁丁丁丁丁丁丁丁万万万万万万万万运行时间/s图 2不同平台下各算法运行时间对比开始数据集RDD数据子集是否满足()袋外数据F1数据子集非平衡度()决策树模型1决策树模型n随机森林模型tree1,W1.treen,Wn否是.Bagging抽样组合并加权
15、图 1改进的随机森林算法建模 68刘成等:基于改进随机森林算法的防火墙日志异常检测并行化方法第14期4结语本文提出一种基于Spark的改进随机森林算法,先根据数据子集的不平衡度对决策树的生成过程施加约束,来改善随机森林分类算法对不平衡数据集条件下的适用性。接着采用加权投票的方式减少了随机森林中劣质树的干扰,提高随机森林算法的分类精度。实验结果表明,文中的改进随机森林算法在 CICIDS2018数据集上的分类精度比传统随机森林算法更胜一筹。在以后的研究中,考虑将文中算法与分层抽样相结合,来进一步改善数据子集与原数据集样本类别的一致性。参考文献:1 NGUYEN T T T,ARMITAGE G.
16、A survey of techniques for internet traffic classification using machinelearning J.IEEE Communications Surveys&Tutorials,2009,10(4):5676.2 ERMAN J,MAHANTI A,ARLITT M,et al.Identifyinganddiscriminatingbetweenwebandpeertopeer traffic in the network coreCProceedings of the International Conference on W
17、orldWide Web,New York,NY,USA,2007:883892.3 MOORE A W,ZUEV D.Internet traffic classification using Bayesian analysis techniques J.ACM Sigmetrics Performance Evaluation Review,2005,33(1):5060.4 雍凯.随机森林的特征选择和模型优化算法研究D.哈尔滨:哈尔滨工业大学,2008.5 徐鹏,林森.基于C4.5决策树的流量分类方法 J.软件学报,2009,20(10):26922704.6 BREIMANL.Bagg
18、ingpredictors J.MachineLearning,1996,24(2):123140.7 BREIMAN L.Random forestsJ.Machine Learning,2001,45(1):532.Parallel implementation method of firewall log anomaly detection based onimproved random forestLiu Cheng,Wang Jiabin*,Hong Jiwei(College of Engineering,Huaqiao university,Quanzhou 362021,Chi
19、na)Abstract:The classification accuracy of the random forest classification algorithm is different in the decision tree generationand voting process.The problem is that a small number of decision trees will affect the overall classification performance of the random forest algorithm.In addition,the
20、unbalanced data in the dataset can also affect the classification accuracy of the decision tree.In view of the above shortcomings,add constraints to the Bootstrap sampling method to reduce the impact of unbalanced data on thegeneration of decision trees;And use out of bag data(Out of Bagging)and unbalanced coefficients to evaluate and weight the generated decision tree.The experimental results show that the proposed algorithm improves the classification accuracy of random forests for unbalanced data.Keywords:spark;random forest;intrusion detection;log anomaly detection 69