«上一篇 下一篇»
  计算机工程  2019, Vol. 45 Issue (9): 194-197, 203  DOI: 10.19678/j.issn.1000-3428.0052044
0

引用本文  

杨晨, 梁意文, 谭成予, 等. 结合XGBoost的树突状细胞改进算法[J]. 计算机工程, 2019, 45(9), 194-197, 203. DOI: 10.19678/j.issn.1000-3428.0052044.
YANG Chen, LIANG Yiwen, TAN Chengyu, et al. Optimized Dendritic Cell Algorithm Combined with XGBoost[J]. Computer Engineering, 2019, 45(9), 194-197, 203. DOI: 10.19678/j.issn.1000-3428.0052044.

基金项目

国家自然科学基金面上项目"计算机免疫智能的连续应答机制及其应用研究"(6187705)

作者简介

杨晨(1995-), 女, 硕士研究生, 主研方向为计算机免疫 E-mail:aurorayc@163.com;
梁意文, 教授、博士;
谭成予,副教授、博士;
周雯,博士研究生

文章历史

收稿日期:2018-07-09
修回日期:2018-08-30
结合XGBoost的树突状细胞改进算法
杨晨 , 梁意文 , 谭成予 , 周雯     
武汉大学 计算机学院, 武汉 430072
摘要:树突状细胞算法(DCA)要求输入3类信号,需要通过人工选取或统计学等方式提前进行特征提取。为准确、高效地提取特征,提出一种基于XGBoost的DCA。通过使用XGBoost算法迭代生成决策树,根据决策树的特征节点对数据集的特征指标进行提取与分类,并作为DCA的信号输入以实现算法优化。使用KDD99数据集进行实验,结果表明,与基于粗糙集的改进算法相比,该算法的准确率更高,最高可达0.859 00。
关键词树突状细胞算法    XGBoost算法    决策树    特征提取    计算机免疫    
Optimized Dendritic Cell Algorithm Combined with XGBoost
YANG Chen , LIANG Yiwen , TAN Chengyu , ZHOU Wen     
School of Computer Science, Wuhan University, Wuhan 430072, China
Abstract: Dendritic Cell Algorithm(DCA) requires the input of 3 types of signals, which needs to extract features in advance through manual selection or statistics.To extract features accurately and efficiently, a DCA combined with XGBoost is proposed.The XGBoost algorithm is used to iteratively generate decision tree.According to the feature nodes of the decision tree, the characteristic indexes of the data set are extracted and classified, and used as the signal input of DCA to optimize the algorithm.Experiments are carried on KDD99 dataset, and the results show that the algorithm has higher accuracy than the improved algorithm based on rough set, which can reach up to 0.859 00.
Key words: Dendritic Cell Algorithm(DCA)    XGBoost algorithm    decision tree    feature extraction    computer immune    
0 概述

在过去的十年中, 人工免疫系统(Artificial Immune System, AIS)在分类、优化、检测等方面的应用十分广泛[1]。文献[2]根据免疫系统中树突状细胞(Dendritic Cell, DC)的行为特征及分化过程, 提出树突状细胞算法(Dendritic Cell Algorithm, DCA), 由于该算法无需训练过程且复杂度较低, 常被用于分类[3]、预测[4]、异常检测[5]等领域。

DCA要求输入病原相关分子模式(Pathogenic Associated Molecular Patterns, PAMPs)、危险信号(Danger Signals, DS)、安全信号(Safe Signals, SS)3种信号, 而信号的定义取决于检测对象的特征, 因此需要提前对入侵行为进行分析和特征提取[6]。常用的信号提取方式有3类。第1类是依赖人工经验指定信号, 该方式缺乏智能性且准确度较低。第2类是统计学方式, 如标准差过滤、主成分分析(Principal Component Analysis, PCA)等[7], 这类方式的效率较低, 只能处理线性数据, 如果数据集中存在稀疏数据, 其特征提取的准确度会受到较大影响。第3类是使用粗糙集进行属性约简[8], 虽然粗糙集支持稀疏数据的处理, 但算法复杂度高, 约简效率低[9], 在约简过程中易造成信息损失, 影响约简结果的精度[10]

