基于Stacking 模型融合的网络异常事件监测

2022-09-16 01:30张建东刘才铭
乐山师范学院学报 2022年8期
关键词:决策树分类器准确率

张建东,刘才铭,李 勤

(乐山师范学院 a.电子信息与人工智能学院;b.网络安全智能检测与评估实验室,四川 乐山 614000)

0 引言

互联网的发展有助于创造一个更加方便文明的社会,互联网已经成为人们日常生活中必不可少的一部分。然而它也带来了很多问题,比如窃取用户隐私数据、恶意软件、拒绝服务、垃圾邮件以及网络攻击。其中网络攻击已成为互联网上最大的问题,造成前所未有的经济损失。

最近几年,人工智能技术已经在自然语言处理和图像处理方面获得广泛的应用。使用机器学习解决计算机网络领域的问题变得非常有前途。使用机器学习技术解决网络场景里面的复杂问题,比如使用机器学习技术训练模型来监测网络系统的性能、识别错误配置和网络攻击[1-5]。

目前主要使用的方法有基于树的网络攻击事件检测方法[6],比较XGBoost 方法与其他分类器,如AdaBoost、朴素贝叶斯、MLP 和K-Nearest Neighbors(KNN)来解决多分类问题和二分类问题。XGBoost 不仅获得了更高的精度,而且执行效率更高,实验结果表明,基于树的模型能取得更好的结果。混合监督学习集成模型[7],使用几个极端梯度提升算法。XGBoost 和LightGBM 首先单独处理从原始数据抽取出来的组合特征子集,再把输出结果取均值。不同的模型使用不同的超参数设置以及不同的特征子集。通过组合独立的高性能梯度提升算法,在竞赛中获得的较高的准确率。使用LightGBM 算法[8]和XGBoost 算法[9],在异常事件检测中都获得了较高的准确率。

以上提到的方法要么使用单一的算法,要么使用两种算法的组合,我们提出的方法是使用多种最新的集成学习算法的组合,通过Stacking 模型融合来对网络事件进行检测,实验结果表明本文提出的方法比单一的机器学习方法有更高的准确率。

为了提高机器学习算法的效率及准确率,我们对数据集进行了预处理、创建新特征,对部分特征进行了组合,处理后的数据集极大的提升了异常网络事件检测的准确率。

1 相关工作

集成学习通过构建多个模型来完成学习任务。它的工作原理是训练多个模型,各自独立地学习并做出预测。这些预测结果再用某种策略将他们结合起来,一般会优于单个分类器做出的预测。

机器学习有两个核心任务;一个是解决欠拟合问题,通过boosting 算法逐步增强;另一个是解决过拟合问题,可以通过bagging(Bootstrap Aggregation)采样学习。只要基分类器的表现不是太差,集成学习的结果一定是优于单分类器的。我们采用的基学习器都使用集成学习算法,分别是XGBoost、CatBoost、RandomForest 和LightGBM。

1.1 XGBoost

Boosting 用于有监督的机器学习,通过将一组弱分类器组合成一个强分类器来建立模型,提高分类预测精度,可以非常有效地减少预测偏差。梯度提升(GB,Gradient Boosting) 是boosting 的扩展,也是通过一定方法将弱分类器融合,提升为强分类器。梯度提升决策树(GBDT,Gradient Boosting Decision Tree)是决策树的集成模型,将损失函数梯度下降的方向作为优化的目标。XGBoost 是GBDT 的改进,GBDT 在优化时只用到一阶导数,XGBoost 在每一轮学习中,对损失函数进行二阶泰勒展开,使用一阶和二阶导数进行优化。在各种数据科学竞赛中,XGBoost 成为竞赛者们夺冠的利器。

XGBoost 在目标函数里加入了正则化项,用于控制模型的复杂度,为避免过拟合,正则化项一般选择简单模型。正则化项里通过树的叶子节点个数来控制树的复杂度。正则项降低了模型的方差,使学习出来的模型更加简单,这也是XGBoost 优于GBDT 的一个特性。XGBoost 在训练样本有限,训练时间短的场景下具有独特的优势。

1.2 Catboost

CatBoost 是一种新的boosting 模型,是GBDT算法框架下的一种改进实现。CatBoost 对数据集中的类别特征能更好的表示和处理。在某些场景下比XGBoost 和LightGBM 更好。主要缺点是,对类别特征的处理需要耗费大量的内存和时间,随机数的设定对模型预测结果也有一定的影响。

1.3 LightGBM

LightGBM(Light Gradient Boosting Machine)是一个实现GBDT 算法的框架,支持分布式训练,可以处理海量数据,具有更快的训练速度,同时内存消耗更低。

1.4 RandomForest

随机森林属于集成学习中bagging 方法。随机森林是bagging 与决策树的组合。用随机的方式建立一个森林,森林由众多决策树组成,每棵决策树都是没有关联的,其输出的类别是每棵决策树投票的结果。

随机森林中基学习器的多样性不仅来自样本的随机性,还来自属性的随机性,最终模型的泛化能力通过基学习器之间差异度的增加而进一步提升。

