论文部分内容阅读
近年来,网络技术的发展使得互联网的体量呈爆发式得增长。随着网络服务越来越多,网络安全问题也越来越得到人们的关注。从上世纪80年代开始,为了应对网络威胁,网络安全技术就已经开始投入了研究。许多经典的网络安全机制如数字签名、网络加密层、访问控制列表技术以及防火墙技术等等,在过去网络变化较少的情况下能够达到不错的网络安全保障效果。但是在现在的网络环境中,频繁的网络状态变化已经使得以上这些静态防护措施的效果变得越来越差,因此引入了入侵检测系统。入侵检测系统与传统的网络安全技术不同,从性能表现上来看,入侵检测系统能降低整体的误报率。对未知的攻击来说,入侵检测系统能够快速做出反应,主动学习新的威胁特征,保证了漏报率的降低。入侵检测系统中最重要的部分是检测分析所采用的方法。近年来,机器学习技术得到了长足的发展,因此本文从决策树算法开始引入,对该类机器学习算法的原理展开叙述。同时阐述了机器学习算法中决策树算法应用于入侵检测系统的优势并简单评估了算法的性能表现。之后在决策树算法的基础上,引入了最新的XGBoost算法。与基础的决策树算法相比,XGBoost算法在正则化优化方面引入了L1正则化与L2正则化,并在代价函数中加入了正则项,以控制整个模型的复杂度,防止过拟合现象的产生。从代价函数的角度来看,梯度提升树算法只使用了一阶导数,而XGBoost算法对其进行了泰勒展开,利用了其中的二阶导数项。XGBoost算法作为提升树算法的一种,降低了每次迭代所产生的决策树的权重,这个方法可以有效得降低每棵树对于整体模型的影响,在之后的训练中产生的决策树有更大的学习空间。同时,XGBoost算法借鉴了随机森林中的列采样技术,在降低计算量的同时对过拟合现象也有抑制的效果。作为一个优化的提升树算法,XGBoost算法不仅从准确度上得到了极大的提升,更重要的是其对工程进行了优化,采取了并行运算的方式提升了速度。当使用XGBoost模型进行训练时,模型会提供特征粒度上的并行训练。首先先对特征数据进行排序,再通过分布式原理分配到不同的节点上进行运算,这样可以大大提高整体的效率。本文最后提供了一个在网络数据集KDD Cup 99上最佳的XGBoost模型并评估了其性能。