XGBoost(eXtreme Gradient Boosting)是Gradient Boosting算法的一个优化版本。Gradient Boosting具有高效性和准确性, 常被应用于特征提取[11]。XGBoost对决策树的切分点查找算法进行优化, 改进其对稀疏数据的处理过程, 通过正则化和内置交叉验证解决Gradient Boosting的过拟合问题[12], 提高特征提取的准确度。该算法已被广泛应用于降维与特征提取[13]、分类[14]和行为预测[15]

本文提出一种改进的树突状细胞算法, 将XGBoost与DCA相结合, 使用XGBoost对Web服务器的指标进行特征提取, 并将提取结果作为DCA的信号输入, 从而对Web服务器进行网络入侵检测。

1 结合XGBoost的树突状细胞算法 1.1 树突状细胞算法

在计算机免疫中, DC接受PAMPs、DS、SS作为输入信号, 经过权值矩阵和相关函数变换以后, 输出协同刺激分子(Co-Stimulatory Molecules, CSM)、半成熟信号(semi)和成熟信号(mat)。当CSM达到迁移阈值时, DC会对semi和mat各自累加的结果进行比较, 并迁移到浓度较大的状态, 根据迁移结果将该DC采集到的所有抗原标记为semi或mat。用成熟环境抗原值(Mature Context Antigen Value, MCAV)计算代表抗原的异常程度, 具体过程如下:

$ MCAV = \frac{{抗原被标记为成熟环境抗原的次数}}{{抗原被标记的总次数}} $

MCAV值达到阈值时, DC将异常提交给T细胞进行免疫应答[16], 流程如图 1所示。

Download:
图 1 DCA流程
1.2 特征提取过程

XGBoost定义的学习目标函数如下:

$ Obj (\Theta ) = L(\Theta ) + \mathit{\Omega} (\Theta ) $

其中, $L = \sum\limits_{i = 1}^n l \left({{y_i}, {{\hat y}_i}} \right)$为损失函数, 一般使用方差损失或者逻辑损失来计算, Ω为惩罚函数, 通过正则化项约束模型的复杂度, 例如, L1正则(Lasso回归)或者L2正则(岭回归)。然后不断构建分类回归树(Classification And Regression Tree, CART), 通过枚举所有不同树结构的贪心法求出最优分割点, 使得树的预测模型的误差最小。在枚举过程中引入新叶子的惩罚项, 计算树的复杂度, 当引入的分割带来的增益小于阈值时, 剪掉此分割, 避免过拟合。通过不带权重地累加所有树的打分得到预测值[8]。根据生成的决策树, 获得每个节点的权重, 按照权重排名获取需要提取的特征。

2 实验设计 2.1 特征提取

本文采用KDD99数据集中10%的子集作为实验数据, 其数据可分为4类:TCP连接基本特征, TCP连接的内容特征, 基于时间的网络流量统计特征以及基于主机的网络流量统计特征。通过数据转化把其中的值为字符串的特征转化为数值表示, 例如, 将“tcp”映射成数值2, 将“udp”映射成数值3, 将“icmp”映射成数值4。由于XGBoost内置数据正则化, 并且对缺失值做了处理, 因此可直接使用XGBoost对映射后的数据集进行训练。

选取目标函数binary:logistic对数据集进行二分类。经过参数调优后选取的参数如表 1所示, 得出分类树与特征权重的排名。

下载CSV 表 1 参数选取列表
2.2 改进的DCA 2.2.1 信号定义

根据XGBoost的提取结果可以得出有显著影响的特征, 结合四轮迭代生成树的差异和皮尔森相关系数, 去除关联度高的特征, 并将信号分为3类, 即PAMPs、SS和DS。

PAMPs和SS是一对相反信号, 即同一信号输入不同值时, 该输入一定为PAMPs或SS, 因此该属性(属性集)能够敏感地反映系统的安全状况, 并进行异常感知[5]。如果选择在决策树中不会被剪枝的属性(属性集), 则表明此属性(属性集)对判定结果的影响较为明显。