2 Stacking 模型融合

使用模型融合的好处主要有三个:a)单个模型可能会导致泛化能力不佳,使用多个模型可以减少这一风险;b)学习算法可能陷入局部极小,其对应的泛化性能降低;c)某些任务的假设可能不在当前模型的假设空间内,使用单个模型可能无效,结合多个模型可能学的更好的近似。

基学习器的集成方法有均值法,投票法,学习法[10]。针对实验数据集和输出结果的特征,本文采用的方法为学习法。

使用的单个算法有基于集成学习的XGBoost、CatBoost、RandomForest、LightGBM 四种高效算法。

Stacking(堆叠)是用于组合来自多个模型的信息以生成新模型的模型融合技术。首先训练好所有的基模型,然后把基模型的预测结果连接,生成新的数据,作为第二层模型的输入,用来训练第二层模型,最终得到预测结果。

通常,堆叠模型(也称为二级模型)将多种模型按照一定的方式组合在一起,将不同模型的各自优势发挥出来进而提升模型整体的性能。因此,当基模型差异较大时,堆叠是最有效的。把主流的四种集成学习算法的输出结果用LogisticsRegression 融合,模型框架如图1 所示。

图1 两层stacking 模型

3 网络异常事件检测

3.1 数据集介绍

数据集为Suspicious Network Event Recognition,数据集是采集自2018.10.1 到2019.3.31,总共6 个月的数据。数据集包含安全警报及其描述性属性,以递增的详细级别发布,直到实际警报之前的安全事件序列。两个数据集的详细说明如下:

第一个数据集(Cybersecurity_train)。告警事件数据集,训练数据集包含63 个特征属性,一个目标属性。主要特征包括警告的相关信息,比如客户端的代码、IP、IP 分类、开始的时间、事件的源和目标等。

数据集为不平衡数据集,目标值notified 占比仅为5.8%(2276/39427)。

第二个数据集(Localized_alerts_data)。包含警告事件的更多细节,比如特定的警告类型、代码,设备厂商、源和目标IP 及端口、时间、严重程度、用户名、通信协议等。表1 为数据集整体概览。

表1 数据集整体概览

3.2 数据处理

缺失值处理:根据列的特征采用固定值或平均值来填充缺失值。

创建新特征:Localized 数据集抽取新特征以提供额外的信息,按照alert_ids 分组统计alerttime 的最大值、平均值,severity 的平均值,最大值和最小值,生成新特征。并对特殊的特征进行处理,比如IP 地址和时间。

类别数据的处理:大多是机器学习算法使用数值型数据作为输入,因此对非数值型的数据采用one-hot 编码转换成数值型。

两个数据集的合并:按照alert_ids 对处理后的两个数据集进行合并。

3.3 实验环境

实验环境:windows10,Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz,内存32G。

工具集:Pyton3,pandas,scikit-learn,Keras 进行特征工程、特征选择以及算法实现。

评估方法:本文使用AUC、准确率作为实验性能的评估方法。

AUC:主要用于评价不平衡的二分类算法。由于数据集的目标值是二分类的,因此主要的评估指标为AUC。ROC 曲线的纵轴为TPR(True Positive Rate),横轴为FPR(False Positive Rate),判断模型的好坏就是计算ROC曲线下(0,0)到(1,1)的面积AUC(Area Under ROC Curve),面积越大,模型越准确。

准确率:总样本中预测正确的有几个正确,是最常见的评价指标。准确率的定义为公式1。

3.4 实验结果

实验结果如表2 所示,从表中可以看出4种算法融合模型的AUC最高,准确率比XGBoost稍低,比其他三种算法都高。从表中可以看出单个模型的AUC 全部都低于融合模型的AUC,因为没有一种算法能适应各种不同的场景,因此尝试使用不同的算法来实现预测,同时把多个性能较好的算法进行集成可以进一步提升模型预测的准确性。

表2 模型的性能对比

4 结论

为了从各种网络日志中发现异常事件,本文提出一种Stacking 模型融合的方法来检测异常事件,并在Suspicious Network Event Recognition 数据集上分别使用最新的集成学习算法XGBoost、CatBoost、RandomForest、LightGBM构建了异常检测模型,用Stacking模型融合,用LogisticsRegression 生成最后的模型,通过实验对比得出结论如下:

模型融合较单个模型有优势,模型融合的复杂度不高,结果更加准确。机器学习中模型融合比单个模型的准确率高,泛化能力更强,在实验场景中效果更好。

在后期工作中将重点研究其他高效集成学习方法及其他模型融合方法,来提高网络异常事件预测的准确率。

猜你喜欢
决策树分类器准确率
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
一种针对不均衡数据集的SVM决策树算法
决策树和随机森林方法在管理决策中的应用
高速公路车牌识别标识站准确率验证法
基于实例的强分类器快速集成方法
加权空-谱与最近邻分类器相结合的高光谱图像分类
结合模糊(C+P)均值聚类和SP-V-支持向量机的TSK分类器
基于决策树的出租车乘客出行目的识别