DS的影响力相对较弱, 根据生成决策树中共有的特征选取决策树中被剪枝的属性, 说明这些属性会影响系统安全, 但影响程度相对较弱。

2.2.2 信号集和抗原向量的处理

将数据集中采集的一行数据作为抗原向量, DC接受PAMPs、DS、SS作为输入, 则权值W的取值情况如图 2所示。

Download:
图 2 数据信号权值矩阵

由输入信号得到输出信号的计算公式如下:

$ \begin{array}{*{20}{l}} {{C_{\left[ {{\rm{CSM, semi, mat }}} \right]}} = }\\ {\frac{{\left( {{W_{{\rm{PAMPs}}}} \times {C_{{\rm{PAMPs}}}}} \right) + \left( {{W_{{\rm{DS}}}} \times {C_{{\rm{DS}}}}} \right) + \left( {{W_{{\rm{SS}}}} \times {C_{{\rm{SS}}}}} \right)}}{{\left| {{W_{{\rm{PAMPs}}}}} \right| + \left| {{W_{{\rm{DS}}}}} \right| + \left| {{W_{{\rm{SS}}}}} \right|}}} \end{array} $

比较计算的CCSM与迁移阈值的大小, 判断当前DC是否成熟, 并对采集的抗原进行标记。然后使用MCAV值对抗原进行评价, 判断抗原是否异常。

3 实验结果与分析

在DCA应用于小样本集时, 其检测效果较明显, 本文从KDD99数据集10%的子集中随机抽取1 000条、5 000条、10 000条数据作为测试数据集的输入, 使用XGBoost和粗糙集进行特征提取。由于1 000条数据、5 000条数据的结果与10 000条数据的结果类似, 因此本文仅给出10 000条数据的结果, 如图 3~图 6所示。

Download:
图 3 10 000条数据的决策树1
Download:
图 4 10 000条数据的决策树2
Download:
图 5 10 000条数据的决策树3
Download:
图 6 10 000条数据的决策树4

根据生成的决策树节点, 在10 000条数据的样本中, 分别选取count、dst_bytes、src_bytes作为PAMPs和SS的判定信号, 如果样本对应属性的值大于该信号总体属性的平均值, 则置PAMPs的值为信号值的极差平均值, SS为0, 反之则PAMPs为0, SS为极差平均值。将dst_host_srv_serror_rate、dst_host_same_src_port_rate、dst_host_srv_count、hot、dst_host_srv_diff_host_rate作为DS信号, 取计算信号的属性值与均值的差的平均作为该样本的DS值。5 000条和1 000条数据的PAMPs与SS信号分别为count、dst_bytes和count, DS信号为src_bytes、hot、dst_host_srv_serror_rate、dst_host_same_src_port_rate、dst_host_srv_diff_host_rate和src_bytes、dst_bytes、hot、dst_host_srv_count、dst_host_same_src_port_rate、srv_serror_rate、duration。设置每个DC每次采集10个抗原, 每一个抗原被采集的上限为10次。根据每一组样本运行的结果调整CSM的迁移阈值和权值矩阵, 直至检测结果稳定。每一组运行10次并取实验结果的平均值, 结果如表 2所示。

下载CSV 表 2 2种算法的检测结果对比

表 2可知, 使用XGBoost提取特征的DCA比使用粗糙集的DCA准确率更高, 误报率、漏报率更低。数据集越小, 准确率越高, 说明当DCA用于分类问题时, 只需维护一个小的DC抗原池, 占用较小的系统资源, 即可取得较高的检测效率。然而, DCA的权值矩阵需要针对特定的应用环境(数据集)进行调试, 尽管其不需要训练, 但在将DCA用于分类问题时, 需要提前调试权值矩阵。

4 结束语

本文提出一种改进的树突状细胞算法, 将XGBoost与DCA进行结合实现特征提取, 并使用KDD99数据集进行实验。结果表明, 与基于粗糙集的DCA方法相比, 使用XGBoost进行特征提取的DCA检测效率更高。下一步将对DCA权值矩阵的人工调整问题以及炎症因子的影响进行研究, 改善DCA算法的性能。

参考文献
[1]
DASGUPTA D, YU Senhua, NINOB F. Recent advances in artificial immune systems:models and applications[J]. Applied Soft Computing, 2011, 11(2): 1574-1587. DOI:10.1016/j.asoc.2010.08.024 (0)
[2]
GREENSMITH J, AICKELIN U, CAYZER S.Introducing dendritic cells as a novel immune-inspired algorithm for anomaly detection[C]//Proceedings of International Conference on Artificial Immune Systems.Berlin, Germany: Springer, 2005: 153-167. (0)
[3]
MOHSIN M F M, HAMDAN A R, BAKAR A A.An evaluation of feature selection technique for dendrite cell algorithm[C]//Proceedings of 2014 International Conference on IT Convergence and Security.Washington D.C., USA: IEEE Press, 2014: 1-5. (0)
[4]
甘颖, 梁意文, 谭成予, 等. 基于危险理论的地震预测方法[J]. 计算机工程, 2019, 45(1): 278-283. (0)
[5]
GREENSMITH J.Securing the internet of things with responsive artificial immune systems[C]//Proceedings of 2015 Annual Conference on Genetic and Evolutionary Computation.New York, USA: ACM Press, 2015: 113-120. (0)
[6]
杨超.计算及免疫危险理论的数字微分方法[D].武汉: 武汉大学, 2012. http://cdmd.cnki.com.cn/article/cdmd-10486-1013151912.htm (0)
[7]
GU FENG, GREENSMITH J, OATES R, et al.PCA 4 DCA: the application of principal component analysis to the dendritic cell algorithm[EB/OL].[2018-07-01].https: //arxiv.org/ftp/arxiv/papers/1004/1004.3460.pdf. (0)
[8]
CHELLY Z, ELOUEDI Z.RC-DCA: a new feature selection and signal categorization technique for the dendritic cell algorithm based on rough set theory[C]//Proceedings of Artificial Immune Systems.Berlin, Germany: Springer, 2012: 152-165. (0)
[9]
CHELLY Z, ELOUEDI Z.QR-DCA: a new rough data pre-processing approach for the dendritic cell algorithm[C]//Proceedings of Adaptive and Natural Computing Algorithms.Berlin, Germany: Springer, 2013: 140-150. (0)
[10]
CHELLY Z, ELOUEDI Z.Improving the dendritic cell algorithm performance using fuzzy-rough set theory as a pattern discovery technique[C]//Proceedings of the 5th International Conference on Innovations in Bio-Inspired Computing and Applications.Berlin, Germany: Springer, 2014: 23-32. (0)
[11]
蔡文学, 罗永豪, 张冠湘, 等. 基于GBDT与Logistic回归融合的个人信贷风险评估模型及实证分析[J]. 管理现代化, 2017(2): 1-4. DOI:10.3969/j.issn.1003-1154.2017.02.001 (0)
[12]
CHEN Tianqi, GUESTRIN C.XGBoost: a scalable tree boosting system[C]//Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining.New York, USA: ACM, 2016: 785-794. (0)
[13]
MARTINEZ-DE-PISON F J, FRAILE-GARCIA E, FERREIRO-CABELLO J, et al.Searching parsimonious solutions with GA-PARSIMONY and XGBoost in high-dimensional databases[C]//Proceedings of International Joint Conference SOCO'16-CISIS'16-ICEUTE'16.Berlin, Germany: Springer, 2016: 201-210. (0)
[14]
LUCKNER M, TOPOLSKI B, MAZUREK M.Application of XGBoost algorithmin fingerprinting localisation task[C]//Proceedings of IFIP International Conference on Computer Information Systems and Industrial Management.Berlin, Germany: Springer, 2017: 661-671. (0)
[15]
兰晓然, 张灏, 李明, 等. 基于数据挖掘的手机用户换机行为预测研究[J]. 数学的实践与认识, 2017, 47(16): 71-80. (0)
[16]
GREENSMITH J.The dendritic cell algorithm[D].Nottingham, UK: University of Nottingham, 2007. (0)